Changeset 384 for Dev/branches/rest-dojo-ui/client/rft/pages/session.js
- Timestamp:
- 07/29/12 00:03:52 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui/client/rft/pages/session.js
r374 r384 1 define(['dojo/_base/declare', 2 'dojo/_base/lang', 3 'dojo/_base/event', 4 'dojo/_base/Deferred', 1 define([ 2 'dojo/_base/array', 3 'dojo/_base/declare', 4 'dojo/_base/lang', 5 'dojo/_base/event', 6 'dojo/_base/Deferred', 5 7 'rft/elastic/ElasticSearchFilteringSelect', 6 8 'rft/elastic/ElasticReadStore', 7 8 9 9 'rft/store', 10 'rft/ui/_Page', 11 'rft/content', 10 12 'rft/ui/AccountListView' 11 13 ], 12 function(declare,lang,event,Deferred,ElasticSearchFilteringSelect,ElasticReadStore,store,_Page,content,AccountListView){13 14 15 _listView: null,14 function(array,declare,lang,event,Deferred,ElasticSearchFilteringSelect,ElasticReadStore,store,_Page,content,AccountListView){ 15 return declare('rft.pages.session',[_Page],{ 16 session: null, 17 _accountList: null, 16 18 _select: null, 17 18 19 20 21 22 this._setup ListView();19 onVisit: function() { 20 if ( this.pageArgs.uid ) { 21 Deferred.when(store.get(this.pageArgs.uid)) 22 .then(lang.hitch(this,function(obj){ 23 this.session = obj; 24 this._setupAccountList(); 23 25 this._refresh(); 24 26 })); 25 27 this._setupAutoComplete(); 26 } else { 27 throw "No valid uid or session passed!"; 28 } 29 }, 30 onLeave: function() { 31 this.inherited(arguments); 32 }, 28 } else { 29 throw "No valid uid or session passed!"; 30 } 31 }, 33 32 _refresh: function() { 34 33 this.titleNode.innerHTML = this.session.title || ''; … … 41 40 onSave: function(evt) { 42 41 lang.mixin(this.session,this.propertiesForm.get('value')); 42 this.session.accounts = array.map(this._accountList.getItems(),function(item){ 43 return store.getIdentity(item); 44 }); 43 45 store.put(this.session) 44 46 .then(function(){ … … 55 57 }, 56 58 _addAccount: function(item) { 57 if (!this.session.accounts) 58 this.session.accounts = []; 59 this.session.accounts.push(item); 60 this._listView.insertItem(item); 59 this._accountList.insertItem(item); 61 60 }, 62 _removeAccount: function(item) { 63 this.session.accounts.splice(this.session.accounts.indexOf(item), 1); 64 }, 65 _setupListView: function() { 66 this._listView = new AccountListView( { 67 controller: this, 68 removeCallback: lang.hitch(this, this._removeAccount) 69 }).placeAt(this.listViewNode); 70 for (account in this.session.accounts) { 71 this._listView.insertItem(this.session.accounts[account]); 61 _setupAccountList: function() { 62 this._accountList = new AccountListView().placeAt(this.accountListNode); 63 this._accountList.startup(); 64 for (var account in this.session.accounts) { 65 this._accountList.insertItem(this.session.accounts[account]); 72 66 } 73 74 this._listView.startup();75 67 }, 76 68 _setupAutoComplete: function() { 77 78 69 var accountStore = new ElasticReadStore({ 79 70 url: "http://localhost:9200/rft/_search", … … 81 72 }); 82 73 this._select = new ElasticSearchFilteringSelect({ 83 name: "accountBox",84 74 store: accountStore, 85 75 autoComplete: false, … … 90 80 hasDownArrow: false, 91 81 style: "width: 400", 92 searchAttr: "title", 93 id: "accountText" 94 }, "accountBox"); 82 searchAttr: "title" 83 }, this.accountSelector); 95 84 this._select.startup(); 96 85 } 97 86 98 87 99 100 });88 }); 89 }); 101 90
Note: See TracChangeset
for help on using the changeset viewer.