UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

114 lines (96 loc) 3.31 kB
define(["dojo/_base/lang", "dojo/dom", "dojo/on", "dijit/registry", "dojo/dom-class"], function(lang, dom, on, registry, domClass){ var _onResults = []; // events on array return { // setDetailsContext for an item setDetailsContext: function(index, e, params){ if(params){ params.cursor = index; }else{ params = {"cursor":index}; } // transition to itemDetails view with the &cursor=index var transOpts = { title : "itemDetails", target : "itemDetails", url : "#itemDetails", // this is optional if not set it will be created from target params : params }; this.app.transitionToView(e.target,transOpts,e); }, // insert an item insertResult: function(index, e){ if(index<0 || index>this.list.store.data.length){ throw Error("index out of data model."); } if((this.list.store.data[index-1].First=="") || (this.list.store.data[index] && (this.list.store.data[index].First == ""))){ return; } var data = {id:Math.random(), "label": "", "rightIcon":"mblDomButtonBlueCircleArrow", "First": "", "Last": "", "Location": "CA", "Office": "", "Email": "", "Tel": "", "Fax": ""}; this.list.store.add(data); this.setDetailsContext(index, e); }, // list view init init: function(){ var list = this.list; if(!list.Store){ list.setStore(this.loadedStores.listStore); } }, beforeActivate: function(){ // summary: // view life cycle beforeActivate() // var onResult; domClass.remove(dom.byId("listInsert1"), "hide"); domClass.add(dom.byId("listInsert1"), "show"); // for(var i = 0; i < this.list.store.data.length; i++){ // var item = dom.byId(this.list.store.data[i].id); // onResult = on(item, "click", lang.hitch(this, function(e){ // var item = this.list.store.query({"label": e.target.innerHTML}) // var index = this.list.store.index[item[0].id]; // console.log("index is "+index); // this.setDetailsContext(index, e, this.params); // })); // _onResults.push(onResult); // } onResult = this.list.on("click", lang.hitch(this, function(e){ console.log("List on click hit ",e); var item = this.list.store.query({"label": e.target.innerHTML}); var index = this.list.store.index[item[0].id]; console.log("index is "+index); this.setDetailsContext(index, e, this.params); })); _onResults.push(onResult); var listInsert1 = dom.byId("listInsert1"); onResult = on(listInsert1, "click", lang.hitch(this, function(e){ console.log("listInsert1 on click hit ",e); var index = this.list.store.data.length; this.insertResult(index, e); })); _onResults.push(onResult); }, beforeDeactivate: function(){ // summary: // view life cycle beforeActivate() // domClass.remove(dom.byId("listInsert1"), "show"); domClass.add(dom.byId("listInsert1"), "hide"); }, afterDeactivate: function(){ // summary: // view life cycle beforeActivate() // var onResult = _onResults.pop(); while(onResult){ onResult.remove(); onResult = _onResults.pop(); } }, // view destroy, this destroy function can be removed since it is empty destroy: function(){ // _WidgetBase.on listener is automatically destroyed when the Widget itself is. } }; });