Changeset 407 for Dev/branches/rest-dojo-ui/client/rft/pages/session.js
- Timestamp:
- 09/05/12 14:41:13 (13 years ago)
- Location:
- Dev/branches/rest-dojo-ui
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui
- Property svn:ignore
-
old new 1 1 nbproject 2 2 .project 3 release
-
- Property svn:ignore
-
Dev/branches/rest-dojo-ui/client
- Property svn:externals
-
old new 1 dojotoolkit http://svn.dojotoolkit.org/src/tags/release-1.8.0 1 dojo http://svn.dojotoolkit.org/src/tags/release-1.8.0/dojo 2 dijit http://svn.dojotoolkit.org/src/tags/release-1.8.0/dijit 3 dojox http://svn.dojotoolkit.org/src/tags/release-1.8.0/dojox 4 util http://svn.dojotoolkit.org/src/tags/release-1.8.0/util
-
- Property svn:externals
-
Dev/branches/rest-dojo-ui/client/rft/pages/session.js
r389 r407 5 5 'dojo/_base/event', 6 6 'dojo/_base/Deferred', 7 '../ content',7 '../app/Controller', 8 8 '../store', 9 9 '../elastic/ElasticSearchFilteringSelect', 10 10 '../elastic/ElasticReadStore', 11 '../ui/_Page', 12 '../ui/lists/AccountListView' 13 ], 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, 18 _select: null, 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(); 25 this._refresh(); 26 })); 27 this._setupAutoComplete(); 28 } else { 29 throw "No valid uid or session passed!"; 30 } 31 }, 32 _refresh: function() { 33 this.titleNode.innerHTML = this.session.title || ''; 34 this.propertiesForm.set('value',this.session); 35 }, 36 onInvite: function() { 37 this._addAccount(this._select.item.i); 38 this._select.reset(); 39 }, 40 onSave: function(evt) { 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 }); 45 store.put(this.session) 46 .then(function(){ 47 content.goTo('sessions'); 48 }); 49 event.stop(evt); 50 return false; 51 }, 52 onDiscard: function(evt) { 53 this.propertiesForm.reset(); 54 event.stop(evt); 55 content.goTo('sessions'); 56 return false; 57 }, 58 _addAccount: function(item) { 59 this._accountList.insertItem(item); 60 }, 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]); 66 } 67 }, 68 _setupAutoComplete: function() { 69 var accountStore = new ElasticReadStore({ 70 url: "http://localhost:9200/rft/_search", 71 requestMethod: "POST" 72 }); 73 this._select = new ElasticSearchFilteringSelect({ 74 store: accountStore, 75 autoComplete: false, 76 required: false, 77 labelType: "text", 78 placeHolder: "Enter email address here...", 79 pageSize: 10, 80 hasDownArrow: false, 81 style: "width: 400", 82 searchAttr: "title" 83 }, this.accountSelector); 84 this._select.startup(); 11 '../app/Page', 12 '../ui/lists/AccountListView', 13 'dojo/text!./session.html' 14 ],function(array,declare,lang,event,Deferred,ElasticSearchFilteringSelect,ElasticReadStore,store,Page,Controller,AccountListView,template){ 15 return declare([Page],{ 16 templateString: template, 17 session: null, 18 _accountList: null, 19 _select: null, 20 startup: function() { 21 if ( this._started ) { return; } 22 this.inherited(arguments); 23 if ( this.sessionId ) { 24 Deferred.when(store.get(this.sessionId)) 25 .then(lang.hitch(this,function(obj){ 26 this.session = obj; 27 this._setupAccountList(); 28 this._refresh(); 29 })); 30 this._setupAutoComplete(); 31 } else { 32 throw "No valid uid or session passed!"; 85 33 } 34 }, 35 _refresh: function() { 36 this.titleNode.innerHTML = this.session.title || ''; 37 this.propertiesForm.set('value',this.session); 38 }, 39 onInvite: function() { 40 this._addAccount(this._select.item.i); 41 this._select.reset(); 42 }, 43 onSave: function(evt) { 44 lang.mixin(this.session,this.propertiesForm.get('value')); 45 this.session.accounts = array.map(this._accountList.getItems(),function(item){ 46 return store.getIdentity(item); 47 }); 48 store.put(this.session) 49 .then(function(){ 50 Controller.go('/sessions'); 51 }); 52 event.stop(evt); 53 return false; 54 }, 55 onDiscard: function(evt) { 56 this.propertiesForm.reset(); 57 event.stop(evt); 58 Controller.go('/sessions'); 59 return false; 60 }, 61 _addAccount: function(item) { 62 this._accountList.insertItem(item); 63 }, 64 _setupAccountList: function() { 65 this._accountList = new AccountListView().placeAt(this.accountListNode); 66 this._accountList.startup(); 67 for (var account in this.session.accounts) { 68 this._accountList.insertItem(this.session.accounts[account]); 69 } 70 }, 71 _setupAutoComplete: function() { 72 var accountStore = new ElasticReadStore({ 73 url: "http://localhost:9200/rft/_search", 74 requestMethod: "POST" 75 }); 76 this._select = new ElasticSearchFilteringSelect({ 77 store: accountStore, 78 autoComplete: false, 79 required: false, 80 labelType: "text", 81 placeHolder: "Enter email address here...", 82 pageSize: 10, 83 hasDownArrow: false, 84 style: "width: 400", 85 searchAttr: "title" 86 }, this.accountSelector); 87 this._select.startup(); 88 } 86 89 87 90 88 });89 91 }); 92 }); 90 93
Note: See TracChangeset
for help on using the changeset viewer.