Changeset 281
- Timestamp:
- 02/22/12 12:54:44 (13 years ago)
- Location:
- Dev/branches/rest-dojo-ui
- Files:
-
- 3 added
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui/client
- Property svn:externals set to
-
Dev/branches/rest-dojo-ui/client/index.html
r274 r281 4 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 5 <title>Research Facilitator Tool</title> 6 <link type="text/css" href="d ijit/themes/claro/claro.css" rel="stylesheet" />7 <link type="text/css" href="dojo x/grid/resources/Grid.css" rel="stylesheet" />8 <link type="text/css" href="dojo x/grid/resources/claroGrid.css" rel="stylesheet" />6 <link type="text/css" href="dojotoolkit/dijit/themes/claro/claro.css" rel="stylesheet" /> 7 <link type="text/css" href="dojotoolkit/dojox/grid/resources/Grid.css" rel="stylesheet" /> 8 <link type="text/css" href="dojotoolkit/dojox/grid/resources/claroGrid.css" rel="stylesheet" /> 9 9 <link type="text/css" href="rft/css/main.css" rel="stylesheet" /> 10 <script type="text/javascript" src="dojo /dojo.js" data-dojo-config="async: true, parseOnLoad: false, tlmSiblingOfDojo: false, isDebug: true, baseUrl: '', packages: ['dojo','dijit', 'dojox', 'rft']"></script>10 <script type="text/javascript" src="dojotoolkit/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: false, tlmSiblingOfDojo: false, isDebug: true, baseUrl: '', packagePaths: {'dojotoolkit':['dojo','dijit', 'dojox'], '.':['rft']}"></script> 11 11 <script type="text/javascript" src="rft/run.js"></script> 12 12 </head> -
Dev/branches/rest-dojo-ui/client/rft/css/main.css
r274 r281 1 html,body { 2 width: 100%; 3 height: 100%; 4 } 5 1 6 .mainHeader { 2 7 display: inline-block; -
Dev/branches/rest-dojo-ui/client/rft/pages/questions.html
r275 r281 2 2 <h1>Questions</h1> 3 3 <div data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onNewQuestion">New question</div> 4 <div data-dojo-type=" dijit.layout.AccordionContainer" data-dojo-props="doLayout: false" style="width: 100%; height: 100%;" data-rft-attach-point="accordion">4 <div data-dojo-type="rft.ui.TitleGroup" data-rft-attach-point="accordion"> 5 5 </div> 6 6 <div data-dojo-type="dijit.Dialog" title="Question" data-rft-attach-point="questionDialog"> … … 17 17 <input data-dojo-type="dijit.form.TextBox" name="category" type="text" class="loginInput" /> 18 18 </fieldset> 19 <fieldset> 20 <div data-dojo-type="rft.ui.QuestionWidget" data-rft-attach-point="questionWidget" ></div> 21 </fieldset> 19 22 <div style="float: right;"> 20 23 <button type="button" data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onCancelQuestion">Cancel</button> -
Dev/branches/rest-dojo-ui/client/rft/pages/questions.js
r275 r281 1 1 define(['dojo/_base/declare','dojo/_base/lang','dojo/_base/array','dojo/_base/event', 2 'dojo/_base/Deferred','dojo/store/JsonRest','dijit/layout/ContentPane', 2 'dojo/_base/Deferred','dojo/store/JsonRest','dijit/layout/ContentPane','dijit/TitlePane', 3 3 'rft/ui/_Page','rft/ui/LineWithActionsWidget'], 4 function(declare,lang,array,event,Deferred,JsonRest,ContentPane, _Page,LineWithActionsWidget) {4 function(declare,lang,array,event,Deferred,JsonRest,ContentPane,TitlePane,_Page,LineWithActionsWidget) { 5 5 return declare('rft.pages.questions',[_Page],{ 6 6 constructor: function() { 7 7 this.inherited(arguments); 8 this.containers = {};9 8 this.questions = {}; 10 9 }, … … 20 19 array.forEach(results,lang.hitch(this,'_addQuestion')); 21 20 })); 22 },23 _getContainerForQuestion: function(q) {24 var category = q.category || 'Unsorted';25 var categoryContainer = this.containers[category];26 if ( !categoryContainer ) {27 var ac = new ContentPane({28 title:category,29 doLayout: false30 });31 categoryContainer = this.containers[category] = {32 container: ac33 };34 ac.placeAt(this.accordion);35 ac.startup();36 }37 return categoryContainer.container;38 21 }, 39 22 _addQuestion: function(q) { … … 62 45 var container = this._getContainerForQuestion(q); 63 46 question.widget.placeAt(container.containerNode); 47 this._cleanupEmptyContainers(); 48 }, 49 _getContainerForQuestion: function(q) { 50 var category = q.category || 'Unsorted'; 51 var widgets = this.accordion.getChildren(); 52 var containerWidget; 53 var lastIndex = 'last'; 54 array.some(widgets,lang.hitch(this,function(widget,idx) { 55 if ( widget.title == category ) { 56 containerWidget = widget; 57 return true; 58 } else if ( widget.title > category ) { 59 lastIndex = idx; 60 return true; 61 } 62 return false; 63 })); 64 if ( !containerWidget ) { 65 containerWidget = new TitlePane({ 66 title:category 67 }); 68 containerWidget.startup(); 69 this.accordion.addChild(containerWidget,lastIndex); 70 } 71 return containerWidget; 72 }, 73 _cleanupEmptyContainers: function() { 74 var widgets = this.accordion.getChildren(); 75 array.forEach(widgets,lang.hitch(this,function(widget){ 76 if ( !widget.getChildren().length ) { 77 this.accordion.removeChild(widget).destroy(); 78 } 79 })); 64 80 }, 65 81 onNewQuestion: function() { … … 72 88 this.questionForm.reset(); 73 89 this.questionForm.set('value',question); 90 this.questionWidget.set('value',question); 74 91 this.questionDialog.show(); 75 92 }, 76 93 onSaveQuestion: function(evt) { 77 94 var value = this.questionForm.get('value'); 95 var subvalue = this.questionWidget.get('value'); 96 lang.mixin(value,subvalue); 78 97 Deferred.when( this._store.put(value) ) 79 98 .then(lang.hitch(this,function(){ … … 88 107 this.questionDialog.hide(); 89 108 this.questionForm.reset(); 90 this._refresh();91 109 } 92 110 }); -
Dev/branches/rest-dojo-ui/client/rft/run.js
r275 r281 1 1 require([ 2 'dojo/data/ObjectStore', 3 'dojo/store/JsonRest', 4 'dijit/MenuBar', 5 'dijit/MenuBarItem', 6 'dijit/PopupMenuBarItem', 7 'dijit/DropDownMenu', 8 'dijit/TitlePane', 9 'dijit/layout/ContentPane', 10 'dijit/layout/TabContainer', 11 'dijit/layout/AccordionContainer', 2 12 'dijit/form/Form', 3 13 'dijit/form/TextBox', 4 14 'dijit/form/Button', 5 15 'dijit/form/Textarea', 6 'd ojo/store/JsonRest',7 'd ojo/data/ObjectStore',16 'dijit/form/ComboBox', 17 'dijit/form/Select', 8 18 'dojox/grid/DataGrid', 9 'dijit/layout/ContentPane', 10 'dijit/layout/TabContainer', 11 'dijit/layout/AccordionContainer', 12 'dijit/MenuBar', 13 'dijit/MenuBarItem', 14 'dijit/PopupMenuBarItem', 15 'dijit/DropDownMenu', 19 'dojox/widget/TitleGroup', 16 20 'rft/ui/MenuBarLink', 17 21 'rft/ui/MenuLink', 18 22 'rft/ui/LineWithActionsWidget', 23 'rft/ui/QuestionWidget', 24 'rft/ui/TitleGroup', 19 25 'rft/pages/questions' // could this be done dynamically? 20 26 ]);
Note: See TracChangeset
for help on using the changeset viewer.