Property.js 73 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822
  1. MWF.require("MWF.widget.Common", null, false);
  2. MWF.require("MWF.widget.JsonTemplate", null, false);
  3. MWF.xApplication.process.FormDesigner.Property = MWF.FCProperty = new Class({
  4. Extends: MWF.widget.Common,
  5. Implements: [Options, Events],
  6. options: {
  7. "style": "default",
  8. "path": "/x_component_process_FormDesigner/property/property.html"
  9. },
  10. initialize: function(module, propertyNode, designer, options){
  11. this.setOptions(options);
  12. this.module = module;
  13. this.form = module.form;
  14. this.data = module.json;
  15. this.data.pid = this.form.json.id+this.data.id;
  16. this.htmlPath = this.options.path;
  17. this.designer = designer;
  18. this.maplists = {};
  19. this.propertyNode = propertyNode;
  20. },
  21. load: function(){
  22. if (this.fireEvent("queryLoad")){
  23. MWF.getRequestText(this.htmlPath, function(responseText, responseXML){
  24. this.htmlString = responseText;
  25. this.fireEvent("postLoad");
  26. }.bind(this));
  27. }
  28. this.propertyNode.addEvent("keydown", function(e){e.stopPropagation();});
  29. },
  30. editProperty: function(td){
  31. },
  32. getHtmlString: function(callback){
  33. if (!this.htmlString){
  34. MWF.getRequestText(this.htmlPath, function(responseText, responseXML){
  35. this.htmlString = responseText;
  36. if (callback) callback();
  37. }.bind(this));
  38. }else{
  39. if (callback) callback();
  40. }
  41. },
  42. show: function(){
  43. if (!this.propertyContent){
  44. this.getHtmlString(function(){
  45. if (this.htmlString){
  46. this.JsonTemplate = new MWF.widget.JsonTemplate(this.data, this.htmlString);
  47. this.propertyContent = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.propertyNode);
  48. this.propertyContent.set("html", this.JsonTemplate.load());
  49. this.setEditNodeEvent();
  50. this.setEditNodeStyles(this.propertyContent);
  51. this.loadPropertyTab();
  52. this.loadMaplist();
  53. this.loadStylesList();
  54. this.loadDivTemplateType();
  55. this.loadPersonInput();
  56. this.loadFormFieldInput();
  57. this.loadScriptArea();
  58. this.loadCssArea();
  59. this.loadHtmlEditorArea();
  60. this.loadTreeData();
  61. this.loadArrayList();
  62. this.loadEventsEditor();
  63. this.loadActionArea();
  64. this.loadActionStylesArea();
  65. this.loadHTMLArea();
  66. this.loadJSONArea();
  67. this.loadFormSelect();
  68. //this.loadPageSelect();
  69. this.loadWidgetSelect();
  70. this.loadANNModelSelect();
  71. //this.loadViewSelect();
  72. this.loadValidation();
  73. this.loadIconSelect();
  74. this.loadLabelFlagSelect();
  75. this.loadImageClipper();
  76. this.loadImageFileSelect();
  77. this.loadParameterEditor();
  78. this.loadContextRoot();
  79. this.loadUnitTypeSelector();
  80. this.loadSourceTestRestful();
  81. this.loadSidebarPosition();
  82. this.loadViewFilter();
  83. //this.testRestful();
  84. // this.loadScriptInput();
  85. //MWF.process.widget.EventsEditor
  86. }
  87. }.bind(this));
  88. }else{
  89. this.propertyContent.setStyle("display", "block");
  90. }
  91. (new Fx.Scroll(layout.desktop.node)).toTop();
  92. },
  93. hide: function(){
  94. //this.JsonTemplate = null;
  95. //this.propertyNode.set("html", "");
  96. if (this.propertyContent) this.propertyContent.setStyle("display", "none");
  97. },
  98. destroy: function(){
  99. if (this.propertyContent){
  100. this.propertyContent.destroy();
  101. }
  102. MWF.release(this);
  103. },
  104. loadTreeData: function(){
  105. var arrays = this.propertyContent.getElements(".MWFTreeData");
  106. arrays.each(function(node){
  107. var title = node.get("title");
  108. var name = node.get("name");
  109. var json = this.data[name];
  110. if (!json) json = [];
  111. MWF.require("MWF.widget.TreeEditor", function(){
  112. var treeEditor = new MWF.widget.TreeEditor(node, {
  113. "title": title,
  114. "maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  115. "onChange": function(){
  116. this.data[name] = treeEditor.toJson();
  117. this.module.json[name] = this.data[name];
  118. this.module._refreshTree();
  119. }.bind(this)
  120. });
  121. treeEditor.load(json);
  122. }.bind(this));
  123. node.addEvent("keydown", function(e){e.stopPropagation();});
  124. }.bind(this));
  125. },
  126. loadJSONArea: function(){
  127. var jsonNode = this.propertyContent.getElement(".MWFJSONArea");
  128. if (jsonNode){
  129. this.propertyTab.pages.each(function(page){
  130. if (page.contentNode === jsonNode.parentElement){
  131. page.setOptions({
  132. "onShow": function(){
  133. jsonNode.empty();
  134. MWF.require("MWF.widget.JsonParse", function(){
  135. this.json = new MWF.widget.JsonParse(this.module.json, jsonNode, null);
  136. this.json.load();
  137. }.bind(this));
  138. }.bind(this)
  139. });
  140. }
  141. }.bind(this));
  142. }
  143. },
  144. loadHTMLArea: function(){
  145. var htmlNode = this.propertyContent.getElement(".MWFHTMLArea");
  146. if (htmlNode){
  147. var copy = this.module.node.clone(true, true);
  148. copy.clearStyles(true);
  149. htmlNode.set("text", copy.outerHTML);
  150. copy.destroy();
  151. this.propertyTab.pages.each(function(page){
  152. if (page.contentNode == htmlNode.parentElement){
  153. page.setOptions({
  154. "onShow": function(){
  155. var copy = this.module.node.clone(true, true);
  156. copy.clearStyles(true);
  157. //MWF.require("MWF.widget.HtmlEditor", function(){
  158. // debugger;
  159. // var editor = new MWF.widget.HtmlEditor(htmlNode);
  160. // editor.load(function(){
  161. // editor.editor.setValue(copy.outerHTML)
  162. // }.bind(this));
  163. //}.bind(this));
  164. o2.load("JSBeautifier_html", function(){
  165. htmlNode.set("text", html_beautify(copy.outerHTML, {"indent_size":1}));
  166. }.bind(this));
  167. MWF.widget.ace.load(function(){
  168. COMMON.AjaxModule.loadDom("/o2_lib/ace/src-min-noconflict/ext-static_highlight.js", function(){
  169. var highlight = ace.require("ace/ext/static_highlight");
  170. highlight(htmlNode, {mode: "ace/mode/html", theme: "ace/theme/eclipse", "fontSize": 16});
  171. }.bind(this));
  172. }.bind(this));
  173. copy.destroy();
  174. }.bind(this)
  175. });
  176. }
  177. }.bind(this));
  178. }
  179. },
  180. loadSidebarPosition: function(){
  181. var nodes = this.propertyContent.getElements(".MWFSidebarReposition");
  182. if (nodes.length){
  183. nodes.each(function(node){
  184. node.addEvent("click", function(){
  185. this.module.json.styles.top = "";
  186. this.module.loadPosition();
  187. }.bind(this));
  188. }.bind(this));
  189. }
  190. },
  191. loadANNModelSelect: function(){
  192. var nodes = this.propertyContent.getElements(".MWFANNModelSelect");
  193. if (nodes.length){
  194. this.getModelList(function(){
  195. nodes.each(function(node){
  196. var select = new Element("select").inject(node);
  197. select.addEvent("change", function(e){
  198. this.setValue(e.target.getParent("div").get("name"), e.target.options[e.target.selectedIndex].value, select);
  199. }.bind(this));
  200. this.setModelSelectOptions(node, select);
  201. var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  202. refreshNode.addEvent("click", function(e){
  203. this.getModelList(function(){
  204. this.setModelSelectOptions(node, select);
  205. }.bind(this), true);
  206. }.bind(this));
  207. }.bind(this));
  208. }.bind(this));
  209. }
  210. },
  211. getModelList: function(callback, refresh){
  212. if (!this.models || refresh){
  213. var action = o2.Actions.get("x_query_assemble_designer");
  214. if (action.listModel) action.listModel(function(json){
  215. this.models = json.data;
  216. if (callback) callback();
  217. }.bind(this));
  218. }else{
  219. if (callback) callback();
  220. }
  221. },
  222. setModelSelectOptions: function(node, select){
  223. var name = node.get("name");
  224. select.empty();
  225. var option = new Element("option", {"text": "none"}).inject(select);
  226. this.models.each(function(model){
  227. var option = new Element("option", {
  228. "text": model.name,
  229. "value": model.id,
  230. "selected": (this.data[name]==model.id)
  231. }).inject(select);
  232. }.bind(this));
  233. },
  234. loadFormSelect: function(){
  235. var formNodes = this.propertyContent.getElements(".MWFFormSelect");
  236. if (formNodes.length){
  237. this.getFormList(function(){
  238. formNodes.each(function(node){
  239. var select = new Element("select").inject(node);
  240. select.addEvent("change", function(e){
  241. var value = e.target.options[e.target.selectedIndex].value;
  242. //if( !this.module.checkSubformNested( value ) ){
  243. // this.designer.notice(MWF.APPPD.LP.checkSubformNestedError, "error", e.target, {
  244. // x: "right",
  245. // y: "bottom"
  246. // });
  247. //}else {
  248. this.setValue(e.target.getParent("div").get("name"), value, select);
  249. //}
  250. }.bind(this));
  251. this.setFormSelectOptions(node, select);
  252. var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  253. refreshNode.addEvent("click", function(e){
  254. this.getFormList(function(){
  255. this.setFormSelectOptions(node, select);
  256. }.bind(this), true);
  257. }.bind(this));
  258. //select.addEvent("click", function(e){
  259. // this.setFormSelectOptions(node, select);
  260. //}.bind(this));
  261. }.bind(this));
  262. }.bind(this));
  263. }
  264. },
  265. setFormSelectOptions: function(node, select){
  266. var name = node.get("name");
  267. select.empty();
  268. var option = new Element("option", {"text": "none"}).inject(select);
  269. this.forms.each(function(form){
  270. if( this.form.json.id !== form.id ){
  271. var option = new Element("option", {
  272. "text": form.name,
  273. "value": form.id,
  274. "selected": (this.data[name]==form.id)
  275. }).inject(select);
  276. }
  277. }.bind(this));
  278. },
  279. getFormList: function(callback, refresh){
  280. if (!this.forms || refresh){
  281. this.form.designer.actions.listForm(this.form.designer.application.id, function(json){
  282. this.forms = json.data;
  283. if (callback) callback();
  284. }.bind(this));
  285. }else{
  286. if (callback) callback();
  287. }
  288. },
  289. loadPageSelect: function(){
  290. var pageNodes = this.propertyContent.getElements(".MWFPageSelect");
  291. if (pageNodes.length){
  292. this.getPageList(function(){
  293. pageNodes.each(function(node){
  294. var select = new Element("select").inject(node);
  295. select.addEvent("change", function(e){
  296. var value = e.target.options[e.target.selectedIndex].value;
  297. this.setValue(e.target.getParent("div").get("name"), value, select);
  298. }.bind(this));
  299. this.setPageSelectOptions(node, select);
  300. var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  301. refreshNode.addEvent("click", function(e){
  302. this.getPageList(function(){
  303. this.setPageSelectOptions(node, select);
  304. }.bind(this), true);
  305. }.bind(this));
  306. }.bind(this));
  307. }.bind(this));
  308. }
  309. },
  310. setPageSelectOptions: function(node, select){
  311. var name = node.get("name");
  312. select.empty();
  313. var option = new Element("option", {"text": "none"}).inject(select);
  314. this.pages.each(function(page){
  315. if( this.form.json.id !== page.id ){
  316. var option = new Element("option", {
  317. "text": page.name,
  318. "value": page.id,
  319. "selected": (this.data[name]==page.id)
  320. }).inject(select);
  321. }
  322. }.bind(this));
  323. },
  324. getPageList: function(callback, refresh){
  325. if (!this.pages || refresh){
  326. this.form.designer.actions.listPage(this.form.designer.application.id, function(json){
  327. this.pages = json.data;
  328. if (callback) callback();
  329. }.bind(this));
  330. }else{
  331. if (callback) callback();
  332. }
  333. },
  334. loadWidgetSelect: function(){
  335. var widgetNodes = this.propertyContent.getElements(".MWFWidgetSelect");
  336. if (widgetNodes.length){
  337. this.getWidgetList(function(){
  338. widgetNodes.each(function(node){
  339. var select = new Element("select").inject(node);
  340. select.addEvent("change", function(e){
  341. var value = e.target.options[e.target.selectedIndex].value;
  342. this.setValue(e.target.getParent("div").get("name"), value, select);
  343. }.bind(this));
  344. this.setWidgetSelectOptions(node, select);
  345. var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  346. refreshNode.addEvent("click", function(e){
  347. this.getWidgetList(function(){
  348. this.setWidgetSelectOptions(node, select);
  349. }.bind(this), true);
  350. }.bind(this));
  351. }.bind(this));
  352. }.bind(this));
  353. }
  354. },
  355. setWidgetSelectOptions: function(node, select){
  356. var name = node.get("name");
  357. select.empty();
  358. var option = new Element("option", {"text": "none"}).inject(select);
  359. this.widgets.each(function(widget){
  360. if( this.form.json.id !== widget.id ){
  361. var option = new Element("option", {
  362. "text": widget.name,
  363. "value": widget.id,
  364. "selected": (this.data[name]==widget.id)
  365. }).inject(select);
  366. }
  367. }.bind(this));
  368. },
  369. getWidgetList: function(callback, refresh){
  370. if (!this.widgets || refresh){
  371. this.form.designer.actions.listWidget(this.form.designer.application.id, function(json){
  372. this.widgets = json.data;
  373. if (callback) callback();
  374. }.bind(this));
  375. }else{
  376. if (callback) callback();
  377. }
  378. },
  379. // clearStyles: function(node){
  380. // node.removeProperty("style");
  381. // var subNode = node.getFirst();
  382. // while (subNode){
  383. // this.clearStyles(subNode);
  384. // subNode = subNode.getNext();
  385. // }
  386. // },
  387. loadViewFilter: function(){
  388. var nodes = this.propertyContent.getElements(".MWFViewFilter");
  389. var filtrData = this.data.filterList;
  390. nodes.each(function(node){
  391. MWF.xDesktop.requireApp("query.ViewDesigner", "widget.ViewFilter", function(){
  392. var _slef = this;
  393. new MWF.xApplication.query.ViewDesigner.widget.ViewFilter(node, this.form.designer, {"filtrData": filtrData, "customData": null}, {
  394. "onChange": function(ids){
  395. var data = this.getData();
  396. _slef.changeJsonDate(["filterList"], data.data);
  397. //_slef.changeJsonDate(["data", "customFilterEntryList"], data.customData);
  398. }
  399. });
  400. }.bind(this));
  401. }.bind(this));
  402. },
  403. loadViewSelect: function(){
  404. var viewNodes = this.propertyContent.getElements(".MWFViewSelect");
  405. if (viewNodes.length){
  406. this.getViewList(function(){
  407. viewNodes.each(function(node){
  408. var select = new Element("select").inject(node);
  409. select.addEvent("change", function(e){
  410. var viewId = e.target.options[e.target.selectedIndex].value;
  411. var viewName = e.target.options[e.target.selectedIndex].get("text");
  412. this.setValue(e.target.getParent("div").get("name"), viewId);
  413. this.setValue(e.target.getParent("div").get("name")+"Name", viewName);
  414. }.bind(this));
  415. this.setViewSelectOptions(node, select);
  416. var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  417. refreshNode.addEvent("click", function(e){
  418. this.getViewList(function(){
  419. this.setViewSelectOptions(node, select);
  420. }.bind(this), true);
  421. }.bind(this));
  422. //select.addEvent("click", function(e){
  423. // this.setFormSelectOptions(node, select);
  424. //}.bind(this));
  425. }.bind(this));
  426. }.bind(this));
  427. }
  428. },
  429. setViewSelectOptions: function(node, select){
  430. var name = node.get("name");
  431. select.empty();
  432. var option = new Element("option", {"text": "none"}).inject(select);
  433. this.views.each(function(view){
  434. var option = new Element("option", {
  435. "text": view.name,
  436. "value": view.id,
  437. "selected": (this.data[name]==view.id)
  438. }).inject(select);
  439. }.bind(this));
  440. },
  441. getViewList: function(callback, refresh){
  442. if (!this.views || refresh){
  443. this.form.designer.actions.listView(this.form.designer.application.id, function(json){
  444. this.views = json.data;
  445. if (callback) callback();
  446. }.bind(this));
  447. }else{
  448. if (callback) callback();
  449. }
  450. },
  451. loadValidation: function(){
  452. var nodes = this.propertyContent.getElements(".MWFValidation");
  453. if (nodes.length){
  454. nodes.each(function(node){
  455. var name = node.get("name");
  456. MWF.xDesktop.requireApp("process.FormDesigner", "widget.ValidationEditor", function(){
  457. var validationEditor = new MWF.xApplication.process.FormDesigner.widget.ValidationEditor(node, this.designer, {
  458. "onChange": function(){
  459. var data = validationEditor.getValidationData();
  460. this.data[name] = data;
  461. }.bind(this)
  462. });
  463. validationEditor.load(this.data[name])
  464. }.bind(this));
  465. //new MWF.xApplication.process.FormDesigner.widget.ValidationEditor(node, this.designer);
  466. }.bind(this));
  467. }
  468. },
  469. loadIconSelect: function(){
  470. var nodes = this.propertyContent.getElements(".MWFIcon");
  471. if (nodes.length){
  472. nodes.each(function(node){
  473. var id = node.get("name");
  474. var icon = this.data[id];
  475. var iconNode = new Element("div", {"styles": this.form.css.processIconNode}).inject(node);
  476. if (icon) iconNode.setStyles({"background": "url("+icon+") center center no-repeat"});
  477. var selectNode = new Element("div", {"styles": this.form.css.processIconSelectNode, "text": this.form.designer.lp.selectIcon}).inject(node);
  478. selectNode.addEvent("click", function(){
  479. this.selectIcon(node);
  480. }.bind(this));
  481. }.bind(this));
  482. }
  483. },
  484. selectIcon: function(node){
  485. if (!node.iconMenu){
  486. var iconSelectMenu = new MWF.widget.Menu(node, {"event": "click", "style": "processIcon"});
  487. iconSelectMenu.load();
  488. node.iconMenu = iconSelectMenu;
  489. var _self = this;
  490. for (var i=0; i<=48; i++){
  491. var icon = "/x_component_process_ProcessManager/$Explorer/default/processIcon/process_icon_"+i+".png";
  492. var item = iconSelectMenu.addMenuItem("", "click", function(){
  493. var id = node.get("name");
  494. var src = this.item.getElement("img").get("src");
  495. _self.data[id] = src;
  496. node.getFirst("div").setStyle("background-image", "url("+src+")");
  497. }, icon);
  498. item.iconName = icon;
  499. }
  500. }
  501. },
  502. loadLabelFlagSelect: function(){
  503. var nodes = this.propertyContent.getElements(".MWFLabelFlag");
  504. if (nodes.length){
  505. nodes.each(function(node){
  506. var id = node.get("name");
  507. var icon = this.data[id];
  508. var iconNode = new Element("div", {"styles": this.form.css.labelFlagNode}).inject(node);
  509. if (icon) iconNode.setStyles({"background": "url("+icon+") center center no-repeat"});
  510. var selectNode = new Element("div", {"styles": this.form.css.processIconSelectNode, "text": this.form.designer.lp.empty}).inject(node);
  511. selectNode.addEvent("click", function(e){
  512. var id = node.get("name");
  513. this.data[id] = "";
  514. node.getFirst("div").setStyle("background-image", "");
  515. this.changeData(id);
  516. e.stopPropagation();
  517. }.bind(this));
  518. var selectNode = new Element("div", {"styles": this.form.css.processIconSelectNode, "text": this.form.designer.lp.select}).inject(node);
  519. selectNode.addEvent("click", function(){
  520. this.selectLabelFlag(node);
  521. }.bind(this));
  522. }.bind(this));
  523. }
  524. },
  525. selectLabelFlag: function(node){
  526. if (!node.iconMenu){
  527. var iconSelectMenu = new MWF.widget.Menu(node, {"event": "click", "style": "labelFlag"});
  528. iconSelectMenu.load();
  529. node.iconMenu = iconSelectMenu;
  530. var _self = this;
  531. for (var i=1; i<=21; i++){
  532. var icon = "/x_component_process_FormDesigner/Module/Label/default/icon/flag/"+i+".png";
  533. var item = iconSelectMenu.addMenuItem("", "click", function(){
  534. var id = node.get("name");
  535. var src = this.item.getElement("img").get("src");
  536. _self.data[id] = src;
  537. node.getFirst("div").setStyle("background-image", "url("+src+")");
  538. _self.changeData(id);
  539. }, icon);
  540. item.iconName = icon;
  541. }
  542. }
  543. },
  544. loadImageFileSelect: function(){
  545. // var nodes = this.propertyContent.getElements(".MWFImageFileSelect");
  546. // if (nodes.length){
  547. //
  548. //
  549. //
  550. //
  551. // this.getFileList(function(){
  552. // nodes.each(function(node){
  553. // var select = new Element("select").inject(node);
  554. // select.addEvent("change", function(e){
  555. // this.setValue(e.target.getParent("div").get("name"), e.target.options[e.target.selectedIndex].value, select);
  556. //
  557. // }.bind(this));
  558. // this.setFileSelectOptions(node, select);
  559. //
  560. // var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  561. // refreshNode.addEvent("click", function(e){
  562. // this.getFileList(function(){
  563. // this.setFileSelectOptions(node, select);
  564. // }.bind(this), true);
  565. // }.bind(this));
  566. // }.bind(this));
  567. // }.bind(this));
  568. // }
  569. },
  570. setFileSelectOptions: function(node, select){
  571. var name = node.get("name");
  572. select.empty();
  573. var option = new Element("option", {"text": "none"}).inject(select);
  574. this.files.each(function(file){
  575. var option = new Element("option", {
  576. "text": file.name,
  577. "value": file.id,
  578. "selected": (this.data[name]==file.id)
  579. }).inject(select);
  580. }.bind(this));
  581. },
  582. getFileList: function(callback, refresh){
  583. if (!this.files || refresh){
  584. this.form.designer.actions.listFile(this.form.designer.application.id, function(json){
  585. this.files = json.data;
  586. if (callback) callback();
  587. }.bind(this));
  588. }else{
  589. if (callback) callback();
  590. }
  591. },
  592. loadImageClipper: function(){
  593. var nodes = this.propertyContent.getElements(".MWFImageClipper");
  594. if (nodes.length){
  595. nodes.each(function(node){
  596. var id = node.get("name");
  597. var selectNode = new Element("div", {"styles": this.form.css.processIconSelectNode, "text": this.form.designer.lp.selectImage}).inject(node);
  598. selectNode.addEvent("click", function(){
  599. this.selectImage(node, id);
  600. }.bind(this));
  601. }.bind(this));
  602. }
  603. },
  604. createUploadFileAreaNode: function(node, name){
  605. this.uploadFileAreaNode = new Element("div");
  606. var html = "<input name=\"file\" multiple type=\"file\" accept=\"images/*\" />";
  607. this.uploadFileAreaNode.set("html", html);
  608. this.fileUploadNode = this.uploadFileAreaNode.getFirst();
  609. this.fileUploadNode.addEvent("change", function(){
  610. //var fileId = attachment.data.id;
  611. var files = this.fileUploadNode.files;
  612. if (files.length){
  613. var count = files.length;
  614. for (var i = 0; i < files.length; i++) {
  615. var file = files.item(i);
  616. var formData = new FormData();
  617. formData.append('file', file);
  618. MWF.xDesktop.uploadImage(
  619. this.form.json.id,
  620. (this.module.form.moduleType=="page") ? "portalPage" : "processPlatformForm",
  621. formData,
  622. file,
  623. function(json){
  624. var id = json.id;
  625. var src = MWF.xDesktop.getImageSrc(id);
  626. var data = {"imageSrc": src, "imageId": id};
  627. this.changeJsonDate(name, data);
  628. this.changeData(name, node, null);
  629. }.bind(this)
  630. );
  631. }
  632. }
  633. }.bind(this));
  634. },
  635. selectImage: function(node, name){
  636. if (!this.uploadFileAreaNode){
  637. this.createUploadFileAreaNode(node, name);
  638. }
  639. //this.fileUploadNode.set("accept", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
  640. this.fileUploadNode.set("multiple", false);
  641. var fileNode = this.uploadFileAreaNode.getFirst();
  642. fileNode.set("accept", ".png,.jpg,.bmp,.gif,.jpeg,.jpe");
  643. fileNode.click();
  644. //MWF.xDesktop.requireApp("process.FormDesigner", "widget.ImageClipper", function(){
  645. // var size = this.module.node.getSize();
  646. // var image = new MWF.xApplication.process.FormDesigner.widget.ImageClipper(this.designer, {
  647. // "title": this.form.designer.lp.selectImage,
  648. // "width": (this.data.styles.width) ? size.x : 0,
  649. // "height": (this.data.styles.height) ? size.y : 0,
  650. // "imageUrl" : this.data.imageSrc,
  651. // "reference" : this.form.json.id,
  652. // "referenceType": (this.module.form.moduleType=="page") ? "portalPage" : "processPlatformForm",
  653. // "onChange": function(){
  654. // var data = {"imageSrc": image.imageSrc, "imageId": image.imageId};
  655. // this.changeJsonDate(name, data);
  656. // this.changeData(name, node, null);
  657. // }.bind(this)
  658. // });
  659. // image.load(this.data[name])
  660. //}.bind(this));
  661. },
  662. loadEventsEditor: function(){
  663. var events = this.propertyContent.getElement(".MWFEventsArea");
  664. if (events){
  665. var name = events.get("name");
  666. var eventsObj = this.data[name];
  667. MWF.xDesktop.requireApp("process.FormDesigner", "widget.EventsEditor", function(){
  668. var eventsEditor = new MWF.xApplication.process.FormDesigner.widget.EventsEditor(events, this.designer, {
  669. //"maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  670. "maxObj": this.designer.formContentNode || this.designer.pageContentNode
  671. });
  672. eventsEditor.load(eventsObj, this.data, name);
  673. }.bind(this));
  674. }
  675. },
  676. testRestful: function(){
  677. var node = this.propertyContent.getElements(".MWFTestRestful");
  678. if (node){
  679. var resultNode = node.getLast();
  680. node.getFirst().addEvent("click", function(){
  681. }.bind(this));
  682. }
  683. },
  684. loadContextRoot: function(){
  685. var nodes = this.propertyContent.getElements(".MWFContextRoot");
  686. if (nodes){
  687. nodes.each(function(node){
  688. var name = node.get("name");
  689. var value = this.data[name];
  690. var select = new Element("select").inject(node);
  691. Object.each(layout.desktop.serviceAddressList, function(v, key){
  692. var option = new Element("option", {"value": key, "text": v.name, "selected": (value==key)}).inject(select);
  693. }.bind(this));
  694. select.addEvent("change", function(){
  695. var data = select.options[select.selectedIndex].value;
  696. this.changeJsonDate(name, data);
  697. this.changeData(name, node, value);
  698. }.bind(this));
  699. }.bind(this));
  700. }
  701. },
  702. loadSourceTestRestful: function(){
  703. var nodes = this.propertyContent.getElements(".MWFSourceTestRestful");
  704. if (nodes.length){
  705. nodes.each(function(node){
  706. var button = node.getFirst();
  707. var content = node.getLast();
  708. //var button = new Element("input", {"type": "button", "value": "Test"}).inject(node);
  709. button.addEvent("click", function(e){
  710. this.testSourceRestful(content);
  711. }.bind(this));
  712. }.bind(this));
  713. }
  714. },
  715. testSourceRestful: function(content){
  716. var address = this._getO2Address(this.module.json.contextRoot);
  717. var uri = this._getO2Uri(this.module, address);
  718. this._invoke(this.module, uri, function(json){
  719. content.empty();
  720. MWF.require("MWF.widget.JsonParse", function(){
  721. var jsonParse = new MWF.widget.JsonParse(json, content, null);
  722. jsonParse.load();
  723. }.bind(this));
  724. }.bind(this));
  725. },
  726. _getO2Address: function(contextRoot){
  727. var addressObj = layout.desktop.serviceAddressList[contextRoot];
  728. var address = "";
  729. if (addressObj){
  730. address = layout.config.app_protocol+"//"+addressObj.host+(addressObj.port==80 ? "" : ":"+addressObj.port)+addressObj.context;
  731. }else{
  732. var host = layout.desktop.centerServer.host || window.location.hostname;
  733. var port = layout.desktop.centerServer.port;
  734. address = layout.config.app_protocol+"//"+host+(port=="80" ? "" : ":"+port)+"/x_program_center";
  735. }
  736. return address;
  737. },
  738. _getO2Uri: function(module, address){
  739. var uri = module.json.path;
  740. var pars = {};
  741. MWF.require("MWF.xScript.Macro", null, false);
  742. var macro = new MWF.Macro["PageContext"]({"businessData": {}, "json": {}, "options": {}});
  743. if (module.json.parameters){
  744. Object.each(module.json.parameters, function(v, key){
  745. if (uri.indexOf("{"+key+"}")!==-1){
  746. var reg = new RegExp("{"+key+"}", "g");
  747. uri = uri.replace(reg, encodeURIComponent((v && v.code) ? (macro.exec(v.code, this) || "") : v));
  748. }else{
  749. pars[key] = v;
  750. }
  751. }.bind(this));
  752. }
  753. var data = null;
  754. if (module.json.requestBody){
  755. if (module.json.requestBody.code){
  756. data = macro.exec(module.json.requestBody.code, this)
  757. }
  758. }
  759. if (module.json.httpMethod==="GET" || module.json.httpMethod==="OPTIONS" || module.json.httpMethod==="HEAD" || module.json.httpMethod==="DELETE"){
  760. var tag = "?";
  761. if (uri.indexOf("?")!==-1) tag = "&";
  762. Object.each(pars, function(v, k){
  763. var value = (v && v.code) ? (macro.exec(v.code, this) || "") : v;
  764. uri = uri+tag+k+"="+value;
  765. }.bind(this));
  766. }else{
  767. Object.each(pars, function(v, k){
  768. if (!data) data = {};
  769. var value = (v && v.code) ? (macro.exec(v.code, this) || "") : v;
  770. data[k] = value;
  771. }.bind(this));
  772. }
  773. this.body = data;
  774. return {"uri": address+uri, "body": data};
  775. },
  776. _invoke: function(module, uri, callback){
  777. MWF.restful(module.json.httpMethod, uri.uri, JSON.encode(uri.body), function(json){
  778. //this.data = json;
  779. if (callback) callback(json);
  780. }.bind(this), true, true);
  781. },
  782. loadUnitTypeSelector: function(){
  783. var nodes = this.propertyContent.getElements(".MWFFormUnitTypeSelector");
  784. if (nodes.length){
  785. this.getUnitTypeList(function(){
  786. nodes.each(function(node){
  787. var select = new Element("select").inject(node);
  788. select.addEvent("change", function(e){
  789. this.setValue(e.target.getParent("div").get("name"), e.target.options[e.target.selectedIndex].value);
  790. }.bind(this));
  791. this.setUnitTypeSelectOptions(node, select);
  792. this.setValue(select.getParent("div").get("name"), select.options[select.selectedIndex].value);
  793. // var refreshNode = new Element("div", {"styles": this.form.css.propertyRefreshFormNode}).inject(node);
  794. // refreshNode.addEvent("click", function(e){
  795. // this.getUnitTypeList(function(){
  796. // this.setUnitTypeSelectOptions(node, select);
  797. // }.bind(this), true);
  798. // }.bind(this));
  799. }.bind(this));
  800. }.bind(this));
  801. }
  802. },
  803. setUnitTypeSelectOptions: function(node, select){
  804. var name = node.get("name");
  805. select.empty();
  806. var option = new Element("option", {"value":"all", "text": this.form.designer.lp.all, "selected": (!this.data[name] || this.data[name]==="all")}).inject(select);
  807. this.unitTypeList.each(function(unitType){
  808. var option = new Element("option", {
  809. "text": unitType,
  810. "value": unitType,
  811. "selected": (this.data[name]===unitType)
  812. }).inject(select);
  813. }.bind(this));
  814. },
  815. getUnitTypeList: function(callback, refresh){
  816. if (!this.unitTypeList || refresh){
  817. //MWF.xDesktop.requireApp("Org", "Actions.RestActions", function(){
  818. // var action = new MWF.xApplication.Org.Actions.RestActions();
  819. var action = MWF.Actions.get("x_organization_assemble_control");
  820. action.listUnitType(function(json){
  821. this.unitTypeList = json.data.valueList;
  822. if (callback) callback();
  823. }.bind(this));
  824. //}.bind(this));
  825. }else{
  826. if (callback) callback();
  827. }
  828. },
  829. loadParameterEditor: function(){
  830. var pars = this.propertyContent.getElements(".MWFParameterArea");
  831. if (pars){
  832. pars.each(function(par){
  833. var name = par.get("name");
  834. if (!this.data[name]) this.data[name] = {};
  835. var parObj = this.data[name];
  836. MWF.xDesktop.requireApp("process.FormDesigner", "widget.ParameterEditor", function(){
  837. var parameterEditor = new MWF.xApplication.process.FormDesigner.widget.ParameterEditor(par, this.designer, {
  838. //"maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  839. "maxObj": this.designer.formContentNode
  840. });
  841. parameterEditor.load(parObj, this.data, name);
  842. }.bind(this));
  843. }.bind(this));
  844. }
  845. },
  846. loadArrayList: function(){
  847. var arrays = this.propertyContent.getElements(".MWFArraylist");
  848. arrays.each(function(node){
  849. var title = node.get("title");
  850. var name = node.get("name");
  851. var arr = this.data[name];
  852. if (!arr) arr = [];
  853. MWF.require("MWF.widget.Arraylist", function(){
  854. var arraylist = new MWF.widget.Arraylist(node, {
  855. "title": title,
  856. "onChange": function(){
  857. this.data[name] = arraylist.toArray();
  858. }.bind(this)
  859. });
  860. arraylist.load(arr);
  861. }.bind(this));
  862. node.addEvent("keydown", function(e){e.stopPropagation();});
  863. }.bind(this));
  864. },
  865. loadHtmlEditorArea: function(){
  866. var htmlAreas = this.propertyContent.getElements(".MWFHtmlEditorArea");
  867. htmlAreas.each(function(node){
  868. var title = node.get("title");
  869. var name = node.get("name");
  870. var scriptContent = this.data[name];
  871. MWF.require("MWF.widget.HtmlEditorArea", function(){
  872. var htmlArea = new MWF.widget.HtmlEditorArea(node, {
  873. "title": title,
  874. //"maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  875. "maxObj": this.designer.formContentNode,
  876. "onChange": function(){
  877. this.data[name] = htmlArea.getValue();
  878. this.changeData(name);
  879. htmlArea.isChanged = true;
  880. }.bind(this),
  881. // "onBlur": function(){
  882. // if (htmlArea.isChanged){
  883. // this.changeData(name, node, "");
  884. // htmlArea.isChanged = false;
  885. // }
  886. // }.bind(this),
  887. "onSave": function(){
  888. this.designer.saveForm();
  889. }.bind(this)
  890. });
  891. htmlArea.load({"code": scriptContent});
  892. }.bind(this));
  893. }.bind(this));
  894. },
  895. loadStylesList: function(){
  896. var styleSelNodes = this.propertyContent.getElements(".MWFFormStyle");
  897. styleSelNodes.each(function(node){
  898. if (this.module.form.stylesList){
  899. if (!this.data.formStyleType) this.data.formStyleType = "default";
  900. var mode = this.form.options.mode === "mobile" ? "mobile" : "pc";
  901. Object.each(this.module.form.stylesList, function(s, key){
  902. if( s.mode.contains( mode ) ){
  903. new Element("option", {
  904. "text": s.name,
  905. "value": key,
  906. "selected": ((!this.data.formStyleType && key=="default") || (this.data.formStyleType==key))
  907. }).inject(node)
  908. }
  909. }.bind(this));
  910. }else{
  911. node.getParent("tr").setStyle("display", "none");
  912. }
  913. }.bind(this));
  914. },
  915. loadDivTemplateType: function(){
  916. var nodes = this.propertyContent.getElements(".MWFDivTemplate");
  917. if (nodes.length){
  918. var keys = [];
  919. //if (this.module.form.stylesList) {
  920. // if (this.module.form.stylesList[this.module.form.json.formStyleType]){
  921. // var styles = this.module.form.stylesList[this.module.form.json.formStyleType][this.module.moduleName];
  922. // if (styles) {
  923. // Object.each(styles, function (v, k) {
  924. // keys.push(k);
  925. // }.bind(this));
  926. // }
  927. // }
  928. //}
  929. if (this.module.form.templateStyles && this.module.form.templateStyles[this.module.moduleName]) {
  930. var styles = this.module.form.templateStyles[this.module.moduleName];
  931. if (styles) {
  932. Object.each(styles, function (v, k) {
  933. keys.push(k);
  934. }.bind(this));
  935. }
  936. }
  937. nodes.each(function(node){
  938. node.empty();
  939. new Element("option", {
  940. "text": "default",
  941. "value": "default",
  942. "selected": (!this.data.templateType || this.data.templateType=="default")
  943. }).inject(node);
  944. if (keys.length){
  945. keys.each(function(k){
  946. new Element("option", {
  947. "text": styles[k].name,
  948. "value": k,
  949. "selected": (this.data.templateType==k)
  950. }).inject(node)
  951. }.bind(this));
  952. }else{
  953. node.getParent("tr").setStyle("display", "none");
  954. }
  955. }.bind(this));
  956. }
  957. },
  958. loadPersonInput: function(){
  959. var personIdentityNodes = this.propertyContent.getElements(".MWFPersonIdentity");
  960. var personUnitNodes = this.propertyContent.getElements(".MWFPersonUnit");
  961. var dutyNodes = this.propertyContent.getElements(".MWFDutySelector");
  962. var dutyNameNodes = this.propertyContent.getElements(".MWFPersonDuty");
  963. var viewNodes = this.propertyContent.getElements(".MWFViewSelect");
  964. var cmsviewNodes = this.propertyContent.getElements(".MWFCMSViewSelect");
  965. var queryviewNodes = this.propertyContent.getElements(".MWFQueryViewSelect");
  966. var querystatNodes = this.propertyContent.getElements(".MWFQueryStatSelect");
  967. var fileNodes = this.propertyContent.getElements(".MWFImageFileSelect");
  968. var processFileNodes = this.propertyContent.getElements(".MWFProcessImageFileSelect");
  969. MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.PersonSelector", function(){
  970. personIdentityNodes.each(function(node){
  971. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  972. "type": "identity",
  973. "names": this.data[node.get("name")],
  974. "onChange": function(ids){this.savePersonItem(node, ids);}.bind(this)
  975. });
  976. }.bind(this));
  977. personUnitNodes.each(function(node){
  978. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  979. "type": "unit",
  980. "names": this.data[node.get("name")],
  981. "onChange": function(ids){this.savePersonItem(node, ids);}.bind(this)
  982. });
  983. }.bind(this));
  984. dutyNodes.each(function(node){
  985. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  986. "type": "duty",
  987. "names": this.data[node.get("name")],
  988. "onChange": function(ids){this.addDutyItem(node, ids);}.bind(this),
  989. "onRemoveDuty": function(item){this.removeDutyItem(node, item);}.bind(this)
  990. });
  991. }.bind(this));
  992. dutyNameNodes.each(function(node){
  993. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  994. "type": "dutyName",
  995. "names": this.data[node.get("name")],
  996. "onChange": function(ids){this.savePersonItem(node, ids);}.bind(this)
  997. });
  998. }.bind(this));
  999. viewNodes.each(function(node){
  1000. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1001. "type": "View",
  1002. "count": 1,
  1003. "names": [this.data[node.get("name")]],
  1004. "onChange": function(ids){this.saveViewItem(node, ids);}.bind(this)
  1005. });
  1006. }.bind(this));
  1007. cmsviewNodes.each(function(node){
  1008. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1009. "type": "CMSView",
  1010. "count": 1,
  1011. "names": [this.data[node.get("name")]],
  1012. "onChange": function(ids){this.saveViewItem(node, ids);}.bind(this)
  1013. });
  1014. }.bind(this));
  1015. queryviewNodes.each(function(node){
  1016. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1017. "type": "QueryView",
  1018. "count": 1,
  1019. "names": [this.data[node.get("name")]],
  1020. "onChange": function(ids){this.saveViewItem(node, ids);}.bind(this)
  1021. });
  1022. }.bind(this));
  1023. querystatNodes.each(function(node){
  1024. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1025. "type": "QueryStat",
  1026. "count": 1,
  1027. "names": [this.data[node.get("name")]],
  1028. "onChange": function(ids){this.saveViewItem(node, ids);}.bind(this)
  1029. });
  1030. }.bind(this));
  1031. fileNodes.each(function(node){
  1032. var d = this.data[node.get("name")];
  1033. var data = d || {};
  1034. //this.form
  1035. if (d && typeOf(d)==="string"){
  1036. if (this.form.page){
  1037. data = {"id": d, "portal": this.form.application}
  1038. }else{
  1039. data = {"id": d, "application": this.form.application}
  1040. }
  1041. }
  1042. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1043. "type": "PortalFile",
  1044. "count": 1,
  1045. "isImage": true,
  1046. "values": (data.id) ? [data.id] : [],
  1047. "onChange": function(ids){this.saveFileItem(node, ids);}.bind(this)
  1048. });
  1049. }.bind(this));
  1050. processFileNodes.each(function(node){
  1051. var d = this.data[node.get("name")];
  1052. var data = d || {};
  1053. //this.form
  1054. if (d && typeOf(d)==="string"){
  1055. if (this.form.page){
  1056. data = {"id": d, "portal": this.form.application}
  1057. }else{
  1058. data = {"id": d, "application": this.form.application}
  1059. }
  1060. }
  1061. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1062. "type": "ProcessFile",
  1063. "count": 1,
  1064. "isImage": true,
  1065. "values": (data.id) ? [data.id] : [],
  1066. "onChange": function(ids){this.saveFileItem(node, ids);}.bind(this)
  1067. });
  1068. }.bind(this));
  1069. }.bind(this));
  1070. },
  1071. saveFileItem: function(node, ids){
  1072. if (ids[0]){
  1073. var file = ids[0].data;
  1074. this.data[node.get("name")] = file;
  1075. }else{
  1076. this.data[node.get("name")] = null;
  1077. }
  1078. this.changeData(node.get("name"));
  1079. },
  1080. saveViewItem: function(node, ids){
  1081. if (ids[0]){
  1082. var view = ids[0].data;
  1083. var data = {
  1084. "name": view.name,
  1085. "alias": view.alias,
  1086. "id": view.id,
  1087. "appName" : view.appName || view.applicationName || view.query,
  1088. "appId": view.appId,
  1089. "application": view.application || view.query
  1090. };
  1091. this.data[node.get("name")] = data;
  1092. }else{
  1093. this.data[node.get("name")] = null;
  1094. }
  1095. if (this.module._checkView) this.module._checkView();
  1096. },
  1097. removeViewItem: function(node, item){
  1098. },
  1099. removeDutyItem: function(node, item){
  1100. if (item.data.id){
  1101. var values = JSON.decode(this.data[node.get("name")] || []);
  1102. var value = values.filter(function(v){
  1103. return v.id == item.data.id;
  1104. });
  1105. value.each(function(v) {
  1106. values = values.erase(v);
  1107. });
  1108. this.data[node.get("name")] = JSON.encode(values);
  1109. }
  1110. item.node.destroy();
  1111. MWF.release(item);
  1112. delete item;
  1113. },
  1114. addDutyItem: function(node, ids){
  1115. var value = this.data[node.get("name")] || "";
  1116. if (!value) value = "[]";
  1117. var values = JSON.decode(value);
  1118. ids.each(function(id){
  1119. if (id.data.dutyId){
  1120. for (var i=0; i<values.length; i++){
  1121. if (values[i].dutyId===id.data.dutyId){
  1122. values[i].name = id.data.name;
  1123. values[i].code = id.data.code;
  1124. break;
  1125. }
  1126. }
  1127. }else{
  1128. id.data.dutyId = new MWF.widget.UUID().toString();
  1129. values.push({"name": id.data.name, "id": id.data.id, "dutyId": id.data.dutyId, "code": id.data.code});
  1130. }
  1131. }.bind(this));
  1132. this.data[node.get("name")] = JSON.encode(values);
  1133. },
  1134. loadFormFieldInput: function(){
  1135. var fieldNodes = this.propertyContent.getElements(".MWFFormFieldPerson");
  1136. MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.PersonSelector", function(){
  1137. fieldNodes.each(function(node){
  1138. new MWF.xApplication.process.ProcessDesigner.widget.PersonSelector(node, this.form.designer, {
  1139. "type": "formField",
  1140. "application": this.form.json.application,
  1141. "fieldType": "person",
  1142. "names": this.data[node.get("name")],
  1143. "onChange": function(ids){this.savePersonItem(node, ids);}.bind(this)
  1144. });
  1145. }.bind(this));
  1146. }.bind(this));
  1147. },
  1148. savePersonItem: function(node, ids){
  1149. var values = [];
  1150. ids.each(function(id){
  1151. values.push(MWF.org.parseOrgData(id.data));
  1152. }.bind(this));
  1153. this.data[node.get("name")] = values;
  1154. },
  1155. loadScriptArea: function(){
  1156. var scriptAreas = this.propertyContent.getElements(".MWFScriptArea");
  1157. var formulaAreas = this.propertyContent.getElements(".MWFFormulaArea");
  1158. this.loadScriptEditor(scriptAreas);
  1159. this.loadScriptEditor(formulaAreas, "formula");
  1160. },
  1161. loadScriptEditor: function(scriptAreas, style){
  1162. scriptAreas.each(function(node){
  1163. var title = node.get("title");
  1164. var name = node.get("name");
  1165. if (!this.data[name]) this.data[name] = {"code": "", "html": ""};
  1166. var scriptContent = this.data[name];
  1167. MWF.require("MWF.widget.ScriptArea", function(){
  1168. var scriptArea = new MWF.widget.ScriptArea(node, {
  1169. "title": title,
  1170. //"maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  1171. "maxObj": this.designer.formContentNode || this.designer.pageContentNode,
  1172. "onChange": function(){
  1173. //this.data[name] = scriptArea.toJson();
  1174. if (!this.data[name]){
  1175. this.data[name] = {"code": "", "html": ""};
  1176. if (this.module.form.scriptDesigner) this.module.form.scriptDesigner.addScriptItem(this.data[name], "code", this.data, name);
  1177. }
  1178. var json = scriptArea.toJson();
  1179. this.data[name].code = json.code;
  1180. //this.data[name].html = json.html;
  1181. }.bind(this),
  1182. "onSave": function(){
  1183. this.designer.saveForm();
  1184. }.bind(this),
  1185. "style": style || "default"
  1186. });
  1187. scriptArea.load(scriptContent);
  1188. }.bind(this));
  1189. }.bind(this));
  1190. },
  1191. loadCssArea: function(style){
  1192. var cssAreas = this.propertyContent.getElements(".MWFCssArea");
  1193. cssAreas.each(function(node){
  1194. var title = node.get("title");
  1195. var name = node.get("name");
  1196. if (!this.data[name]) this.data[name] = {"code": "", "html": ""};
  1197. var cssContent = this.data[name];
  1198. o2.require("o2.widget.CssArea", function(){
  1199. var cssArea = new o2.widget.CssArea(node, {
  1200. "title": title,
  1201. "maxObj": this.designer.formContentNode || this.designer.pageContentNode,
  1202. "onChange": function(){
  1203. //this.data[name] = scriptArea.toJson();
  1204. if (!this.data[name]){
  1205. this.data[name] = {"code": "", "html": ""};
  1206. if (this.module.form.scriptDesigner) this.module.form.scriptDesigner.addScriptItem(this.data[name], "code", this.data, name);
  1207. }
  1208. var json = cssArea.toJson();
  1209. this.data[name].code = json.code;
  1210. cssArea.isChanged = true;
  1211. //this.data[name].html = json.html;
  1212. }.bind(this),
  1213. "onBlur": function(){
  1214. if (cssArea.isChanged){
  1215. this.changeData(name, node, "");
  1216. cssArea.isChanged = false;
  1217. }
  1218. }.bind(this),
  1219. "onSave": function(){
  1220. this.designer.saveForm();
  1221. }.bind(this),
  1222. "style": style || "default"
  1223. });
  1224. cssArea.load(cssContent);
  1225. }.bind(this));
  1226. }.bind(this));
  1227. },
  1228. loadActionStylesArea: function(){
  1229. var _self = this;
  1230. var actionAreas = this.propertyContent.getElements(".MWFActionStylesArea");
  1231. actionAreas.each(function(node){
  1232. var name = node.get("name");
  1233. var actionStyles = this.data[name];
  1234. MWF.require("MWF.widget.Maplist", function(){
  1235. var maps = [];
  1236. Object.each(actionStyles, function(v, k){
  1237. var mapNode = new Element("div").inject(node);
  1238. mapNode.empty();
  1239. var maplist = new MWF.widget.Maplist(mapNode, {
  1240. "title": k,
  1241. "collapse": true,
  1242. "onChange": function(){
  1243. var oldData = _self.data[name];
  1244. maps.each(function(o){
  1245. _self.data[name][o.key] = o.map.toJson();
  1246. }.bind(this));
  1247. _self.changeData(name, node, oldData);
  1248. }
  1249. });
  1250. maps.push({"key": k, "map": maplist});
  1251. maplist.load(v);
  1252. }.bind(this));
  1253. }.bind(this));
  1254. }.bind(this));
  1255. },
  1256. loadActionArea: function(){
  1257. var actionAreas = this.propertyContent.getElements(".MWFActionArea");
  1258. actionAreas.each(function(node){
  1259. var name = node.get("name");
  1260. var actionContent = this.data[name];
  1261. MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", function(){
  1262. // debugger;
  1263. // var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, {
  1264. // "maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  1265. // "noCreate": true,
  1266. // "noDelete": true,
  1267. // "noCode": true,
  1268. // "onChange": function(){
  1269. // this.data[name] = actionEditor.data;
  1270. // }.bind(this)
  1271. // });
  1272. // actionEditor.load(this.module.defaultToolBarsData);
  1273. var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, {
  1274. "maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  1275. "onChange": function(){
  1276. this.data[name] = actionEditor.data;
  1277. this.changeData(name);
  1278. }.bind(this)
  1279. });
  1280. actionEditor.load(actionContent);
  1281. }.bind(this));
  1282. }.bind(this));
  1283. var actionAreas = this.propertyContent.getElements(".MWFDefaultActionArea");
  1284. actionAreas.each(function(node){
  1285. var name = node.get("name");
  1286. var actionContent = this.data[name] || this.module.defaultToolBarsData;
  1287. MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", function(){
  1288. var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, this.data, {
  1289. "maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  1290. "isSystemTool" : true,
  1291. "noCreate": true,
  1292. "noDelete": false,
  1293. "noCode": true,
  1294. "noReadShow": true,
  1295. "noEditShow": true,
  1296. "onChange": function(){
  1297. this.data[name] = actionEditor.data;
  1298. this.changeData(name);
  1299. }.bind(this)
  1300. });
  1301. actionEditor.load(actionContent);
  1302. // var actionEditor = new MWF.xApplication.process.FormDesigner.widget.ActionsEditor(node, this.designer, {
  1303. // "maxObj": this.propertyNode.parentElement.parentElement.parentElement,
  1304. // "onChange": function(){
  1305. // this.data[name] = actionEditor.data;
  1306. // }.bind(this)
  1307. // });
  1308. // actionEditor.load(actionContent);
  1309. }.bind(this));
  1310. }.bind(this));
  1311. },
  1312. loadMaplist: function(){
  1313. var maplists = this.propertyContent.getElements(".MWFMaplist");
  1314. maplists.each(function(node){
  1315. var title = node.get("title");
  1316. var name = node.get("name");
  1317. var collapse = node.get("collapse");
  1318. var mapObj = this.data[name];
  1319. if (!mapObj) mapObj = {};
  1320. MWF.require("MWF.widget.Maplist", function(){
  1321. node.empty();
  1322. var maplist = new MWF.widget.Maplist(node, {
  1323. "title": title,
  1324. "collapse": (collapse) ? true : false,
  1325. "onChange": function(){
  1326. //this.data[name] = maplist.toJson();
  1327. //
  1328. var oldData = this.data[name];
  1329. this.changeJsonDate(name, maplist.toJson());
  1330. this.changeStyle(name, oldData);
  1331. this.changeData(name);
  1332. }.bind(this),
  1333. "onDelete": function(key){
  1334. debugger;
  1335. this.module.deletePropertiesOrStyles(name, key);
  1336. }.bind(this)
  1337. });
  1338. maplist.load(mapObj);
  1339. this.maplists[name] = maplist;
  1340. }.bind(this));
  1341. }.bind(this));
  1342. },
  1343. loadPropertyTab: function(){
  1344. var tabNodes = this.propertyContent.getElements(".MWFTab");
  1345. if (tabNodes.length){
  1346. var tmpNode = this.propertyContent.getFirst();
  1347. var tabAreaNode = new Element("div", {
  1348. "styles": this.form.css.propertyTabNode
  1349. }).inject(tmpNode, "before");
  1350. MWF.require("MWF.widget.Tab", function(){
  1351. var tab = new MWF.widget.Tab(tabAreaNode, {"style": "formPropertyList"});
  1352. tab.load();
  1353. var tabPages = [];
  1354. tabNodes.each(function(node){
  1355. if (node.getStyle("display")!="none"){
  1356. var page = tab.addTab(node, node.get("title"), false);
  1357. tabPages.push(page);
  1358. page.contentScrollNode = new Element("div", {"styles": {"height": "100%", "overflow": "hidden"}}).inject(page.contentNodeArea);
  1359. node.inject(page.contentScrollNode);
  1360. this.setScrollBar(page.contentScrollNode, "small", null, null);
  1361. }
  1362. }.bind(this));
  1363. tabPages[0].showTab();
  1364. this.propertyTab = tab;
  1365. this.designer.resizeNode();
  1366. }.bind(this), false);
  1367. }
  1368. },
  1369. setEditNodeEvent: function(){
  1370. var property = this;
  1371. // var inputs = this.process.propertyListNode.getElements(".editTableInput");
  1372. var inputs = this.propertyContent.getElements("input");
  1373. inputs.each(function(input){
  1374. var jsondata = input.get("name");
  1375. if (this.module){
  1376. var id = this.data.pid;
  1377. //var id = this.form.json.id;
  1378. input.set("name", this.form.options.mode+id+jsondata);
  1379. }
  1380. if (jsondata){
  1381. var inputType = input.get("type").toLowerCase();
  1382. switch (inputType){
  1383. case "radio":
  1384. input.addEvent("change", function(e){
  1385. property.setRadioValue(jsondata, this);
  1386. });
  1387. input.addEvent("blur", function(e){
  1388. property.setRadioValue(jsondata, this);
  1389. });
  1390. input.addEvent("keydown", function(e){
  1391. e.stopPropagation();
  1392. });
  1393. property.setRadioValue(jsondata, input);
  1394. break;
  1395. case "checkbox":
  1396. input.addEvent("change", function(e){
  1397. property.setCheckboxValue(jsondata, this);
  1398. });
  1399. input.addEvent("click", function(e){
  1400. property.setCheckboxValue(jsondata, this);
  1401. });
  1402. input.addEvent("keydown", function(e){
  1403. e.stopPropagation();
  1404. });
  1405. break;
  1406. default:
  1407. input.addEvent("change", function(e){
  1408. property.setValue(jsondata, this.value, this);
  1409. });
  1410. input.addEvent("blur", function(e){
  1411. property.setValue(jsondata, this.value, this);
  1412. });
  1413. input.addEvent("keydown", function(e){
  1414. if (e.code==13){
  1415. property.setValue(jsondata, this.value, this);
  1416. }
  1417. e.stopPropagation();
  1418. });
  1419. }
  1420. }
  1421. }.bind(this));
  1422. var selects = this.propertyContent.getElements("select");
  1423. selects.each(function(select){
  1424. var jsondata = select.get("name");
  1425. if (jsondata){
  1426. select.addEvent("change", function(e){
  1427. property.setSelectValue(jsondata, this);
  1428. });
  1429. //property.setSelectValue(jsondata, select);
  1430. }
  1431. });
  1432. var textareas = this.propertyContent.getElements("textarea");
  1433. textareas.each(function(input){
  1434. var jsondata = input.get("name");
  1435. if (jsondata){
  1436. input.addEvent("change", function(e){
  1437. property.setValue(jsondata, this.value);
  1438. });
  1439. input.addEvent("blur", function(e){
  1440. property.setValue(jsondata, this.value);
  1441. });
  1442. input.addEvent("keydown", function(e){
  1443. e.stopPropagation();
  1444. });
  1445. }
  1446. }.bind(this));
  1447. },
  1448. changeStyle: function(name, oldData){
  1449. this.module.setPropertiesOrStyles(name, oldData);
  1450. },
  1451. changeData: function(name, input, oldValue){
  1452. this.module._setEditStyle(name, input, oldValue);
  1453. },
  1454. changeJsonDate: function(key, value){
  1455. if (typeOf(key)!=="array") key = [key];
  1456. var o = this.data;
  1457. var len = key.length-1;
  1458. key.each(function(n, i){
  1459. if (!o[n]) o[n] = {};
  1460. if (i<len) o = o[n];
  1461. }.bind(this));
  1462. o[key[len]] = value;
  1463. //this.data[key] = value;
  1464. },
  1465. setRadioValue: function(name, input){
  1466. if (input.checked){
  1467. var i = name.indexOf("*");
  1468. var names = (i==-1) ? name.split(".") : name.substr(i+1, name.length).split(".");
  1469. var value = input.value;
  1470. if (value=="false") value = false;
  1471. if (value=="true") value = true;
  1472. var oldValue = this.data;
  1473. for (var idx = 0; idx<names.length; idx++){
  1474. if (!oldValue[names[idx]]){
  1475. oldValue = null;
  1476. break;
  1477. }else{
  1478. oldValue = oldValue[names[idx]];
  1479. }
  1480. }
  1481. // var value = input.value;
  1482. // if (value==="false") value = false;
  1483. // if (value==="true") value = true;
  1484. //var oldValue = this.data[name];
  1485. this.changeJsonDate(names, value);
  1486. this.changeData(name, input, oldValue);
  1487. }
  1488. },
  1489. setCheckboxValue: function(name, input){
  1490. //var id = this.module.json.id;
  1491. //var id = this.form.json.id;
  1492. var id = this.data.pid;
  1493. var checkboxList = $$("input[name='"+this.form.options.mode+id+name+"']");
  1494. var values = [];
  1495. checkboxList.each(function(checkbox){
  1496. if (checkbox.get("checked")){
  1497. values.push(checkbox.value);
  1498. }
  1499. });
  1500. var oldValue = this.data[name];
  1501. //this.data[name] = values;
  1502. this.changeJsonDate(name, values);
  1503. this.changeData(name, input, oldValue);
  1504. },
  1505. setSelectValue: function(name, select){
  1506. var idx = select.selectedIndex;
  1507. var options = select.getElements("option");
  1508. var value = "";
  1509. if (options[idx]){
  1510. value = options[idx].get("value");
  1511. }
  1512. var oldValue = this.data[name];
  1513. //this.data[name] = value;
  1514. this.changeJsonDate(name, value);
  1515. this.changeData(name, select, oldValue);
  1516. },
  1517. setValue: function(name, value, obj){
  1518. if (name==="id"){
  1519. if (value!==this.module.json.id) {
  1520. if (!value) {
  1521. this.designer.notice(MWF.APPFD.LP.notNullId, "error", this.module.form.designer.propertyContentArea, {
  1522. x: "right",
  1523. y: "bottom"
  1524. });
  1525. obj.focus();
  1526. return false;
  1527. } else {
  1528. var check = this.module.form.checkModuleId(value, this.module.json.type);
  1529. if (check.elementConflict) {
  1530. this.designer.notice(MWF.APPFD.LP.repetitionsId, "error", this.module.form.designer.propertyContentArea, {
  1531. x: "right",
  1532. y: "bottom"
  1533. });
  1534. obj.focus();
  1535. return false;
  1536. } else {
  1537. var json = this.module.form.json.moduleList[this.module.json.id];
  1538. this.module.form.json.moduleList[value] = json;
  1539. delete this.module.form.json.moduleList[this.module.json.id];
  1540. }
  1541. }
  1542. // if (this.module.form.json.moduleList[value]){
  1543. // this.designer.notice(MWF.APPFD.LP.repetitionsId, "error", this.module.form.designer.propertyContentArea, {x:"right", y:"bottom"});
  1544. // obj.focus();
  1545. // return false;
  1546. // }else{
  1547. // var flag = false;
  1548. // if (this.module.form.subformList){
  1549. // Object.each(this.module.form.subformList, function(o, k){
  1550. // if (o.subformData.moduleList[value] && o.subformData.moduleList[value] ) flag = true;
  1551. // });
  1552. // }
  1553. // if (flag){
  1554. // this.designer.notice(MWF.APPFD.LP.repetitionsId, "error", this.module.form.designer.propertyContentArea, {x:"right", y:"bottom"});
  1555. // obj.focus();
  1556. // return false;
  1557. // }else{
  1558. // var json = this.module.form.json.moduleList[this.module.json.id];
  1559. // this.module.form.json.moduleList[value]=json;
  1560. // delete this.module.form.json.moduleList[this.module.json.id];
  1561. // }
  1562. // }
  1563. }
  1564. }
  1565. //var oldValue = this.data[name];
  1566. var names = name.split(".");
  1567. var oldValue = this.data;
  1568. for (var idx = 0; idx<names.length; idx++){
  1569. if (!oldValue[names[idx]]){
  1570. oldValue = null;
  1571. break;
  1572. }else{
  1573. oldValue = oldValue[names[idx]];
  1574. }
  1575. }
  1576. //this.data[name] = value;
  1577. this.changeJsonDate(names, value);
  1578. this.changeData(name, obj, oldValue);
  1579. },
  1580. setEditNodeStyles: function(node){
  1581. var nodes = node.getChildren();
  1582. if (nodes.length){
  1583. nodes.each(function(el){
  1584. var cName = el.get("class");
  1585. if (cName){
  1586. if (this.form.css[cName]) el.setStyles(this.form.css[cName]);
  1587. }
  1588. this.setEditNodeStyles(el);
  1589. }.bind(this));
  1590. }
  1591. },
  1592. loadScriptInput: function(){
  1593. var scriptNodes = this.propertyContent.getElements(".MWFScript");
  1594. scriptNodes.each(function(node){
  1595. MWF.require("MWF.widget.ScriptEditor", function(){
  1596. var script = new MWF.widget.ScriptEditor(node, {
  1597. "onPostSave": function(script){
  1598. this.saveScriptItem(node, script);
  1599. }.bind(this),
  1600. "onQueryDelete": function(script){
  1601. this.deleteScriptItem(node, script);
  1602. }.bind(this)
  1603. });
  1604. this.setScriptItems(script, node);
  1605. }.bind(this));
  1606. }.bind(this));
  1607. },
  1608. deleteScriptItem: function(node, script){
  1609. var jsondata = node.get("name");
  1610. this.data[jsondata].erase(script.data.id);
  1611. this.process.scripts[script.data.id] = null;
  1612. delete this.process.scripts[script.data.id];
  1613. this.process.process.scriptList.erase(script.data);
  1614. },
  1615. saveScriptItem: function(node, script){
  1616. var jsondata = node.get("name");
  1617. var scriptList = this.data[jsondata];
  1618. var data = script.data;
  1619. var scriptData = this.process.scripts[script.data.id];
  1620. if (!scriptData){
  1621. this.process.process.scriptList.push(data);
  1622. this.process.scripts[script.data.id] = data;
  1623. }
  1624. if (scriptList.indexOf(data.id) == -1){
  1625. this.data[jsondata].push(data.id);
  1626. }
  1627. },
  1628. setScriptItems: function(script, node){
  1629. var jsondata = node.get("name");
  1630. var scriptList = this.data[jsondata];
  1631. scriptList.each(function(id){
  1632. if (id){
  1633. var data = this.process.scripts[id];
  1634. if (data) script.setScriptItem(data);
  1635. }
  1636. }.bind(this));
  1637. }
  1638. });
  1639. MWF.xApplication.process.FormDesigner.PropertyMulti = new Class({
  1640. Extends: MWF.xApplication.process.FormDesigner.Property,
  1641. Implements: [Options, Events],
  1642. initialize: function(form, modules, propertyNode, designer, options){
  1643. this.setOptions(options);
  1644. this.modules = modules;
  1645. this.form = form;
  1646. // this.data = module.json;
  1647. this.data = {};
  1648. this.htmlPath = this.options.path;
  1649. this.designer = designer;
  1650. this.maplists = {};
  1651. this.propertyNode = propertyNode;
  1652. },
  1653. load: function(){
  1654. if (this.fireEvent("queryLoad")){
  1655. MWF.getRequestText(this.htmlPath, function(responseText, responseXML){
  1656. this.htmlString = responseText;
  1657. MWF.require("MWF.widget.JsonTemplate", function(){
  1658. this.fireEvent("postLoad");
  1659. }.bind(this));
  1660. }.bind(this));
  1661. }
  1662. },
  1663. show: function(){
  1664. if (!this.propertyContent){
  1665. if (this.htmlString){
  1666. this.JsonTemplate = new MWF.widget.JsonTemplate({}, this.htmlString);
  1667. this.propertyContent = new Element("div", {"styles": {"overflow": "hidden"}}).inject(this.propertyNode);
  1668. this.propertyContent.set("html", this.JsonTemplate.load());
  1669. this.setEditNodeEvent();
  1670. this.setEditNodeStyles(this.propertyContent);
  1671. this.loadPropertyTab();
  1672. this.loadMaplist();
  1673. this.loadScriptArea();
  1674. this.loadTreeData();
  1675. this.loadArrayList();
  1676. //this.loadEventsEditor();
  1677. //this.loadHTMLArea();
  1678. //this.loadJSONArea();
  1679. // this.loadScriptInput();
  1680. //MWF.process.widget.EventsEditor
  1681. }
  1682. }else{
  1683. this.propertyContent.setStyle("display", "block");
  1684. }
  1685. },
  1686. hide: function(){
  1687. if (this.propertyContent) this.propertyContent.destroy();
  1688. },
  1689. changeStyle: function(name){
  1690. this.modules.each(function(module){
  1691. module.setPropertiesOrStyles(name);
  1692. }.bind(this));
  1693. },
  1694. changeData: function(name, input, oldValue){
  1695. this.modules.each(function(module){
  1696. module._setEditStyle(name, input, oldValue);
  1697. }.bind(this));
  1698. },
  1699. changeJsonDate: function(key, value){
  1700. //alert(key+": "+value );
  1701. this.modules.each(function(module){
  1702. module.json[key] = value;
  1703. }.bind(this));
  1704. },
  1705. });