MWF.require("MWF.widget.Common", null, false); MWF.require("MWF.widget.JsonTemplate", null, false); MWF.xApplication.query.ViewDesigner.Property = MWF.FVProperty = new Class({ Extends: MWF.widget.Common, Implements: [Options, Events], options: { "style": "default", "path": "/x_component_query_FormDesigner/property/property.html" }, initialize: function(module, propertyNode, designer, options){ this.setOptions(options); this.module = module; this.view = module.view; this.data = module.json; this.data.vid = this.view.json.id; this.data.vtype = this.view.json.type; this.data.pid = this.view.json.id+this.data.id; this.htmlPath = this.options.path; this.designer = designer; this.propertyNode = propertyNode; }, load: function(){ if (this.fireEvent("queryLoad")){ MWF.getRequestText(this.htmlPath, function(responseText, responseXML){ this.htmlString = responseText; this.fireEvent("postLoad"); }.bind(this)); } this.propertyNode.addEvent("keydown", function(e){e.stopPropagation();}); }, editProperty: function(td){ }, getHtmlString: function(callback){ if (!this.htmlString){ MWF.getRequestText(this.htmlPath, function(responseText, responseXML){ this.htmlString = responseText; if (callback) callback(); }.bind(this)); }else{ if (callback) callback(); } }, show: function(){ if (!this.propertyContent){ this.getHtmlString(function(){ if (this.htmlString){ this.JsonTemplate = new MWF.widget.JsonTemplate(this.data, this.htmlString); this.propertyContent = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.propertyNode); this.propertyContent.set("html", this.JsonTemplate.load()); this.setEditNodeEvent(); this.setEditNodeStyles(this.propertyContent); this.loadPropertyTab(); this.loadPersonInput(); this.loadPersonSelectInput(); this.loadViewFilter(); this.loadScriptArea(); this.loadColumnExportEditor(); this.loadJSONArea(); this.loadEventsEditor(); this.loadViewStylesArea(); this.loadPagingStylesArea(); this.loadActionStylesArea(); this.loadActionArea(); this.loadStylesList(); } }.bind(this)); }else{ this.propertyContent.setStyle("display", "block"); } }, hide: function(){ //this.JsonTemplate = null; //this.propertyNode.set("html", ""); if (this.propertyContent) this.propertyContent.setStyle("display", "none"); }, loadJSONArea: function(){ var jsonNode = this.propertyContent.getElement(".MWFJSONArea"); if (jsonNode){ this.propertyTab.pages.each(function(page){ if (page.contentNode == jsonNode.parentElement){ page.setOptions({ "onShow": function(){ jsonNode.empty(); MWF.require("MWF.widget.JsonParse", function(){ this.json = new MWF.widget.JsonParse(this.module.json, jsonNode, null); this.json.load(); }.bind(this)); }.bind(this) }); } }.bind(this)); } }, loadPropertyTab: function(){ var tabNodes = this.propertyContent.getElements(".MWFTab"); if (tabNodes.length){ var tmpNode = this.propertyContent.getFirst(); var tabAreaNode = new Element("div", { "styles": this.view.css.propertyTabNode }).inject(tmpNode, "before"); MWF.require("MWF.widget.Tab", function(){ var tab = new MWF.widget.Tab(tabAreaNode, {"style": "formPropertyList"}); tab.load(); var tabPages = []; tabNodes.each(function(node){ var page = tab.addTab(node, node.get("title"), false); tabPages.push(page); this.setScrollBar(page.contentNodeArea, "small", null, null); }.bind(this)); tabPages[0].showTab(); this.propertyTab = tab; this.designer.resizeNode(); }.bind(this), false); } }, setEditNodeEvent: function(){ var property = this; // var inputs = this.process.propertyListNode.getElements(".editTableInput"); var inputs = this.propertyContent.getElements("input"); inputs.each(function(input){ var jsondata = input.get("name"); if (jsondata && jsondata.substr(0,1)!="_"){ if (this.module){ var id = this.module.json.id; input.set("name", id+jsondata); } if (jsondata){ var inputType = input.get("type").toLowerCase(); switch (inputType){ case "radio": input.addEvent("change", function(e){ property.setRadioValue(jsondata, this); }); input.addEvent("blur", function(e){ property.setRadioValue(jsondata, this); }); input.addEvent("keydown", function(e){ e.stopPropagation(); }); property.setRadioValue(jsondata, input); break; case "checkbox": input.addEvent("change", function(e){ property.setCheckboxValue(jsondata, this); }); input.addEvent("click", function(e){ property.setCheckboxValue(jsondata, this); }); input.addEvent("keydown", function(e){ e.stopPropagation(); }); break; default: input.addEvent("change", function(e){ property.setValue(jsondata, this.value, this); }); input.addEvent("blur", function(e){ property.setValue(jsondata, this.value, this); }); input.addEvent("keydown", function(e){ if (e.code==13){ property.setValue(jsondata, this.value, this); } e.stopPropagation(); }); if (input.hasClass("editTableInputDate")){ this.loadCalendar(input, jsondata); } } } } }.bind(this)); var selects = this.propertyContent.getElements("select"); selects.each(function(select){ var jsondata = select.get("name"); if (jsondata){ select.addEvent("change", function(e){ property.setSelectValue(jsondata, this); }); //property.setSelectValue(jsondata, select); } }); var textareas = this.propertyContent.getElements("textarea"); textareas.each(function(input){ var jsondata = input.get("name"); if (jsondata){ input.addEvent("change", function(e){ property.setValue(jsondata, this.value); }); input.addEvent("blur", function(e){ property.setValue(jsondata, this.value); }); input.addEvent("keydown", function(e){ e.stopPropagation(); }); } }.bind(this)); }, loadCalendar: function(node, jsondata){ MWF.require("MWF.widget.Calendar", function(){ this.calendar = new MWF.widget.Calendar(node, { "style": "xform", "isTime": false, "target": this.module.designer.content, "format": "%Y-%m-%d", "onComplate": function(){ this.setValue(jsondata, node.value, node); //this.validationMode(); //this.validation(); //this.fireEvent("complete"); }.bind(this) }); //this.calendar.show(); }.bind(this)); }, changeStyle: function(name){ this.module.setPropertiesOrStyles(name); }, changeData: function(name, input, oldValue){ var i = name.lastIndexOf("*"); var n = (i!=-1) ? name.substr(i+1, name.length) : name; this.module._setEditStyle(n, input, oldValue); }, changeJsonDate: function(key, value){ if (typeOf(key)!="array") key = [key]; var o = this.data; var len = key.length-1; key.each(function(n, i){ if (!o[n]) o[n] = {}; if (i逻辑" + "路径" + "比较" + "值"; tr.set("html", html); var addActionNode = new Element("div", {"styles": this.module.css.filterAddActionNode}).inject(tr.getFirst("th")); addActionNode.addEvent("click", function(){ this.addFilter(table); }.bind(this)); if (this.data.filterList) { this.data.filterList.each(function (op) { new MWF.xApplication.query.ViewDesigner.Property.Filter(op, table, this); }.bind(this)); } }.bind(this)); }, addFilter: function(table){ op = { "logic": "and", "comparison": "", "value": "" } if (!this.data.filterList) this.data.filterList = []; this.data.filterList.push(op); var filter = new MWF.xApplication.query.ViewDesigner.Property.Filter(op, table, this); filter.editMode(); }, loadViewStylesArea: function(){ var _self = this; var viewAreas = this.propertyContent.getElements(".MWFViewStylesArea"); viewAreas.each(function(node){ var name = node.get("name"); var d = this.data; Array.each( name.split("."), function(n){ if(d)d = d[n]; }); var viewStyles = d || {}; MWF.require("MWF.widget.Maplist", function(){ var maps = []; Object.each(viewStyles, function(v, k){ var mapNode = new Element("div").inject(node); mapNode.empty(); var maplist = new MWF.widget.Maplist(mapNode, { "title": k, "collapse": true, "onChange": function(){ // var oldData = _self.data[name]; var oldData = this.data; Array.each( name.split("."), function(n){ if(oldData)oldData = oldData[n]; }); maps.each(function(o){ d[o.key] = o.map.toJson(); }.bind(this)); _self.changeData(name, node, oldData); } }); maps.push({"key": k, "map": maplist}); maplist.load(v); }.bind(this)); }.bind(this)); }.bind(this)); }, loadActionStylesArea: function(){ var _self = this; var actionAreas = this.propertyContent.getElements(".MWFActionStylesArea"); actionAreas.each(function(node){ var name = node.get("name"); var actionStyles = this.data[name]; MWF.require("MWF.widget.Maplist", function(){ var maps = []; Object.each(actionStyles, function(v, k){ var mapNode = new Element("div").inject(node); mapNode.empty(); var maplist = new MWF.widget.Maplist(mapNode, { "title": k, "collapse": true, "onChange": function(){ var oldData = _self.data[name]; maps.each(function(o){ _self.data[name][o.key] = o.map.toJson(); }.bind(this)); _self.changeData(name, node, oldData); } }); maps.push({"key": k, "map": maplist}); maplist.load(v); }.bind(this)); }.bind(this)); }.bind(this)); }, loadPagingStylesArea: function(){ var _self = this; var pagingAreas = this.propertyContent.getElements(".MWFPagingStylesArea"); pagingAreas.each(function(node){ var name = node.get("name"); var pagingStyles = this.data[name]; MWF.require("MWF.widget.Maplist", function(){ var maps = []; Object.each(pagingStyles, function(v, k){ var mapNode = new Element("div").inject(node); mapNode.empty(); var maplist = new MWF.widget.Maplist(mapNode, { "title": k, "collapse": true, "onChange": function(){ var oldData = _self.data[name]; maps.each(function(o){ _self.data[name][o.key] = o.map.toJson(); }.bind(this)); _self.changeData(name, node, oldData); } }); maps.push({"key": k, "map": maplist}); maplist.load(v); }.bind(this)); }.bind(this)); }.bind(this)); }, loadEventsEditor: function(){ MWF.xApplication.process = MWF.xApplication.process || {}; MWF.APPFD = MWF.xApplication.process.FormDesigner = MWF.xApplication.process.FormDesigner || {}; MWF.xDesktop.requireApp("process.FormDesigner", "lp."+o2.language, null, false); var events = this.propertyContent.getElement(".MWFEventsArea"); if (events){ var name = events.get("name"); var eventsObj = this.data; Array.each( name.split("."), function(n){ if(eventsObj)eventsObj = eventsObj[n]; }) MWF.xDesktop.requireApp("process.FormDesigner", "widget.EventsEditor", function(){ var eventsEditor = new MWF.xApplication.process.FormDesigner.widget.EventsEditor(events, this.designer, { //"maxObj": this.propertyNode.parentElement.parentElement.parentElement, "maxObj": this.designer.contentNode }); eventsEditor.load(eventsObj, this.data, name); }.bind(this)); } }, loadActionArea: function(){ MWF.xApplication.process = MWF.xApplication.process || {}; MWF.APPFD = MWF.xApplication.process.FormDesigner = MWF.xApplication.process.FormDesigner || {}; MWF.xDesktop.requireApp("process.FormDesigner", "lp."+o2.language, null, false); var actionAreas = this.propertyContent.getElements(".MWFActionArea"); actionAreas.each(function(node){ var name = node.get("name"); var actionContent = this.data[name]; MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", function(){ // debugger; // var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, { // "maxObj": this.propertyNode.parentElement.parentElement.parentElement, // "noCreate": true, // "noDelete": true, // "noCode": true, // "onChange": function(){ // this.data[name] = actionEditor.data; // }.bind(this) // }); // actionEditor.load(this.module.defaultToolBarsData); var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, { "maxObj": this.propertyNode.parentElement.parentElement.parentElement, "noEditShow" : true, "noReadShow" : true, "onChange": function(){ this.data[name] = actionEditor.data; this.changeData(name); }.bind(this) }); actionEditor.load(actionContent); }.bind(this)); }.bind(this)); var actionAreas = this.propertyContent.getElements(".MWFDefaultActionArea"); actionAreas.each(function(node){ var name = node.get("name"); var actionContent = this.data[name] || this.module.defaultToolBarsData; MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", function(){ var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, { "maxObj": this.propertyNode.parentElement.parentElement.parentElement, "isSystemTool" : true, "systemToolsAddress" : "/x_component_query_ViewDesigner/$View/toolbars.json", "noCreate": true, "noDelete": false, "noCode": true, "noReadShow": true, "noEditShow": true, "onChange": function(){ this.data[name] = actionEditor.data; this.changeData(name); }.bind(this) }); actionEditor.load(actionContent); // var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, { // "maxObj": this.propertyNode.parentElement.parentElement.parentElement, // "onChange": function(){ // this.data[name] = actionEditor.data; // }.bind(this) // }); // actionEditor.load(actionContent); }.bind(this)); }.bind(this)); }, loadStylesList: function(){ var styleSelNodes = this.propertyContent.getElements(".MWFViewStyle"); styleSelNodes.each(function(node){ debugger; if (this.module.stylesList){ if (!this.data.data.viewStyleType) this.data.data.viewStyleType = "default"; // var mode = ( this.form.options.mode || "" ).toLowerCase() === "mobile" ? "mobile" : "pc"; Object.each(this.module.stylesList, function(s, key){ // if( s.mode.contains( mode ) ){ new Element("option", { "text": s.name, "value": key, "selected": ((!this.data.data.viewStyleType && key=="default") || (this.data.data.viewStyleType==key)) }).inject(node) // } }.bind(this)); }else{ node.getParent("tr").setStyle("display", "none"); } }.bind(this)); } //initWhereEntryData: function(){ // if (!this.data.data.restrictWhereEntry) this.data.data.restrictWhereEntry = { // "applicationList": [], // "processList": [], // "companyList": [], // "departmentList": [], // "personList": [], // "identityList": [] // }; //}, //loadApplicationSelector: function(){ // var nodes = this.propertyContent.getElements(".MWFApplicationSelect"); // if (nodes.length){ // MWF.xDesktop.requireApp("Organization", "Selector.package", function(){ // nodes.each(function(node){ // var title = new Element("div", {"styles": this.view.css.applicationSelectTitle, "text": node.get("title")}).inject(node); // var content = new Element("div", {"styles": this.view.css.applicationSelectContent}).inject(node); // var action = new Element("div", {"styles": this.view.css.applicationSelectAction, "text": node.get("title")}).inject(node); // action.addEvent("click", function(e){ // var values = []; // if (this.data.data.whereEntry){ // if (this.data.data.whereEntry.applicationList.length){ // this.data.data.whereEntry.applicationList.each(function(item){ // values.push(item.id); // }.bind(this)); // } // } // var options = { // "type": "application", // "count": 0, // "values": values, // //"title": this.app.lp.monthly.selectSortApplication, // "onComplete": function(items){ // this.initWhereEntryData(); // this.data.data.whereEntry.applicationList = []; // content.empty(); // items.each(function(item){ // this.data.data.whereEntry.applicationList.push({ // "id": item.data.id, // "name": item.data.name // }); // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": item.data.name // }).inject(content); // }.bind(this)); // }.bind(this) // }; // var selector = new MWF.OrgSelector(this.view.designer.content, options); // }.bind(this)); // // this.initWhereEntryData(); // this.data.data.whereEntry.applicationList.each(function(app){ // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": app.name // }).inject(content); // }.bind(this)); // }.bind(this)); // }.bind(this)); // } //}, //loadApplicationSelector1: function(){ // var nodes = this.propertyContent.getElements(".MWFApplicationSelect"); // if (nodes.length){ // this._getAppSelector(function(){ // nodes.each(function(node){ // var title = new Element("div", {"styles": this.view.css.applicationSelectTitle, "text": node.get("title")}).inject(node); // var content = new Element("div", {"styles": this.view.css.applicationSelectContent}).inject(node); // var action = new Element("div", {"styles": this.view.css.applicationSelectAction, "text": node.get("title")}).inject(node); // action.addEvent("click", function(e){ // this.appSelector.load(function(apps){ // if (!this.data.data.select) this.data.data.select = {"applicationRestrictList": [], "processRestrictList": []}; // this.data.data.select.applicationRestrictList = []; // content.empty(); // if (apps.length){ // apps.each(function(app){ // var o = { // "name": app.name, // "id": app.id, // "alias": app.alias // } // this.data.data.select.applicationRestrictList.push(o); // // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": app.name // }).inject(content); // // }.bind(this)); // } // }.bind(this)); // }.bind(this)); // if (!this.data.data.select) this.data.data.select = {"applicationRestrictList": [], "processRestrictList": []}; // this.data.data.select.applicationRestrictList.each(function(app){ // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": app.name // }).inject(content); // }.bind(this)); // // }.bind(this)); // }.bind(this)); // } //}, // //_getAppSelector: function(callback){ // if (!this.appSelector){ // MWF.xDesktop.requireApp("process.ProcessManager", "widget.ApplicationSelector", function(){ // this.appSelector = new MWF.xApplication.process.ProcessManager.widget.ApplicationSelector(this.view.designer, {"maskNode": this.view.designer.content}); // if (callback) callback(); // }.bind(this)); // }else{ // if (callback) callback(); // } //}, //this.initWhereEntryData(); //loadProcessSelector: function(){ // var nodes = this.propertyContent.getElements(".MWFApplicationSelect"); // if (nodes.length){ // MWF.xDesktop.requireApp("Organization", "Selector.package", function(){ // nodes.each(function(node){ // var title = new Element("div", {"styles": this.view.css.applicationSelectTitle, "text": node.get("title")}).inject(node); // var content = new Element("div", {"styles": this.view.css.applicationSelectContent}).inject(node); // var action = new Element("div", {"styles": this.view.css.applicationSelectAction, "text": node.get("title")}).inject(node); // action.addEvent("click", function(e){ // var values = []; // if (this.data.data.whereEntry){ // if (this.data.data.whereEntry.processList.length){ // this.data.data.whereEntry.processList.each(function(item){ // values.push(item.id); // }.bind(this)); // } // } // var options = { // "type": "process", // "count": 0, // "values": values, // "onComplete": function(items){ // this.initWhereEntryData(); // this.data.data.whereEntry.processList = []; // content.empty(); // items.each(function(item){ // this.data.data.whereEntry.processList.push({ // "id": item.data.id, // "name": item.data.name // }); // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": item.data.name // }).inject(content); // }.bind(this)); // }.bind(this) // }; // var selector = new MWF.OrgSelector(this.view.designer.content, options); // }.bind(this)); // // this.initWhereEntryData(); // this.data.data.whereEntry.processList.each(function(app){ // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": app.name // }).inject(content); // }.bind(this)); // }.bind(this)); // }.bind(this)); // } //} //loadProcessSelector1: function(){ // var nodes = this.propertyContent.getElements(".MWFProcessSelect"); // if (nodes.length){ // this._getProcessSelector(function(){ // nodes.each(function(node){ // var title = new Element("div", {"styles": this.view.css.applicationSelectTitle, "text": node.get("title")}).inject(node); // var content = new Element("div", {"styles": this.view.css.applicationSelectContent}).inject(node); // var action = new Element("div", {"styles": this.view.css.applicationSelectAction, "text": node.get("title")}).inject(node); // action.addEvent("click", function(e){ // var ids=[]; // this.data.data.select.applicationRestrictList.each(function(app){ // ids.push(app.id); // }); // this.processSelector.load(ids, function(apps){ // if (!this.data.data.select) this.data.data.select = {"applicationRestrictList": [], "processRestrictList": []}; // this.data.data.select.processRestrictList = []; // content.empty(); // if (apps.length){ // apps.each(function(app){ // var o = { // "name": app.name, // "id": app.id, // "alias": app.alias // } // this.data.data.select.processRestrictList.push(o); // // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": app.name // }).inject(content); // // }.bind(this)); // } // }.bind(this)); // }.bind(this)); // if (!this.data.data.select) this.data.data.select = {"applicationRestrictList": [], "processRestrictList": []}; // this.data.data.select.processRestrictList.each(function(app){ // new Element("div", { // "styles": this.view.css.applicationSelectItem, // "text": app.name // }).inject(content); // }.bind(this)); // // }.bind(this)); // }.bind(this)); // } //}, //_getProcessSelector: function(callback){ // if (!this.processSelector){ // MWF.xDesktop.requireApp("process.ProcessManager", "widget.ProcessSelector", function(){ // this.processSelector = new MWF.xApplication.process.ProcessManager.widget.ProcessSelector(this.view.designer, {"maskNode": this.view.designer.content}); // if (callback) callback(); // }.bind(this)); // }else{ // if (callback) callback(); // } //} }); MWF.xApplication.query.ViewDesigner.Property.Filter = new Class({ Implements: [Events], initialize: function(json, table, property){ this.property = property; this.module = property.module; this.table = table; this.data = json; this.load(); }, load: function(){ this.node = new Element("tr", {"styles": this.module.css.filterTableTd}).inject(this.table); var html = "" + ""+this.data.logic+"" + "列值" + ""+this.data.comparison+"" + ""+this.data.value+""; this.node.set("html", html); var tds = this.node.getElements("td"); this.delActionNode = new Element("div", {"styles": this.module.css.filterDelActionNode}).inject(tds[0]); this.delActionNode.addEvent("click", function(e){ this.delFilter(e); e.stopPropagation(); }.bind(this)); this.logicNode = tds[1]; this.comparisonNode = tds[3]; this.valueNode = tds[4]; this.node.addEvent("click", function(){ if (!this.isEditMode) this.editMode(); }.bind(this)); this.node.addEvent("blur", function(){ if (this.isEditMode) this.readMode(); }.bind(this)); }, delFilter: function(e){ var _self = this; this.property.designer.confirm("warn", e, MWF.APPDVD.LP.notice.deleteFilterTitle, MWF.APPDVD.LP.notice.deleteFilter, 300, 120, function(){ _self.node.destroy(); _self.property.data.filterList.erase(_self.data); MWF.release(_self); this.close(); }, function(){ this.close(); }, null); }, editMode: function(){ if (this.property.editModeFilter){ if (this.property.editModeFilter!=this) this.property.editModeFilter.readMode(); } var width = this.logicNode.getSize().x-9; this.logicNode.empty(); var logicSelect = new Element("select", {"styles": {"width": "90%"}}).inject(this.logicNode); var html = ""; if (this.data.logic=="and"){ html = ""; }else{ html = ""; } logicSelect.set("html", html); logicSelect.addEvent("change", function(){ this.data.logic = logicSelect.options[logicSelect.selectedIndex].value; }.bind(this)); width = this.comparisonNode.getSize().x-9; this.comparisonNode.empty(); var comparisonSelect = new Element("select", {"styles": {"width": "90%"}}).inject(this.comparisonNode); html = ""; switch (this.property.data.type){ case "text": html += "" + "" + ""; break; case "date": html += "" + "" + "" + ""; break; case "number": html += "" + "" + "" + "" + "" + ""; break; case "boolean": html += "" + ""; break; } comparisonSelect.set("html", html); comparisonSelect.addEvent("change", function(){ this.data.comparison = comparisonSelect.options[comparisonSelect.selectedIndex].value; }.bind(this)); width = this.valueNode.getSize().x-9; this.valueNode.empty(); var type = "text"; switch (this.property.data.type){ case "date": var valueInput = new Element("input", {"styles": {"width": "90%"}, "type": "text", "value": this.data.value }).inject(this.valueNode); MWF.require("MWF.widget.Calendar", function(){ this.calendar = new MWF.widget.Calendar(valueInput, { "style": "xform", "isTime": true, "secondEnable": true, "target": this.property.designer.content, "format": "%Y-%m-%d %H:%M:%S" }); //this.calendar.show(); }.bind(this)); break; case "number": var valueInput = new Element("input", {"styles": {"width": "90%"}, "type": "number", "value": this.data.value }).inject(this.valueNode); break; case "boolean": var valueInput = new Element("select", {"styles": {"width": ""+width+"px"}, "html": "" }).inject(this.valueNode); break; default: var valueInput = new Element("input", {"styles": {"width": "90%"}, "type": "text", "value": this.data.value }).inject(this.valueNode); } if (valueInput.tagName.toLowerCase()=="select"){ valueInput.addEvent("change", function(){ var v = valueInput.options[valueInput.selectedIndex].value; this.data.value = (v="true") ? true : false; }.bind(this)); }else{ valueInput.addEvent("change", function(e){ this.data.value = valueInput.get("value"); }.bind(this)); valueInput.addEvent("blur", function(e){ this.data.value = valueInput.get("value"); }.bind(this)); valueInput.addEvent("keydown", function(e){ if (e.code==13){ this.data.value = valueInput.get("value"); this.readMode(); } e.stopPropagation(); }.bind(this)); } this.isEditMode = true; this.property.editModeFilter = this; }, readMode: function(){ if (this.isEditMode){ var logicSelect = this.logicNode.getElement("select"); this.data.logic = logicSelect.options[logicSelect.selectedIndex].value; var comparisonSelect = this.comparisonNode.getElement("select"); this.data.comparison = comparisonSelect.options[comparisonSelect.selectedIndex].value; var valueInput = this.valueNode.getFirst(); if (valueInput.tagName.toLowerCase()=="select"){ var v = valueInput.options[valueInput.selectedIndex].value; this.data.value = (v="true") ? true : false; }else{ this.data.value = valueInput.get("value"); } this.logicNode.empty(); this.comparisonNode.empty(); this.valueNode.empty(); this.logicNode.set("text", this.data.logic); this.comparisonNode.set("text", this.data.comparison); this.valueNode.set("text", this.data.value); this.isEditMode = false; this.property.editModeFilter = null; } } });