12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535 |
- 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;
- if (this.module) {
- this.data.mid = this.module.json.id;
- }
- this.maplists = {};
- 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.htmlString = o2.bindJson(this.htmlString, {"lp": MWF.xApplication.query.ViewDesigner.LP.propertyTemplate});
- this.JsonTemplate = new MWF.widget.JsonTemplate(this.data, this.htmlString);
- this.propertyContent = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.propertyNode);
- //var htmlStr = this.JsonTemplate.load();
- this.propertyContent.set("html", this.JsonTemplate.load());
- //this.propertyContent.injectHtml(htmlStr);
- 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();
- this.loadMaplist();
- this.loadHtmlEditorArea();
- }
- }.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",
- "onClear" : function () {
- debugger;
- this.setValue(jsondata, node.value, node);
- }.bind(this),
- "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 < len) o = o[n];
- }.bind(this));
- o[key[len]] = value;
- },
- setRadioValue: function (name, input) {
- if (input.checked) {
- var i = name.indexOf("*");
- var names = (i == -1) ? name.split(".") : name.substr(i + 1, name.length).split(".");
- var value = input.value;
- if (value == "false") value = false;
- if (value == "true") value = true;
- var oldValue = this.data;
- for (var idx = 0; idx < names.length; idx++) {
- if (!oldValue[names[idx]]) {
- oldValue = null;
- break;
- } else {
- oldValue = oldValue[names[idx]];
- }
- }
- //var oldValue = this.data[name];
- this.changeJsonDate(names, value);
- this.changeData(name, input, oldValue);
- }
- },
- setCheckboxValue: function (name, input) {
- var id = this.module.json.id;
- var checkboxList = $$("input[name='" + id + name + "']");
- var values = [];
- checkboxList.each(function (checkbox) {
- if (checkbox.get("checked")) {
- values.push(checkbox.value);
- }
- });
- var oldValue = this.data[name];
- //this.data[name] = values;
- this.changeJsonDate(name, values);
- this.changeData(name, input, oldValue);
- },
- setSelectValue: function (name, select) {
- var idx = select.selectedIndex;
- var options = select.getElements("option");
- var value = "";
- if (options[idx]) {
- value = options[idx].get("value");
- }
- var i = name.indexOf("*");
- var names = (i == -1) ? name.split(".") : name.substr(i + 1, name.length).split(".");
- //var oldValue = this.data[name];
- var oldValue = this.data;
- for (var idx = 0; idx < names.length; idx++) {
- if (!oldValue[names[idx]]) {
- oldValue = null;
- break;
- } else {
- oldValue = oldValue[names[idx]];
- }
- }
- //var oldValue = this.data[name];
- //this.data[name] = value;
- this.changeJsonDate(names, value);
- this.changeData(name, select, oldValue);
- },
- setValue: function (name, value, obj) {
- var names = name.split(".");
- var oldValue = this.data;
- for (var idx = 0; idx < names.length; idx++) {
- if (!oldValue[names[idx]]) {
- oldValue = null;
- break;
- } else {
- oldValue = oldValue[names[idx]];
- }
- }
- //var oldValue = this.data[name];
- //this.data[name] = value;
- this.changeJsonDate(names, value);
- this.changeData(name, obj, oldValue);
- },
- setEditNodeStyles: function (node) {
- var nodes = node.getChildren();
- if (nodes.length) {
- nodes.each(function (el) {
- var cName = el.get("class");
- if (cName) {
- if (this.view.css[cName]) el.setStyles(this.view.css[cName]);
- }
- this.setEditNodeStyles(el);
- }.bind(this));
- }
- },
- loadHtmlEditorArea: function(){
- var htmlAreas = this.propertyContent.getElements(".MWFHtmlEditorArea");
- htmlAreas.each(function(node){
- var title = node.get("title");
- var name = node.get("name");
- var scriptContent = this.data[name];
- MWF.require("MWF.widget.HtmlEditorArea", function(){
- var htmlArea = new MWF.widget.HtmlEditorArea(node, {
- "title": title,
- //"maxObj": this.propertyNode.parentElement.parentElement.parentElement,
- "maxObj": this.designer.editContentNode || this.designer.formContentNode || this.designer.pageContentNode,
- "onChange": function(){
- this.data[name] = htmlArea.getValue();
- this.changeData(name);
- htmlArea.isChanged = true;
- }.bind(this),
- // "onBlur": function(){
- // if (htmlArea.isChanged){
- // this.changeData(name, node, "");
- // htmlArea.isChanged = false;
- // }
- // }.bind(this),
- "onSave": function(){
- this.designer.saveView();
- }.bind(this)
- });
- htmlArea.load({"code": scriptContent});
- }.bind(this));
- }.bind(this));
- },
- loadScriptArea: function () {
- var scriptAreas = this.propertyContent.getElements(".MWFScriptArea");
- var formulaAreas = this.propertyContent.getElements(".MWFFormulaArea");
- this.loadScriptEditor(scriptAreas);
- this.loadScriptEditor(formulaAreas, "formula");
- },
- loadScriptEditor: function (scriptAreas, style) {
- scriptAreas.each(function (node) {
- var title = node.get("title");
- var name = node.get("name");
- var names = name.split(".");
- var scriptContent = this.data;
- Array.each(names, function (n) {
- if (scriptContent) scriptContent = scriptContent[n];
- });
- // var scriptContent = this.data[name];
- MWF.require("MWF.widget.ScriptArea", function () {
- var scriptArea = new MWF.widget.ScriptArea(node, {
- "title": title,
- //"maxObj": this.propertyNode.parentElement.parentElement.parentElement,
- "maxObj": this.designer.editContentNode,
- "type": node.dataset["type"],
- "onChange": function () {
- var scriptObj = this.data;
- Array.each(names, function (n, idx) {
- if( idx === names.length -1 )return;
- if (scriptObj) scriptObj = scriptObj[n];
- });
- scriptObj[names[names.length -1]] = scriptArea.toJson().code;
- // this.data[name] = scriptArea.toJson().code;
- }.bind(this),
- "onSave": function () {
- this.designer.saveView();
- }.bind(this),
- "style": style || "default",
- "runtime": "server"
- });
- scriptArea.load({"code": scriptContent});
- }.bind(this));
- }.bind(this));
- },
- loadStatColumnSelect: function () {
- },
- loadPersonInput: function () {
- var identityNodes = this.propertyContent.getElements(".MWFPersonIdentity");
- var personNodes = this.propertyContent.getElements(".MWFPersonPerson");
- var personUnitNodes = this.propertyContent.getElements(".MWFPersonUnit");
- MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.PersonSelector", function () {
- identityNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "identity",
- "names": this.data[node.get("name")],
- "onChange": function (ids) {
- this.savePersonItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- personNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "person",
- "names": this.data[node.get("name")],
- "onChange": function (ids) {
- this.savePersonItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- personUnitNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "unit",
- "names": this.data[node.get("name")],
- "onChange": function (ids) {
- this.savePersonItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- }.bind(this));
- },
- savePersonItem: function (node, ids) {
- var values = [];
- ids.each(function (id) {
- //values.push({"name": (id.data.distinguishedName || id.data.name), "id": id.data.id});
- values.push((id.data.distinguishedName || id.data.id || id.data.name));
- }.bind(this));
- var name = node.get("name");
- key = name.split(".");
- var o = this.data;
- var len = key.length - 1;
- key.each(function (n, i) {
- if (!o[n]) o[n] = {};
- if (i < len) o = o[n];
- }.bind(this));
- o[key[len]] = values;
- //this.data.data.restrictWhereEntry[node.get("name")] = values;
- },
- loadPersonSelectInput: function () {
- var applicationNodes = this.propertyContent.getElements(".MWFSelectApplication");
- var processNodes = this.propertyContent.getElements(".MWFSelectProcess");
- // var companyNodes = this.propertyContent.getElements(".MWFSelectCompany");
- // var departmentNodes = this.propertyContent.getElements(".MWFSelectDepartment");
- var personNodes = this.propertyContent.getElements(".MWFSelectPerson");
- var identityNodes = this.propertyContent.getElements(".MWFSelectIdentity");
- var personUnitNodes = this.propertyContent.getElements(".MWFSelectUnit");
- var cmsapplicationNodes = this.propertyContent.getElements(".MWFSelectCMSApplication");
- var cmscategoryNodes = this.propertyContent.getElements(".MWFSelecCMStCategory");
- MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.PersonSelector", function () {
- applicationNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "application",
- "names": (this.data.data.where) ? this.data.data.where.applicationList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- processNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "process",
- "names": (this.data.data.where) ? this.data.data.where.processList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- personUnitNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "unit",
- "names": (this.data.data.where) ? this.data.data.where.creatorUnitList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- personNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "person",
- "names": (this.data.data.where) ? this.data.data.where.creatorPersonList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- identityNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "identity",
- "names": (this.data.data.where) ? this.data.data.where.creatorIdentityList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- cmsapplicationNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "CMSApplication",
- "names": (this.data.data.where) ? this.data.data.where.appInfoList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- cmscategoryNodes.each(function (node) {
- new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.view.designer, {
- "type": "CMSCategory",
- "names": (this.data.data.where) ? this.data.data.where.categoryInfoList : [],
- "onChange": function (ids) {
- this.savePersonSelectItem(node, ids);
- }.bind(this)
- });
- }.bind(this));
- }.bind(this));
- },
- savePersonSelectItem: function (node, ids) {
- //this.initWhereEntryData();
- var values = [];
- ids.each(function (id) {
- values.push({"name": (id.data.distinguishedName || id.data.name), "id": id.data.id});
- //values.push((id.data.distinguishedName || id.data.id || id.data.name));
- }.bind(this));
- var name = node.get("name");
- key = name.split(".");
- var o = this.data;
- var len = key.length - 1;
- key.each(function (n, i) {
- if (!o[n]) o[n] = {};
- if (i < len) o = o[n];
- }.bind(this));
- o[key[len]] = values;
- //this.data.data.restrictWhereEntry[node.get("name")] = values;
- },
- //loadWorkDataEditor: function(){
- // var workDataNodes = this.propertyContent.getElements(".MWFWorkData");
- // workDataNodes.each(function(node){
- // var select = node.getElement("select");
- // for (var i=0; i<select.options.length; i++){
- // if (select.options[i].value==this.data.name){
- // select.options[i].set("selected", true);
- // break;
- // }
- // }
- // if (!this.data.type) this.data.type = "text";
- // select.addEvent("change", function(e){
- // delete this.data.path;
- // this.data.name = select.options[select.selectedIndex].value;
- // this.module.listNode.getLast().set("text", this.data.text+"("+this.data.name+")");
- // this.setDataType();
- // }.bind(this));
- //
- // this.setDataType();
- // }.bind(this));
- // var nodes = this.propertyContent.getElements(".MWFWorkDataCheck");
- // nodes.each(function(node){
- // if (this.data.name) node.set("checked", true);
- // }.bind(this));
- //},
- //setDataType: function(){
- // switch (this.data.name){
- // case "startTime":case "completedTime":
- // this.data.type ="date";
- // break;
- // case "completed":
- // this.data.type ="boolean";
- // break;
- // default:
- // this.data.type ="text";
- // }
- //},
- //loadDataDataEditor: function(){
- // var nodes = this.propertyContent.getElements(".MWFDataData");
- // nodes.each(function(node){
- // var input = node.getElement("input");
- // input.set("value", this.data.path);
- // input.addEvent("change", function(e){
- // delete this.data.name;
- // this.data.path = input.get("value");
- // this.module.listNode.getLast().set("text", this.data.text+"("+this.data.path+")");
- // }.bind(this));
- // input.addEvent("blur", function(e){
- // delete this.data.name;
- // this.data.path = input.get("value");
- // this.module.listNode.getLast().set("text", this.data.text+"("+this.data.path+")");
- // }.bind(this));
- // input.addEvent("keydown", function(e){
- // if (e.code==13){
- // delete this.data.name;
- // this.data.path = input.get("value");
- // this.module.listNode.getLast().set("text", this.data.text+"("+this.data.path+")");
- // }
- // e.stopPropagation();
- // }.bind(this));
- //
- // var select = node.getElement("select");
- // for (var i=0; i<select.options.length; i++){
- // if (select.options[i].value==this.data.type){
- // select.options[i].set("selected", true);
- // break;
- // }
- // }
- // if (!this.data.type) this.data.type = "text";
- // select.addEvent("change", function(e){
- // this.data.type = select.options[select.selectedIndex].value;
- // }.bind(this));
- //
- // }.bind(this));
- // var nodes = this.propertyContent.getElements(".MWFDataDataCheck");
- // nodes.each(function(node){
- // if (this.data.path) node.set("checked", true);
- // }.bind(this));
- //},
- loadColumnExportEditor: function () {
- var _self = this;
- var nodes = this.propertyContent.getElements(".MWFColumnExport");
- nodes.each(function (node) {
- //if (!this.data.export) this.data.export = {};
- //var sort = this.data.export.sort || "";
- //var sortOrder = this.data.export.sortOrder || "1";
- var select = node.getElement("select");
- var sortList = this.view.data.data.orderList;
- sortList.each(function (order) {
- if (order.column == this.data.column) {
- if (order.orderType == "asc") select.options[1].set("selected", true);
- if (order.orderType == "desc") select.options[1].set("selected", false);
- }
- }.bind(this));
- select.addEvent("change", function (e) {
- debugger;
- var sortList = this.view.data.data.orderList;
- var v = select.options[select.selectedIndex].value;
- if (v != "none") {
- var flag = false;
- sortList.each(function (order) {
- if (order.column == this.data.column) {
- flag = true;
- order.orderType = select.options[select.selectedIndex].value;
- }
- }.bind(this));
- if (!flag) sortList.push({
- "column": this.data.column,
- "orderType": select.options[select.selectedIndex].value
- });
- var oldOrderList = Array.clone(this.view.data.data.orderList);
- this.view.data.data.orderList = [];
- this.view.json.data.selectList.each(function (sel) {
- oldOrderList.each(function (order) {
- if (order.column == sel.column) {
- this.view.data.data.orderList.push(order);
- }
- }.bind(this));
- }.bind(this));
- } else {
- var sortList = this.view.data.data.orderList;
- var deleteItem = null;
- sortList.each(function (order) {
- if (order.column == this.data.column) {
- deleteItem = order;
- }
- }.bind(this));
- if (deleteItem) sortList.erase(deleteItem);
- }
- }.bind(this));
- var radios = node.getElements("input[name='" + this.module.json.id + "groupEntry']");
- var group = this.view.data.data.group;
- if (group.column == this.data.column) radios[0].set("checked", true);
- radios.addEvent("click", function (e) {
- if (this.checked) {
- if (this.value == "true") {
- _self.view.data.data.group.column = _self.data.column;
- _self.view.items.each(function (col) {
- if (col.property) {
- var groupRadios = col.property.propertyContent.getElement(".MWFColumnExportGroup").getElements("input");
- groupRadios.each(function (r) {
- if (r.value == "true") r.set("checked", false);
- if (r.value == "false") r.set("checked", true);
- });
- }
- });
- (_self.view.data.data.selectList).each(function (s) {
- if (s.column !== _self.data.column) s.groupEntry = false;
- });
- this.set("checked", true);
- } else {
- if (group.column == _self.data.column) _self.view.data.data.group = {};
- }
- }
- });
- }.bind(this));
- },
- loadViewFilter: function () {
- var nodes = this.propertyContent.getElements(".MWFViewFilter");
- var filtrData = this.view.data.data.filterList;
- var customData = this.view.data.data.customFilterList;
- nodes.each(function (node) {
- MWF.xDesktop.requireApp("query.ViewDesigner", "widget.ViewFilter", function () {
- var _slef = this;
- new MWF.xApplication.query.ViewDesigner.widget.ViewFilter(node, this.view.designer, {
- "filtrData": filtrData,
- "customData": customData
- }, {
- "onChange": function (ids) {
- var data = this.getData();
- _slef.changeJsonDate(["data", "filterList"], data.data);
- _slef.changeJsonDate(["data", "customFilterList"], data.customData);
- }
- });
- }.bind(this));
- }.bind(this));
- },
- loadColumnFilter: function () {
- var nodes = this.propertyContent.getElements(".MWFColumnFilter");
- nodes.each(function (node) {
- this.module.filterAreaNode = node;
- var table = new Element("table", {
- "styles": {"width": "100%"},
- "border": "0px",
- "cellPadding": "0",
- "cellSpacing": "0"
- }).inject(node);
- var tr = new Element("tr", {"styles": this.module.css.filterTableTitle}).inject(table);
- var lp = MWF.APPDVD.LP.filter;
- var html = "<th style='width:24px;border-right:1px solid #CCC;border-bottom:1px solid #999;'></th>" +
- "<th style='border-right:1px solid #CCC;border-left:1px solid #FFF;border-bottom:1px solid #999;'>"+lp.logic+"</th>" +
- "<th style='border-right:1px solid #CCC;border-left:1px solid #FFF;border-bottom:1px solid #999;'>"+lp.path+"</th>" +
- "<th style='border-right:1px solid #CCC;border-left:1px solid #FFF;border-bottom:1px solid #999;'>"+lp.compare+"</th>" +
- "<th style='border-left:1px solid #FFF;border-bottom:1px solid #999;'>"+lp.value+"</th>";
- 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));
- },
- loadMaplist: function(){
- var maplists = this.propertyContent.getElements(".MWFMaplist");
- debugger;
- maplists.each(function(node){
- var title = node.get("title");
- var name = node.get("name");
- var lName = name.toLowerCase();
- var collapse = node.get("collapse");
- var mapObj = this.data[name];
- if (!mapObj) mapObj = {};
- MWF.require("MWF.widget.Maplist", function(){
- node.empty();
- var maplist = new MWF.widget.Maplist(node, {
- "title": title,
- "collapse": (collapse) ? true : false,
- "onChange": function(){
- //this.data[name] = maplist.toJson();
- //
- var oldData = this.data[name];
- this.changeJsonDate(name, maplist.toJson());
- this.changeStyle(name, oldData);
- this.changeData(name);
- }.bind(this),
- "onDelete": function(key){
- debugger;
- this.module.deletePropertiesOrStyles(name, key);
- }.bind(this),
- "isProperty": (lName.contains("properties") || lName.contains("property") || lName.contains("attribute"))
- });
- maplist.load(mapObj);
- this.maplists[name] = maplist;
- }.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.editContentNode || this.designer.contentNode
- });
- eventsEditor.load(eventsObj, this.data, name);
- }.bind(this));
- }
- },
- loadActionArea: function () {
- debugger;
- 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 multiActionArea = this.propertyContent.getElements(".MWFMultiActionArea");
- multiActionArea.each(function(node){
- var name = node.get("name");
- var actionContent = this.data[name];
- MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", function(){
- var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, {
- "maxObj": this.designer.editContentNode || this.propertyNode.parentElement.parentElement.parentElement,
- "scriptMaxObj": this.designer.editContentNode,
- "systemToolsAddress": "../x_component_query_ViewDesigner/$View/toolbars.json",
- "isSystemTool" : true,
- "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(".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.designer.editContentNode || this.propertyNode.parentElement.parentElement,
- "scriptMaxObj": this.designer.editContentNode,
- "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.designer.editContentNode || this.propertyNode.parentElement.parentElement,
- "scriptMaxObj": this.designer.editContentNode,
- "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 () {
- var lp = MWF.APPDVD.LP.filter;
- this.node = new Element("tr", {"styles": this.module.css.filterTableTd}).inject(this.table);
- var html = "<td style='widtd:24px;border-right:1px solid #CCC;border-bottom:1px solid #999;'></td>" +
- "<td style='padding:3px;border-right:1px solid #CCC;border-bottom:1px solid #999; width:60px'>" + this.data.logic + "</td>" +
- "<td style='padding:3px;border-right:1px solid #CCC;border-bottom:1px solid #999; width:30px'>"+lp.columnValue+"</td>" +
- "<td style='padding:3px;border-right:1px solid #CCC;border-bottom:1px solid #999;'>" + this.data.comparison + "</td>" +
- "<td style='padding:3px;border-bottom:1px solid #999;'>" + this.data.value + "</td>";
- 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 = "<option value=\"and\" selected>and</option><option value=\"or\">or</option>";
- } else {
- html = "<option value=\"and\">and</option><option value=\"or\" selected>or</option>";
- }
- 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);
- var lp = MWF.APPDVD.LP.filter;
- html = "";
- switch (this.property.data.type) {
- case "text":
- html += "<option value=''></option><option value='==' " + ((this.data.comparison == "==") ? "selected" : "") + ">"+lp.equals+"(==)</option>" +
- "<option value='!=' " + ((this.data.comparison == "!=") ? "selected" : "") + ">"+lp.notEquals+"(!=)</option>" +
- "<option value='@' " + ((this.data.comparison == "@") ? "selected" : "") + ">"+lp.contain+"(@)</option>";
- break;
- case "date":
- html += "<option value=''></option><option value='>' " + ((this.data.comparison == ">") ? "selected" : "") + ">"+lp.greaterThan+"(>)</option>" +
- "<option value='<' " + ((this.data.comparison == "<") ? "selected" : "") + ">"+lp.lessThan+"(<)</option>" +
- "<option value='>=' " + ((this.data.comparison == ">=") ? "selected" : "") + ">"+lp.greaterThanOrEqualTo+"(>=)</option>" +
- "<option value='<=' " + ((this.data.comparison == "<=") ? "selected" : "") + ">"+lp.lessThanOrEqualTo+"(<=)</option>";
- break;
- case "number":
- html += "<option value=''></option><option value='==' " + ((this.data.comparison == "==") ? "selected" : "") + ">"+lp.equals+"(==)</option>" +
- "<option value='!=' " + ((this.data.comparison == "!=") ? "selected" : "") + ">"+lp.notEquals+"(!=)</option>" +
- "<option value='>' " + ((this.data.comparison == ">") ? "selected" : "") + ">"+lp.greaterThan+"(>)</option>" +
- "<option value='<' " + ((this.data.comparison == "<") ? "selected" : "") + ">"+lp.lessThan+"(<)</option>" +
- "<option value='>=' " + ((this.data.comparison == ">=") ? "selected" : "") + ">"+lp.greaterThanOrEqualTo+"(>=)</option>" +
- "<option value='<=' " + ((this.data.comparison == "<=") ? "selected" : "") + ">"+lp.lessThanOrEqualTo+"(<=)</option>";
- break;
- case "boolean":
- html += "<option value=''></option><option value='==' " + ((this.data.comparison == "==") ? "selected" : "") + ">"+lp.equals+"(==)</option>" +
- "<option value='!=' " + ((this.data.comparison == "!=") ? "selected" : "") + ">"+lp.notEquals+"(!=)</option>";
- 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": "<option value=\"\"></option><option value=\"true\" " + ((this.data.value) ? "selected" : "") + ">true</option><option value=\"false\" " + ((!this.data.value) ? "selected" : "") + ">false</option>"
- }).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;
- }
- }
- });
|