//MWF.require("MWF.xAction.org.express.RestActions", null,false); MWF.require("MWF.widget.Mask", null, false); MWF.require("MWF.widget.Identity", null,false); //MWF.xDesktop.requireApp("Organization", "Selector.package", null, false); MWF.xDesktop.requireApp("process.ProcessManager", "DictionaryExplorer", null, false); MWF.xApplication.process.Application.SerialExplorer = new Class({ Extends: MWF.xApplication.process.ProcessManager.DictionaryExplorer, Implements: [Options, Events], initialize: function(node, actions, options){ this.setOptions(options); this.setTooltip(); this.path = "../x_component_process_Application/$SerialExplorer/"; this.cssPath = "../x_component_process_Application/$SerialExplorer/"+this.options.style+"/css.wcss"; this._loadCss(); this.actions = actions; this.node = $(node); this.items=[]; }, load: function(){ this.loadToolbar(); // this.loadFilterNode(); // this.loadFilterConditionNode(); this.loadContentNode(); this.setNodeScroll(); this.mask = new MWF.widget.Mask({"style": "desktop"}); this.mask.loadNode(this.node); this.loadElementList(); }, clearWorks: function(){ MWF.release(this.items); this.works = null; this.items=[]; this.elementContentListNode.empty(); }, reloadWorks: function(){ this.clearWorks(); this.createWorkListHead(); this.loadElementList(); }, loadContentNode: function(){ this.elementContentNode = new Element("div", { "styles": this.css.elementContentNode }).inject(this.node); this.elementContentListNode = new Element("div", { "styles": this.css.elementContentListNode }).inject(this.elementContentNode); this.createWorkListHead(); this.setContentSize(); this.setContentSizeFun = this.setContentSize.bind(this); this.app.addEvent("resize", this.setContentSizeFun); }, setNodeScroll: function(){ //MWF.require("MWF.widget.DragScroll", function(){ // new MWF.widget.DragScroll(this.elementContentNode); //}.bind(this)); //MWF.require("MWF.widget.ScrollBar", function(){ // new MWF.widget.ScrollBar(this.elementContentNode, {"indent": false}); //}.bind(this)); var _self = this; MWF.require("MWF.widget.ScrollBar", function(){ new MWF.widget.ScrollBar(this.elementContentNode, { "indent": false,"style":"xApp_TaskList", "where": "before", "distance": 30, "friction": 4, "axis": {"x": false, "y": true} }); }.bind(this)); }, createWorkListHead: function(){ var headNode = new Element("div", {"styles": this.css.workItemHeadNode}).inject(this.elementContentListNode); var html = "
"+this.app.lp.process+"
" + "
"+this.app.lp.key+"
"+this.app.lp.serialNumber+"
"; headNode.set("html", html); headNode.getElement(".processAreaHeadNode").setStyles(this.css.processAreaHeadNode); headNode.getElement(".keyAreaHeadNode").setStyles(this.css.keyAreaHeadNode); headNode.getElement(".numberAreaHeadNode").setStyles(this.css.numberAreaHeadNode); headNode.getElements(".emptyAreaHeadNode").setStyles(this.css.emptyAreaHeadNode); }, createCreateElementNode: function(){}, setContentSize: function(){ var toolbarSize = this.toolbarNode.getSize(); var nodeSize = this.node.getSize(); var pt = this.elementContentNode.getStyle("padding-top").toFloat(); var pb = this.elementContentNode.getStyle("padding-bottom").toFloat(); var height = nodeSize.y-toolbarSize.y-pt-pb; this.elementContentNode.setStyle("height", ""+height+"px"); this.pageCount = (height/40).toInt()+5; if (this.options.noCreate) this.createElementNode.destroy(); }, loadElementList: function(count){ this.actions.listSerialNumber(this.app.options.id, function(json){ json.data.each(function(data){ var item = this._createItem(data); this.items.push(item); }.bind(this)); this.mask.hide(); }.bind(this), function () { if(this.mask)this.mask.hide(); }.bind(this)); }, _createItem: function(data){ return new MWF.xApplication.process.Application.SerialExplorer.Item(data, this); }, removeSerial: function(serial, all){ this.actions.deleteSerialNumber(serial.data.id, function(json){ this.items.erase(serial); serial.destroy(); MWF.release(serial); }.bind(this)); } }); MWF.xApplication.process.Application.SerialExplorer.Item = new Class({ initialize: function(data, explorer){ this.explorer = explorer; this.data = data; this.container = this.explorer.elementContentListNode; this.css = this.explorer.css; this.load(); }, load: function(){ this.node = new Element("div", {"styles": this.css.workItemNode}); this.node.inject(this.container); this.workAreaNode = new Element("div", {"styles": this.css.workItemWorkNode}).inject(this.node); //this.otherWorkAreaNode = new Element("div", {"styles": this.css.workItemWorkNode}).inject(this.node); var html = "
"+this.data.processName+"
" + "
"+this.data.name+"
"+this.data.serial+"
"; this.workAreaNode.set("html", html); this.workAreaNode.getElement(".processAreaNode").setStyles(this.css.processAreaNode); this.workAreaNode.getElement(".keyAreaNode").setStyles(this.css.keyAreaNode); this.numberAreaNode = this.workAreaNode.getElement(".numberAreaNode"); this.numberAreaNode.setStyles(this.css.numberAreaNode); this.workAreaNode.getElement(".emptyAreaNode").setStyles(this.css.emptyAreaNode); this.actionAreaNode = this.workAreaNode.getElement(".actionAreaNode"); this.actionAreaNode.setStyles(this.css.emptyAreaNode); //if (!this.data.control.allowRead){ // this.node.setStyles(this.css.workItemNode_noread) // this.checkAreaNode.setStyles(this.css.actionStopWorkNode); // this.actionAreaNode.setStyles(this.css.actionStopWorkActionNode); //} // //this.iconAreaNode.setStyles(this.css.iconWorkNode); //this.titleAreaNode.setStyles(this.css.titleWorkNode); //this.setPersonData(); //this.setStatusData(); // this.setActions(); // this.setEvents(); // //if (!this.relative) this.listRelatives(); }, setActions: function(){ if (this.explorer.app.options.application.allowControl){ this.editNode = new Element("div", {"styles": this.css.actionEditNode, "title": this.explorer.app.lp.edit}).inject(this.actionAreaNode); this.deleteNode = new Element("div", {"styles": this.css.actionDeleteNode, "title": this.explorer.app.lp.delete}).inject(this.actionAreaNode); } }, setEvents: function(){ if (this.deleteNode){ this.deleteNode.addEvents({ "mouseover": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_over);}.bind(this), "mouseout": function(){this.deleteNode.setStyles(this.css.actionDeleteNode);}.bind(this), "mousedown": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_down);}.bind(this), "mouseup": function(){this.deleteNode.setStyles(this.css.actionDeleteNode_over);}.bind(this), "click": function(e){ this.remove(e); }.bind(this) }); } if (this.editNode){ this.editNode.addEvents({ "mouseover": function(){this.editNode.setStyles(this.css.actionEditNode_over);}.bind(this), "mouseout": function(){this.editNode.setStyles(this.css.actionEditNode);}.bind(this), "mousedown": function(){this.editNode.setStyles(this.css.actionEditNode_down);}.bind(this), "mouseup": function(){this.editNode.setStyles(this.css.actionEditNode_over);}.bind(this), "click": function(e){ this.editNumber(e); }.bind(this) }); } }, editNumber: function(){ //this.numberAreaNode this.editAreaNode = new Element("div", {"styles": this.css.editAreaNode}).inject(this.node); this.editNumberInputNode = new Element("input", {"type": "number", "styles": this.css.editNumberInputNode}).inject(this.editAreaNode); this.editOkActionNode = new Element("div", {"styles": this.css.editOkActionNode, "text": this.explorer.app.lp.ok}).inject(this.editAreaNode); this.editCancelActionNode = new Element("div", {"styles": this.css.editCancelActionNode, "text": this.explorer.app.lp.cancel}).inject(this.editAreaNode); this.editNumberInputNode.set("value", this.data.serial); this.editNumberInputNode.focus(); this.editCancelActionNode.addEvent("click", function(){ this.cancelEdit(); }.bind(this)); this.editOkActionNode.addEvent("click", function(){ this.okEdit(); }.bind(this)); this.setEditAreaSize(); this.explorer.app.addEvent("resize", function(){ this.setEditAreaSize(); }.bind(this)); }, setEditAreaSize: function(){ if (this.editAreaNode){ var width = this.numberAreaNode.getSize().x + this.actionAreaNode.getSize().x-2; this.editAreaNode.setStyle("width", ""+width+"px"); var inputWidth = width - 26 - 50 - 50; this.editNumberInputNode.setStyle("width", ""+inputWidth+"px"); this.editAreaNode.position({ relativeTo: this.numberAreaNode, position: 'topLeft', edge: 'topLeft' }); } }, okEdit: function(){ var serial = this.editNumberInputNode.get("value"); if (!serial) serial = 0; this.data.serial = serial; this.explorer.actions.updateSerialNumber(this.data.id, this.data, function(json){ this.cancelEdit(); this.numberAreaNode.set("text", this.data.serial); }.bind(this)); }, cancelEdit: function(){ if (this.editAreaNode){ this.editCancelActionNode.destroy(); this.editOkActionNode.destroy(); this.editNumberInputNode.destroy(); this.editAreaNode.destroy(); this.editCancelActionNode = null; this.editOkActionNode = null; this.editNumberInputNode = null; this.editAreaNode = null; } }, remove: function(e){ var lp = this.explorer.app.lp; var text = lp.deleteSerial.replace(/{key}/g, this.data.name); var _self = this; this.workAreaNode.setStyles(this.css.workItemWorkNode_remove); this.readyRemove = true; this.explorer.app.confirm("warn", e, lp.deleteSerialTitle, text, 350, 120, function(){ _self.explorer.removeSerial(_self, true); this.close(); }, function(){ _self.workAreaNode.setStyles(_self.css.workItemWorkNode); _self.readyRemove = false; this.close(); }); }, destroy: function(){ this.node.destroy(); }, });