Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk
- Property svn:ignore
-
old new 1 1 data 2 2 nbproject 3 node_modules
-
- Property svn:ignore
-
Dev/trunk/client
- Property svn:externals
-
old new 1 dojo http://svn.dojotoolkit.org/src/tags/release-1.8. 0/dojo2 dijit http://svn.dojotoolkit.org/src/tags/release-1.8. 0/dijit3 dojox http://svn.dojotoolkit.org/src/tags/release-1.8. 0/dojox4 util http://svn.dojotoolkit.org/src/tags/release-1.8. 0/util1 dojo http://svn.dojotoolkit.org/src/tags/release-1.8.3/dojo 2 dijit http://svn.dojotoolkit.org/src/tags/release-1.8.3/dijit 3 dojox http://svn.dojotoolkit.org/src/tags/release-1.8.3/dojox 4 util http://svn.dojotoolkit.org/src/tags/release-1.8.3/util
-
- Property svn:externals
-
Dev/trunk/client/qed/model/widgets/QuestionEditorToolkit.js
r417 r426 14 14 './CategoryListView', 15 15 'dojo/text!./templates/QuestionEditorToolkit.html' 16 ], function(declare, lang, Source, domConstruct, Memory, _Container, _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, Button, ComboBox, store, CategoryListView, template) { 17 return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Container], { 16 ], function(declare, lang, Source, domConstruct, Memory, _Container, 17 _TemplatedMixin, _WidgetBase, _WidgetsInTemplateMixin, Button, 18 ComboBox, store, CategoryListView, template) { 19 return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Container], { 18 20 19 20 21 22 23 24 25 21 templateString: template, 22 _list: null, 23 _categorySelect: null, 24 _categoryStore: null, 25 _topicSelect: null, 26 _topicStore: null, 27 _categories : null, 26 28 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 29 _contentItems: [ 30 { type: "Header" }, 31 { type: "Text" }, 32 { type: "Image" }, 33 { type: "ExternalMedia" }, 34 { type: "Divider" } 35 ], 36 _inputsItems: [ 37 { type: "StringInput" }, 38 { type: "TextInput" }, 39 { type: "IntegerInput" }, 40 { type: "ScaleInput" }, 41 { type: "MultipleChoiceInput" } 42 ], 43 _labelMap: { 44 "Header": "Header", 45 "Text": "Text", 46 "Image": "Image", 47 "ExternalMedia": "External media", 48 "Divider": "Divider", 49 "StringInput": "Text line", 50 "TextInput": "Free text", 51 "IntegerInput": "Integer number", 52 "ScaleInput": "Scale", 53 "MultipleChoiceInput": "Multiple choice" 54 }, 55 _iconMap: { 56 "Header": "Header", 57 "Text": "TextBox", 58 "Image": "Image", 59 "ExternalMedia": "External", 60 "Divider": "Divider", 61 "StringInput": "Text", 62 "TextInput": "Text", 63 "IntegerInput": "Integer", 64 "ScaleInput": "Scale", 65 "MultipleChoiceInput": "MultipleChoice" 66 }, 65 67 66 postCreate: function(){ 67 this.inherited(arguments); 68 var creator = lang.hitch(this,"_creator"); 69 this.contentSource = new Source(this.ToolkitContentSourceNode, { 70 accept: [], 71 copyOnly: true, 72 selfAccept: false, 73 singular: true, 74 creator: creator 68 postCreate: function(){ 69 this.inherited(arguments); 70 var creator = lang.hitch(this,"_creator"); 71 this.contentSource = new Source(this.ToolkitContentSourceNode, { 72 accept: [], 73 copyOnly: true, 74 selfAccept: false, 75 singular: true, 76 creator: creator 77 }); 78 this.inputsSource = new Source(this.ToolkitInputsSourceNode, { 79 accept: [], 80 copyOnly: true, 81 selfAccept: false, 82 singular: true, 83 creator: creator 84 }); 85 this.contentSource.insertNodes(false, this._contentItems); 86 this.inputsSource.insertNodes(false, this._inputsItems); 87 }, 88 _setValueAttr: function(question) { 89 this.propertiesForm.set('value', question); 90 this._categories = question.categories || []; 91 this._setupListView(); 92 this._setupCategories(); 93 this._setupTopic(question.topic); 94 }, 95 _getValueAttr: function() { 96 var value = this.propertiesForm.get('value'); 97 value.categories = this._categories; 98 return value; 99 }, 100 onCategoryAdd: function() { 101 this._addCategory(this._categorySelect.get('displayedValue')); 102 this._categorySelect.reset(); 103 }, 104 _creator: function(item, hint) { 105 var node; 106 if (hint === "avatar") { 107 node = domConstruct.create('span',{ 108 innerHTML: this._labelMap[item.type] || item.type 75 109 }); 76 this.inputsSource = new Source(this.ToolkitInputsSourceNode, { 77 accept: [], 78 copyOnly: true, 79 selfAccept: false, 80 singular: true, 81 creator: creator 110 } else { 111 var w = new Button({ 112 baseClass: "rftLargeButton", 113 iconClass: "rftIcon rftIcon"+(this._iconMap[item.type]||"Unknown"), 114 label: this._labelMap[item.type] || item.type, 115 showLabel: true, 116 'class': "newline" 82 117 }); 83 this.contentSource.insertNodes(false, this._contentItems); 84 this.inputsSource.insertNodes(false, this._inputsItems); 85 }, 86 _setValueAttr: function(question) { 87 this.propertiesForm.set('value', question); 88 this._categories = question.categories || []; 89 this._setupListView(); 90 this._setupCategories(); 91 this._setupTopic(question.topic); 92 }, 93 _getValueAttr: function() { 94 var value = this.propertiesForm.get('value'); 95 value.categories = this._categories; 96 return value; 97 }, 98 onCategoryAdd: function() { 99 this._addCategory(this._categorySelect.get('displayedValue')); 100 this._categorySelect.reset(); 101 }, 102 _creator: function(item, hint) { 103 var node; 104 if (hint == "avatar") { 105 node = domConstruct.create('span',{ 106 innerHTML: this._labelMap[item.type] || item.type 107 }); 108 } else { 109 var w = new Button({ 110 baseClass: "rftLargeButton", 111 iconClass: "rftIcon rftIcon"+(this._iconMap[item.type]||"Unknown"), 112 label: this._labelMap[item.type] || item.type, 113 showLabel: true, 114 'class': "newline" 115 }); 116 node = w.domNode; 117 } 118 return {node: node, data: item, type: ["questionContent"]}; 119 }, 120 _setupListView: function() { 121 this._list = new CategoryListView( { 122 removeCallback: lang.hitch(this, this._removeCategory) 123 }).placeAt(this.listNode); 124 this._list.startup(); 125 for (var category in this._categories) { 126 this._list.appendItem(this._categories[category]); 127 } 128 }, 129 _setupCategories: function() { 130 this._categoryStore = new Memory({data: [] }); 131 store.query("_design/questions/_view/all", {reduce:true, group:false, group_level:1}) 132 .forPairs(lang.hitch(this, function(value, key) { 133 this._categoryStore.put({ id: key[0] }); 134 })); 135 this._categorySelect = new ComboBox( { 136 name: "categories", 137 store: this._categoryStore, 138 searchAttr: "id" 139 }, this.categoriesBoxNode); 140 this._supportingWidgets.push(this._categorySelect); 118 node = w.domNode; 119 } 120 return {node: node, data: item, type: ["questionContent"]}; 121 }, 122 _setupListView: function() { 123 this._list = new CategoryListView( { 124 removeCallback: lang.hitch(this, this._removeCategory) 125 }).placeAt(this.listNode); 126 this._list.startup(); 127 for (var category in this._categories) { 128 this._list.appendItem(this._categories[category]); 129 } 130 }, 131 _setupCategories: function() { 132 this._categoryStore = new Memory({data: [] }); 133 store.query("_design/questions/_view/all", {reduce:true, group:false, group_level:1}) 134 .forPairs(lang.hitch(this, function(value, key) { 135 this._categoryStore.put({ id: key[0] }); 136 })); 137 this._categorySelect = new ComboBox( { 138 name: "categories", 139 store: this._categoryStore, 140 searchAttr: "id" 141 }, this.categoriesBoxNode); 142 this._supportingWidgets.push(this._categorySelect); 141 143 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 144 }, 145 _setupTopic: function(topic) { 146 this._topicStore = new Memory( {data: [] }); 147 store.query("_design/questions/_view/all_topics", {reduce:true, group:true}) 148 .forPairs(lang.hitch(this, function(value, key) { 149 this._topicStore.put({ id: key }); 150 })); 151 this._topicSelect = new ComboBox( { 152 name: "topic", 153 store: this._topicStore, 154 searchAttr: "id", 155 value: topic 156 }, this.topicBoxNode); 157 this._supportingWidgets.push(this._topicSelect); 158 }, 159 _addCategory: function(item) { 160 this._categories.push(item); 161 this._list.appendItem(item); 162 }, 163 _removeCategory: function(item) { 164 this._categories.splice(this._categories.indexOf(item), 1); 165 } 164 166 165 });166 167 }); 168 });
Note: See TracChangeset
for help on using the changeset viewer.