MWF.xApplication.cms.FormDesigner.widget = MWF.xApplication.cms.FormDesigner.widget || {}; MWF.xDesktop.requireApp("process.FormDesigner", "widget.ActionsEditor", null, false); MWF.xApplication.cms.FormDesigner.widget.ActionsEditor = new Class({ Extends: MWF.xApplication.process.FormDesigner.widget.ActionsEditor, load: function(data){ this.loadActionsArea(); if (!this.options.noCreate) this.loadCreateActionButton(); this.data = data; if ( !this.data || typeOf(this.data)!="array") this.data = []; this.loadRestoreActionButton(); this.data.each(function(actionData, idx){ var action = new MWF.xApplication.cms.FormDesigner.widget.ActionsEditor.ButtonAction(this); action.load(actionData); this.actions.push(action); }.bind(this)); }, listRemovedSystemTool : function(){ var list = []; if( !this.defaultTools ){ MWF.getJSON( "../x_component_cms_FormDesigner/Module/Actionbar/toolbars.json", function(tools){ this.defaultTools = tools; }.bind(this), false); } this.defaultTools.each( function( tool ){ var flag = true; for( var i=0; i<(this.data || []).length; i++ ){ if( this.data[i].id === tool.id ){ flag = false; break; } } if(flag)list.push(tool); }.bind(this)); return list; }, addButtonAction: function(){ var o = { "type": "MWFToolBarButton", "img": "4.png", "title": "", "action": "", "text": "Unnamed", "actionScript" : "", "condition": "", "editShow": true, "readShow": true }; var action = new MWF.xApplication.cms.FormDesigner.widget.ActionsEditor.ButtonAction(this); action.load(o); this.data.push(o); this.actions.push(action); this.fireEvent("change", [{ compareName: " [addAction]", force: true }]); }, restoreButtonAction : function(){ var list = this.listRemovedSystemTool(); if( !list.length )return; var selectableItems = []; list.each( function(d){ var title = ""; if( d.text && this.designer.lp.actionBar ){ title = this.designer.lp.actionBar[ d.text.split(".").getLast().replace("}}","") ] || ""; title = title ? (" (" + title + ")") : ""; } selectableItems.push( { name : d.text + title, id : d.id }) }.bind(this)); MWF.xDesktop.requireApp("Template", "Selector.Custom", null, false); var opt = { "count": 0, "title": this.designer.lp.actionbar.selectDefaultTool, "selectableItems" : selectableItems, "values": [], "onComplete": function( array ){ if( !array || array.length == 0 )return; var actionNameList = []; array.each( function(tool){ for( var i=0; i