Changeset 347 for Dev/branches/rest-dojo-ui/client/rft
- Timestamp:
- 06/24/12 16:25:01 (13 years ago)
- Location:
- Dev/branches/rest-dojo-ui/client/rft
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/rest-dojo-ui/client/rft/content.js
r340 r347 95 95 } 96 96 97 function getFirstNode(html) { 98 var nodeOrFragment = domConstruct.toDom(html); 99 if (nodeOrFragment instanceof Element) { 100 return nodeOrFragment; 101 } 102 if (nodeOrFragment instanceof DocumentFragment) { 103 console.warn("Fragment found, will only use first Element"); 104 for (i in nodeOrFragment.childNodes) { 105 var node = nodeOrFragment.childNodes[i]; 106 if (node instanceof Element) { 107 return node; 108 } 109 } 110 } 111 return domConstruct.toDom('<div>No Element found in template.</div>'); 112 } 113 97 114 function mixinArgs(node) { 98 115 var props = {}; … … 118 135 // initialize page or create error message 119 136 .then(function(html){ 120 var rootNode = domConstruct.toDom(html);137 var rootNode = getFirstNode(html); 121 138 mixinArgs(rootNode); 122 139 contentPane.set('content',rootNode); -
Dev/branches/rest-dojo-ui/client/rft/pages/index.html
r274 r347 1 1 <div> 2 <h1>Index pagina</h1> 2 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'" style="height: 600px;"> 3 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'top'"> 4 <h2> 5 <span class="rftIcon rftIconUser"></span> 6 <span class="headerText">Main Menu</span> 7 </h2> 8 </div> 9 10 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'center'"> 11 12 <div class="rftIndexMenuBlock"> 13 <div class="rftIndexMenuMask"> 14 <span class="rftIcon rftIconSession"></span><span class="label">Sessions</span> 15 </div> 16 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'green twoHeight', iconClass: 'rftIcon rftIconPlus'" onClick="goToPage('mSessions');">Create and edit</button> 17 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'green twoHeight', iconClass: 'rftIcon rftIconForward'" onClick="goToPage('mSessions');">Facilitate</button> 18 </div> 19 20 <div class="rftIndexMenuBlock"> 21 <div class="rftIndexMenuMask"> 22 <span class="rftIcon rftIconInspect"></span><span class="label">Content</span> 23 </div> 24 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'blue oneHeight', iconClass: 'rftIcon rftIconSurvey'" onClick="goToPage('mSurveys');">Surveys</button> 25 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'orange oneHeight', iconClass: 'rftIcon rftIconQuestion'" onClick="goToPage('mQuestions');">Questions</button> 26 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'purple oneHeight', iconClass: 'rftIcon rftIconApplication'" onClick="goToPage('mApplications');">Applications</button> 27 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'red oneHeight', iconClass: 'rftIcon rftIconDashboard'" onClick="goToPage('mDashboards');">Dashboards</button> 28 29 </div> 30 31 <div class="rftIndexMenuBlock"> 32 <div data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftIndexMenuButton', class: 'blue fourHeight', iconClass: 'rftIcon rftIconGameData'" onClick="goToPage('mResults')">Results</div> 33 </div> 34 </div> 35 </div> 3 36 </div> -
Dev/branches/rest-dojo-ui/client/rft/pages/session.html
r274 r347 1 1 <div> 2 <script type="dojo/method" data-dojo-event="onVisit"> 3 var that = this; 4 debugger; 5 require(['dojo/_base/json','dojo/dom','dojo/store/JsonRest','dojo/domReady!'], 6 function(json,dom,JsonRest){ 7 var store = new JsonRest({ 8 target:"../server/api.php/data/Session/", 9 idProperty: 'uid' 10 }); 11 store.get(that.args.uid).then(function(obj){ 12 that.page_session_form.innerHTML = json.toJson(obj); 13 }); 14 }); 15 </script> 16 <div class="largeFrame" style="width: 400px;"> 17 <div class="largeTitle">Session</div> 18 <div class="content"> 19 <div data-rft-attach-point="page_session_form"></div> 2 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'" style="height: 500px;"> 3 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'top'"> 4 <h2> 5 <span class="rftIcon rftIconSurvey"></span> 6 <span class="headerText">Teamup Session 15-5-2012 [editing]</span> 7 </h2> 8 </div> 9 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'"> 10 <div data-dojo-type="dijit.layout.TabContainer" class="green" data-dojo-props="tabPosition:'left-h',region:'center'"> 11 <div data-dojo-type="dijit.layout.ContentPane" title="Properties"> 12 <!--PROPERTIES--> 13 <h3>Basic</h3> 14 <fieldset class="align"> 15 <label for="titleInput">Title:</label> 16 <input type="text" id="titleInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="placeHolder: 'Enter title here'" /> 17 <br/> 18 <label for="descriptionInput">Description:</label> 19 <textarea id="descriptionInput" rows="3" cols="54" data-dojo-type="dijit.form.SimpleTextarea" data-dojo-props="selectOnClick: true">This is the description in the info popups!</textarea> 20 <br/> 21 <label for="dateInput">Planned date:</label> 22 <input type="text" id="dateInput" data-dojo-type="dijit.form.DateTextBox" required="true" /> 23 </fieldset> 24 25 <h3>Accounts</h3> 26 <fieldset class="align"> 27 <label for="accountsInput">Add new</label> 28 <input type="text" data-dojo-type="dijit.form.TextBox" data-dojo-props="placeHolder: 'Enter email address here...'" /> 29 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftBlockButton', class: 'green', iconClass: 'rftIcon rftIconPlus'">Invite</button> 30 <br/><br/> 31 <div data-dojo-type="rft.ui.List" data-dojo-props="region:'center'" style="width: 500px;"> 32 <div data-dojo-type="rft.ui.LineWithActionsWidgetThijs" data-dojo-props="title:'a.bezuijen@tudelft.nl', modifiers: 'green', actions: {'Cancel':{callback: function(){}, properties: {blockButton: false, icon: 'Delete', modifiers:'white'}}}"></div> 33 <div data-dojo-type="rft.ui.LineWithActionsWidgetThijs" data-dojo-props="title:'i.mayer@tudelft.nl', modifiers: 'green', actions: {'Cancel':{callback: function(){}, properties: {blockButton: false, icon: 'Delete', modifiers:'white'}}}"></div> 34 </div> 35 </fieldset> 36 37 <button id="btnPropertiesDiscard" data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconCancel'">Discard changes</button> 38 <button id="btnPropertiesSave" data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'">Save changes</button> 39 40 41 </div> 42 <div data-dojo-type="dijit.layout.ContentPane" title="Design"> 43 <!--DESIGN--> 44 45 <div class="rftSessionObject green"> 46 <div class="rftIcon rftIconSurvey"></div> 47 <label>Survey name</label> 48 </div> 49 <div class="rftSessionObject green"> 50 <div class="rftIcon rftIconSurvey"></div> 51 <label>Survey name, this one is really long.</label> 52 </div> 53 54 </div> 55 </div> 20 56 </div> 21 57 </div> 22 23 58 </div> -
Dev/branches/rest-dojo-ui/client/rft/pages/sessions.html
r303 r347 1 1 <div> 2 <script type="rft/method" data-rft-method="onVisit"> 3 var that = this; 4 require(['dojo/_base/lang','dojo/_base/event','dojo/store/JsonRest','dojox/grid/DataGrid', 5 Â Â Â Â 'dojo/data/ObjectStore','rft/content','dojo/domReady!'], 6 function(lang,event,JsonRest,DataGrid,ObjectStore,content){ 7 var store = new JsonRest({ 8 target:"../server/api.php/data/Session/", 9 idProperty: 'uid' 2 <script> 3 function createNew(){ 4 var newBox = new rft.ui.ObjectBox({ 5 title: 'TeamUp Basic Template', 6 subTitle: '', 7 lowerTitle: '', 8 objectType: 'SessionTemplate', 9 actions: { 10 "edit": function() {}, 11 "delete": function() {} 12 } 10 13 }); 14 newBox.startup(); 15 newBox.placeAt("containerTemplates", "last"); 16 } 17 18 function createInstance(args) { 19 // Create a template instance in the "Sessions" tab 20 var args; 21 args.objectType = "Session"; 22 var d = new Date(); 23 var dateString = d.getDate()+"-"+d.getMonth()+"-"+d.getFullYear(); 24 var creator = "Igor Mayer"; // Use currently logged in profile instead! 25 args.subTitle = "Created on "+dateString+" by "+creator; 26 27 args.actions = { 28 "edit": function() {}, 29 "delete": function() {} 30 } 31 var newBox = new rft.ui.ObjectBox(args); 32 newBox.startup(); 33 newBox.placeAt("containerSessions", "last"); 11 34 12 that.grid.setStore(ObjectStore({objectStore: store})); 13 14 that.grid.on('rowclick',lang.hitch(that,function(evt){ 15 var obj = evt.grid.getItem(evt.rowIndex); 16 this.form.set('value', obj); 17 })); 35 // TODO: Then switch tabs to the Sessions tab! 36 var sess = dijit.byId("dijit_layout_ContentPane_5"); 37 dijit.byId("tabs").selectChild(sess); 38 } 39 </script> 40 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'" style="height: 500px;"> 41 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'top'"> 42 <h2> 43 <span class="rftIcon rftIconSession"></span> 44 <span class="headerText">Sessions</span> 45 </h2> 46 </div> 47 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'"> 48 <div data-dojo-type="dijit.layout.TabContainer" class="green" data-dojo-props="tabPosition:'left-h',region:'center'" id="tabs"> 49 <div data-dojo-type="dijit.layout.BorderContainer" title="Templates"> 50 <div id="containerTemplates" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'center'"> 51 <!--TODO: These don't allow for custom icon settings yet! --> 52 <div data-dojo-type="rft.ui.ObjectBox" data-dojo-props="actions: {'edit': function(){alert('Custom edit code');}, 'delete':function(){}, 'Custom function': function(){alert('newCommand');}, 'publish': createInstance}"></div> 53 </div> 54 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'bottom'" style="height: 40px;"> 55 <div data-dojo-type="dijit.form.Button" data-dojo-props="region: 'bottom', baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconSessionTemplate', onClick: createNew">Create new template</div> 56 </div> 57 </div> 58 <div data-dojo-type="dijit.layout.ContentPane" title="Sessions"> 59 <div id="containerSessions" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'center'"> 18 60 19 that.grid.on('rowdblclick',lang.hitch(that,function(evt){ 20 var obj = evt.grid.getItem(evt.rowIndex); 21 content.goTo('/session',{uid:obj.uid}); 22 })); 23 24 var submitHandler = lang.hitch(that,function(evt){ 25 var newObj = this.form.get('value'); 26 // mixin newObj in obj. 27 // store.put(newObj); 28 event.stop(evt); 29 return false; 30 }); 31 that.btnSave.on('click',submitHandler); 32 that.form.on('submit',submitHandler); 33 34 }); 35 </script> 36 <div class="largeFrame" style="width: 400px;"> 37 <div class="largeTitle">Sessions</div> 38 <div class="content"> 39 <div data-dojo-type="dojox.grid.DataGrid" data-dojo-props="autoWidth:true,autoHeight:true,structure:[{name:'Title',field:'title'}]" data-dojo-attach-point="grid"></div> 40 </div> 41 42 </div> 43 44 <div class="largeFrame" style="width: 400px;"> 45 <div class="largeTitle">Details</div> 46 <div> 47 <form data-dojo-type="dijit.form.Form" data-dojo-attach-point="form"> 48 <fieldset> 49 <label for="title" class="loginLabel">Title</label> 50 <input data-dojo-type="dijit.form.TextBox" name="title" type="text" class="loginInput" /> 51 </fieldset> 52 <button type="submit" data-dojo-type="dijit.form.Button" data-dojo-attach-point="btnSave">Save</button> 53 </form> 61 </div> 62 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'bottom'" style="height: 40px;"> 63 <!-- Buttons? --> 64 </div> 65 </div> 66 </div> 54 67 </div> 55 68 </div> 56 57 69 </div> -
Dev/branches/rest-dojo-ui/client/rft/pages/survey.html
r316 r347 1 1 <div data-dojo-type="rft.pages.survey"> 2 < h1 data-rft-attach-point="header">(default)</h1>3 <div>Created by <span data-rft-attach-point="creator"></span></div>4 <form data-dojo-type="dijit.form.Form" data-rft-attach-point="form" data-rft-attach-event="onSubmit:onSave">5 <div style="display: block; clear: both;">6 <button type="submit" data-dojo-type="dijit.form.Button">Save</button>7 < button type="button" data-dojo-type="dijit.form.Button" data-rft-attach-event="onClick:onReset">Reset</button>2 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'" style="height: 500px;"> 3 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'top'"> 4 <h2> 5 <span class="rftIcon rftIconSurvey"></span> 6 <span class="headerText">Survey A [editing]</span> 7 </h2> 8 8 </div> 9 <label for="title" class="loginLabel">Title</label> 10 <input type="text" name="title" data-dojo-type="dijit.form.TextBox" class="loginInput"/> 11 <label for="description" class="loginLabel">Description</label> 12 <textarea name="description" data-dojo-type="dijit.form.SimpleTextarea" class="loginInput"></textarea> 13 <div> 14 <div style="width: 45%; float: left; clear: left;"><div data-rft-attach-point="allQuestions"></div></div> 15 <div style="width: 45%; float: left;"><div data-rft-attach-point="surveyQuestions"></div></div> 9 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'center'"> 10 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'top'"> 11 Presets 12 </div> 13 <div data-dojo-type="dijit.layout.TabContainer" class="blue" data-dojo-props="tabPosition:'left-h',region:'center'"> 14 <div data-dojo-type="dijit.layout.ContentPane" title="Category One, this is a very long title to see how overflow works. This part is cut off because it passes two lines at 200px wide."> 15 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat one'"></div> 16 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat two'"></div> 17 </div> 18 <div data-dojo-type="dijit.layout.ContentPane" title="Category Two"> 19 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat one'"></div> 20 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat two'"></div> 21 </div> 22 <div data-dojo-type="dijit.layout.ContentPane" title="Category Three"> 23 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat one'"></div> 24 </div> 25 <div data-dojo-type="dijit.layout.ContentPane" title="Category Four"> 26 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Green Question Subcat one'"></div> 27 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat two'"></div> 28 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat three'"></div> 29 </div> 30 <div data-dojo-type="dijit.layout.ContentPane" title="Category Five"> 31 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat one'"></div> 32 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat two'"></div> 33 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat three'"></div> 34 <div data-dojo-type="rft.ui.SelectorThijs" data-dojo-props="Title:'Subcat four'"></div> 35 </div> 36 </div> 16 37 </div> 17 </form> 38 <!-- "Shopping cart" --> 39 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'right'" style="width: 300px"> 40 <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region:'top'"> 41 <h3>Included questions</h3> 42 </div> 43 <div data-dojo-type="rft.ui.List" data-dojo-props="region:'center'"> 44 <!-- These would have to be dynamically generated instead of declared here! --> 45 <div data-dojo-type="rft.ui.LineWithActionsWidgetThijs" data-dojo-props="title:'Question one', actions: {'Cancel':{callback: function(){}, properties: {blockButton: false, icon: 'Delete', modifiers:'white'}}}"></div> 46 <div data-dojo-type="rft.ui.LineWithActionsWidgetThijs" data-dojo-props="title:'Question two', actions: {'Cancel':{callback: function(){}, properties: {blockButton: false, icon: 'Delete', modifiers:'white'}}}"></div> 47 </div> 48 <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'bottom'"> 49 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconSettings'">Settings</button> 50 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconAccept'">Save Changes</button> 51 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconCancel'">Discard changes</button> 52 <button data-dojo-type="dijit.form.Button" data-dojo-props="baseClass: 'rftLargeButton', iconClass: 'rftIcon rftIconPreview'">Preview</button> 53 </div> 54 </div> 55 </div> 18 56 </div> -
Dev/branches/rest-dojo-ui/client/rft/run.js
r311 r347 8 8 'dojo/data/ObjectStore', 9 9 'dojo/store/JsonRest', 10 'dijit/InlineEditBox', 10 11 'dijit/MenuBar', 11 12 'dijit/MenuBarItem', … … 13 14 'dijit/DropDownMenu', 14 15 'dijit/TitlePane', 16 'dijit/layout/BorderContainer', 15 17 'dijit/layout/ContentPane', 16 18 'dijit/layout/TabContainer', 17 19 'dijit/layout/AccordionContainer', 20 'dijit/form/DateTextBox', 18 21 'dijit/form/Form', 19 22 'dijit/form/TextBox', … … 25 28 'dojox/grid/DataGrid', 26 29 'dojox/widget/TitleGroup', 30 'rft/ui/List', 27 31 'rft/ui/MainMenu', 28 32 'rft/ui/MenuBarLink', … … 32 36 'rft/ui/QuestionWidget', 33 37 'rft/ui/TitleGroup', 38 39 // Thijs mods, to be merged 40 'rft/ui/SelectorThijs', 41 'rft/ui/LineWithActionsWidgetThijs', 34 42 35 43 // pages -> load dynamically? … … 56 64 57 65 }); 66 67 function goToPage(page) { 68 throw "Obsolete navigation to "+page; 69 }
Note: See TracChangeset
for help on using the changeset viewer.