Changeset 370 for Dev/branches/rest-dojo-ui/client/rft/pages
- Timestamp:
- 07/23/12 13:07:24 (13 years ago)
- Location:
- Dev/branches/rest-dojo-ui/client/rft/pages
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui/client/rft/pages/questions.html
r358 r370 1 <div data-dojo-type="rft.pages.questions"> 2 <h1>Questions</h1> 3 <div data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onNewQuestion" data-dojo-props="baseClass: 'rftLargeButton', iconClass:'rftIcon rftIconQuestion'">New question</div> 4 <div data-rft-attach-point="list"> 5 </div> 6 <div data-dojo-type="dijit.Dialog" title="Question" data-rft-attach-point="questionDialog"> 7 <form data-dojo-type="dijit.form.Form" data-rft-attach-point="questionForm" data-rft-attach-event="onSubmit:onSaveQuestion"> 8 <div data-dojo-type="rft.ui.QuestionWidget" data-rft-attach-point="questionWidget"></div> 9 <div style="float: right;"> 10 <button type="button" data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onCancelQuestion">Cancel</button> 11 <button type="submit" data-dojo-type="dijit.form.Button">Save</button> 12 </div> 13 </form> 1 <div data-dojo-type="rft.pages.questions" class="blue"> 2 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'" style="height: 500px;"> 3 4 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'top'"> 5 <h2> 6 <span class="rftIcon rftIconQuestion"></span> 7 <span class="headerText">Questions</span> 8 </h2> 9 </div> 10 11 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'center'"> 12 <div data-rft-attach-point="questionBrowser"></div> 13 </div> 14 15 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'bottom'"> 16 <div data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onNewQuestion" data-dojo-props="baseClass: 'rftLargeButton', iconClass:'rftIcon rftIconQuestion'">New question</div> 17 </div> 18 14 19 </div> 15 20 </div> -
Dev/branches/rest-dojo-ui/client/rft/pages/questions.js
r366 r370 1 define(['dojo/_base/declare','dojo/_base/lang','dojo/_base/event', 2 'dojo/_base/Deferred','rft/store','rft/ui/_Page','rft/ui/AccordionList', 'rft/content'], 3 function(declare,lang,event,Deferred,store,_Page,AccordionList,content) { 1 define([ 2 'dojo/_base/declare', 3 'dojo/_base/Deferred', 4 'dojo/_base/event', 5 'dojo/_base/lang', 6 'rft/content', 7 'rft/store', 8 'rft/ui/_Page', 9 'rft/ui/TabbedQuestionBrowser' 10 ],function(declare,Deferred,event,lang,content,store,_Page,TabbedQuestionBrowser) { 4 11 return declare('rft.pages.questions',[_Page],{ 5 12 constructor: function() { 6 13 this.inherited(arguments); 7 this.questions = {};8 14 }, 9 15 onVisit: function() { 10 debugger; 11 this._list = new AccordionList({ 12 actions: { 16 this.questionBrowser = new TabbedQuestionBrowser({ 17 region: 'center', 18 'class': 'blue', 19 itemActions: { 13 20 'Edit': { 14 callback: lang.hitch(this,'_editQuestion'), 15 properties: { 16 blockButton: true, 17 icon: "Edit", 18 label: "Edit" 19 } 21 callback: lang.hitch(this,"onEditQuestion"), 22 icon: 'Edit', 23 description: 'Edit question' 20 24 } 21 22 23 }, 24 idProperty: store.idProperty, 25 categoryProperty: 'category', 26 titleProperty: 'title' 27 },this.list); 28 this._list.startup(); 29 this._refresh(); 25 } 26 },this.questionBrowser); 27 this.questionBrowser.startup(); 30 28 }, 31 29 _refresh: function() { … … 38 36 Deferred.when(store.add({type:'Question'})) 39 37 .then(lang.hitch(this,function(question){ 40 this. _editQuestion(question);38 this.onEditQuestion(question); 41 39 })); 42 40 }, 43 _editQuestion: function(question) {41 onEditQuestion: function(question) { 44 42 content.goTo("question", {uid: question._id}); 45 // this.questionForm.reset();46 // this.questionWidget.set('value',question);47 // this.questionDialog.show();48 },49 onSaveQuestion: function(evt) {50 var value = this.questionWidget.get('value');51 Deferred.when(store.put(value))52 .then(lang.hitch(this,function(){53 this.questionDialog.hide();54 this.questionForm.reset();55 this._refresh();56 }));57 event.stop(evt);58 return false;59 },60 onCancelQuestion: function() {61 this.questionDialog.hide();62 this.questionForm.reset();63 43 } 64 44 }); -
Dev/branches/rest-dojo-ui/client/rft/pages/survey.html
r369 r370 10 10 11 11 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'"> 12 <div data-rft-attach-point="tabList" data-dojo-type="dijit.layout.TabContainer" class="blue" data-dojo-props="tabPosition:'left-h',region:'center'"> 13 <!-- tabs go here --> 14 </div> 12 <div data-rft-attach-point="questionBrowser"></div> 15 13 </div> 16 14 … … 21 19 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'bottom'"> 22 20 <button data-rft-attach-point="btnProperties" data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onProperties" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconProperties'">Properties</button> 23 <button data-rft-attach-point="btnSave" data-dojo-type="dijit.form.Button" data- dojo-props="baseClass: 'rftLargeButton' data-rft-attach-event="onClick:onSave", iconClass: 'rftIcon rftIconAccept'">Save Changes</button>21 <button data-rft-attach-point="btnSave" data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onSave" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'">Save Changes</button> 24 22 <button data-rft-attach-point="btnDiscard" data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconCancel'">Discard changes</button> 25 23 <button data-rft-attach-point="btnPreview" data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconPreview'">Preview</button> -
Dev/branches/rest-dojo-ui/client/rft/pages/survey.js
r369 r370 1 define(['dojo/_base/declare', 1 define([ 2 'dojo/_base/declare', 3 'dojo/_base/Deferred', 4 'dojo/_base/event', 2 5 'dojo/_base/lang', 3 'dojo/_base/event', 4 'dojo/_base/Deferred', 5 'dojo/on', 6 'rft/ui/Selector', 7 'rft/ui/SurveyListView', 8 'dijit/layout/ContentPane', 6 'rft/content', 9 7 'rft/store', 10 8 'rft/ui/_Page', 11 'rft/ content',12 ' dojo/store/Cache',13 'dojo/store/Memory'],14 function(declare, lang,event,Deferred,on,Selector,SurveyListView,ContentPane,store,_Page,content,Cache,Memory){9 'rft/ui/SurveyListView', 10 'rft/ui/TabbedQuestionBrowser' 11 ], 12 function(declare,Deferred,event,lang,content,store,_Page,SurveyListView,TabbedQuestionBrowser){ 15 13 return declare('rft.pages.survey',[_Page],{ 16 14 object: null, … … 27 25 return Deferred.when( obj.creator && store.dereference(obj.creator) ); 28 26 })); 29 this._setupButtons();30 27 this._setupQuestionBrowser(); 31 28 this._setupListView(); … … 49 46 content.goTo('surveyAdvanced', {uid: this.object._id}); 50 47 }, 51 _setupButtons: function() {52 this.btnSave.on("click", lang.hitch(this, this.onSave));53 this.btnPreview.on("click", lang.hitch(this, this._goToPreview));54 },55 48 _setupQuestionBrowser: function() { 56 this.tabList.watch("selectedChildWidget",lang.hitch(this,function(name,oldTab,newTab){ 57 this._fillCategoryTab(newTab.__category); 58 })); 59 store.query('_design/default/_view/questions', {reduce:true,group:true,group_level:1}) 60 .forPairs(lang.hitch(this,function(value,key){ 61 this._createCategoryTab(key[0],value); 62 })); 63 }, 64 _createCategoryTab: function(category,count) { 65 if (this._dataMap[category] === undefined) { 66 var categoryTab = new ContentPane({ 67 __category: category, 68 title: category+" ("+count+")" 69 }); 70 categoryTab.startup(); 71 this._dataMap[category] = { 72 _widget: categoryTab 73 }; 74 this.tabList.addChild(categoryTab); 75 } 76 }, 77 _fillCategoryTab: function(category) { 78 var categoryMap = this._dataMap[category]; 79 if (!categoryMap._filled) { 80 categoryMap._filled = true; 81 store.query('_design/default/_view/questions', {reduce:true,group:true,group_level:2,startkey:[category],endkey:[category,{}]}) 82 .forPairs(lang.hitch(this,function(value,key){ 83 this._createTopicSelector(key[1],category,value); 84 })); 85 } 86 }, 87 _createTopicSelector: function(topic,category,count){ 88 var categoryMap = this._dataMap[category]; 89 if (categoryMap[topic] === undefined) { 90 var w = new Selector({ 91 __category: category, 92 __topic: topic, 93 title: topic+" ("+count+")" 94 }).placeAt(categoryMap._widget.containerNode); 95 w.startup(); 96 categoryMap[topic] = { 97 _widget: w 98 }; 99 this._fillTopicSelector(topic,category); 100 w.on('include',lang.hitch(this,this.includeQuestion)); 101 } 102 }, 103 _fillTopicSelector: function(topic,category) { 104 var categoryMap = this._dataMap[category]; 105 var topicMap = categoryMap[topic]; 106 if (!topicMap._filled) { 107 store.query('_design/default/_view/questions', {reduce:false,include_docs:true,key:[category,topic]}) 108 .forEach(lang.hitch(this,function(value){ 109 topicMap._widget.addItem(value); 110 })); 111 } 49 this.questionBrowser = new TabbedQuestionBrowser({ 50 region: 'center', 51 'class': 'blue', 52 selectedActions: { 53 "Include": { 54 callback: lang.hitch(this,this.includeQuestion), 55 icon: "Accept", 56 description: "Include in survey" 57 } 58 }, 59 itemActions: { 60 "Info": { 61 callback: function(item){ item.description && alert(item.description); }, 62 icon: "Inspect", 63 description: "Show item description" 64 } 65 } 66 },this.questionBrowser); 67 this.questionBrowser.startup(); 112 68 }, 113 69 /* ListView code */
Note: See TracChangeset
for help on using the changeset viewer.