123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- MWF.xApplication.process.ProcessDesigner.widget = MWF.xApplication.process.ProcessDesigner.widget || {};
- MWF.xDesktop.requireApp("process.ProcessDesigner", "widget.ScriptText",null,false);
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor = new Class({
- Implements: [Options, Events],
- Extends: MWF.widget.Common,
- options: {
- "style": "default"
- },
- initialize: function(node, text, options){
- this.setOptions(options);
- this.node = $(node);
- this.data = (text) ? JSON.decode(text) : [];
- this.name = node.get("name");
- this.path = "../x_component_process_ProcessDesigner/widget/$SerialEditor/";
- this.cssPath = "../x_component_process_ProcessDesigner/widget/$SerialEditor/"+this.options.style+"/css.wcss";
- this._loadCss();
- this.selectedItems = [];
- this.items = {};
- },
- load: function(){
- this.titleNode = new Element("div", {"styles": this.css.titleNode}).inject(this.node);
- this.titleNode.set("text", MWF.xApplication.process.ProcessDesigner.LP.serialSelectTitle);
- this.selectNode = new Element("div", {"styles": this.css.selectNode}).inject(this.node);
- this.downNode = new Element("div", {"styles": this.css.downNode}).inject(this.node);
- this.previewNode = new Element("div", {"styles": this.css.previewNode}).inject(this.node);
- this.showNode = new Element("div", {"styles": this.css.showNode}).inject(this.node);
- this.propertyNode = new Element("div", {"styles": this.css.propertyNode}).inject(this.node);
- this.loadSelectNode();
- // this.loadSerialActivity();
- },
- loadSelectNode: function(){
- this.getSerialRule(function(){
- this.loadSelectNodeItems();
- this.loadSelectedNodeItems();
- }.bind(this));
- },
- loadSelectedNodeItems: function(){
- this.data.each(function(itemData){
- this.selectedItems.push(new MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem[itemData.key.capitalize()](this.items[itemData.key], itemData));
- }.bind(this));
- this.fireEvent("change");
- },
- loadSelectNodeItems: function(){
- Object.each(this.serialRuleJson, function(v, k){
- this.loadSelectNodeItem(v, k);
- }.bind(this));
- },
- loadSelectNodeItem: function(v, k){
- this.items[k] = new MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.Item(v, k, this);
- },
- getSerialRule: function(callback){
- if (!this.serialRuleJson){
- var serialConifgUrl = "../x_component_process_ProcessDesigner/$Process/serialRule.json";
- MWF.getJSON(serialConifgUrl, function(json){
- this.serialRuleJson = json;
- if (callback) callback();
- }.bind(this));
- }else{
- if (callback) callback();
- }
- },
- getData: function(){
- var data = [];
- this.selectedItems.each(function(item){
- data.push(item.getData());
- });
- this.data = data;
- return data;
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.Item = new Class({
- initialize: function(value, key, editor){
- this.editor = editor;
- this.json = value;
- this.key = key;
- this.css = this.editor.css;
- this.load();
- },
- load: function(){
- this.node = new Element("div", {"styles": this.css.itemNode}).inject(this.editor.selectNode);
- this.iconNode = new Element("div", {"styles": this.css.itemIconNode}).inject(this.node);
- this.textNode = new Element("div", {"styles": this.css.itemTextNode}).inject(this.node);
- this.textNode.set({
- "text": this.json.text,
- "title": this.json.description
- });
- this.node.addEvents({
- "mouseover": function(){this.node.setStyles(this.css.itemNode_over); this.iconNode.setStyles(this.css.itemIconNode_over);}.bind(this),
- "mouseout": function(){this.node.setStyles(this.css.itemNode); this.iconNode.setStyles(this.css.itemIconNode);}.bind(this),
- "click": function(){this.selectNumberItem();}.bind(this)
- });
- },
- selectNumberItem: function(){
- this.editor.selectedItems.push(new MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem[this.key.capitalize()](this));
- this.editor.fireEvent("change");
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem = new Class({
- initialize: function(item, itemData){
- this.item = item;
- this.json = item.json;
- this.key = item.key;
- this.editor = item.editor;
- this.css = this.editor.css;
- this.data = itemData;
- this.load();
- },
- load: function(){
- this.node = new Element("div", {"styles": this.css.selectedItemNode}).inject(this.editor.showNode);
- this.textNode = new Element("div", {"styles": this.css.selectedItemTextNode}).inject(this.node);
- this.textNode.set({
- "text": this.json.text,
- "title": this.json.description
- });
- this.node.addEvents({
- "mouseover": function(){
- if (this.editor.currentItem!=this) this.node.setStyles(this.css.selectedItemNode_over);
- }.bind(this),
- "mouseout": function(){
- if (this.editor.currentItem!=this) this.node.setStyles(this.css.selectedItemNode);
- }.bind(this),
- "click": function(){this.selectItem();}.bind(this)
- });
- this.closeNode = new Element("div", {"styles": this.css.selectedItemCloseNode}).inject(this.node);
- this.closeNode.addEvent("click", function(){
- this.deleteItem();
- }.bind(this));
- this.loadProperty();
- this.selectItem();
- },
- loadProperty: function(){},
- deleteItem: function(){
- this.node.destroy();
- if (this.propertyNode) this.propertyNode.destroy();
- this.editor.selectedItems.erase(this);
- if (this.editor.currentItem === this) this.editor.currentItem = null;
- this.editor.fireEvent("change");
- MWF.release(this);
- },
- selectItem: function(){
- if (this.editor.currentItem) this.editor.currentItem.unSelectItem();
- if (this.propertyNode){
- this.propertyNode.setStyle("display", "block");
- if (this.key==="number"){
- this.loadNumberBy();
- }
- }
- this.node.setStyles(this.css.selectedItemNode_check);
- this.editor.currentItem = this;
- },
- unSelectItem: function(){
- this.node.setStyles(this.css.selectedItemNode);
- if (this.propertyNode) this.propertyNode.setStyle("display", "none");
- this.editor.currentItem = null;
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Text = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- loadProperty: function(){
- this.propertyNode = new Element("div", {"styles": this.css.itemPropertyNode}).inject(this.editor.propertyNode);
- this.propertyTitleNode = new Element("div", {"styles": this.css.propertyTitleNode}).inject(this.propertyNode);
- this.propertyTitleNode.set("text", MWF.xApplication.process.ProcessDesigner.LP.serialTextTitle);
- this.propertyInputDivNode = new Element("div", {"styles": this.css.propertyInputDivNode}).inject(this.propertyNode);
- this.propertyInputNode = new Element("input", {
- "type": "text",
- "value": (this.data) ? this.data.value: "",
- "styles": this.css.propertyInputNode
- }).inject(this.propertyInputDivNode);
- this.changeText();
- this.propertyInputNode.addEvents({
- "change": function(){
- this.changeText();
- }.bind(this),
- "blur": function(){},
- });
- },
- changeText: function(){
- var value = this.propertyInputNode.get("value");
- if (value){
- this.textNode.set("text", "\""+value+"\"");
- }else{
- this.textNode.set("text", this.json.text);
- }
- this.editor.fireEvent("change");
- },
- getData: function(){
- var value = this.propertyInputNode.get("value");
- var key = this.key;
- var script = "return serial.text(\""+value+"\")";
- return {
- "key": key,
- "value": value,
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Year = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- loadProperty: function(){
- this.value = "created";
- var i = Math.random();
- this.propertyNode = new Element("div", {"styles": this.css.itemPropertyNode}).inject(this.editor.propertyNode);
- var propertyTitleNode = new Element("div", {"styles": this.css.propertyTitleNode}).inject(this.propertyNode);
- propertyTitleNode.set("text", MWF.xApplication.process.ProcessDesigner.LP.serialDateTitle);
- var propertyInputDivNode = new Element("div", {"styles": this.css.propertyInputDivNode}).inject(this.propertyNode);
- var v = (this.data) ? this.data.value: "created";
- html = "<input name=\"serialDateSelect"+i+"\" "+((v=="created") ? "checked" : "")+" type=\"radio\" value=\"created\"/>" + MWF.xApplication.process.ProcessDesigner.LP.serialCreatedDateTitle;
- html += "<input name=\"serialDateSelect"+i+"\" "+((v=="current") ? "checked" : "")+" type=\"radio\" value=\"current\"/>" + MWF.xApplication.process.ProcessDesigner.LP.serialCurrentDateTitle;
- propertyInputDivNode.set("html", html);
- this.changeText((this.data) ? this.data.value: "created");
- propertyInputDivNode.getElements("input").addEvent("click", function(e){
- if (e.target.checked){
- var v = e.target.get("value");
- this.changeText(v);
- }
- }.bind(this));
- },
- changeText: function(v){
- var text = MWF.xApplication.process.ProcessDesigner.LP.serialCreated;
- if (v=="current"){
- text = MWF.xApplication.process.ProcessDesigner.LP.serialCurrent;
- }
- this.value = v;
- this.textNode.set("text", this.json.text+"("+text+")");
- this.editor.fireEvent("change");
- },
- getData: function(){
- var key = this.key;
- var f = (this.value=="current") ? "year" : "createYear";
- var script = "return serial."+f+"(\"yyyy\")";
- return {
- "key": key,
- "value": this.value,
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Month = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Year,
- getData: function(){
- var key = this.key;
- var f = (this.value=="current") ? "month" : "createMonth";
- var script = "return serial."+f+"(\"MM\")";
- return {
- "key": key,
- "value": this.value,
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Day = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Year,
- getData: function(){
- var key = this.key;
- var f = (this.value=="current") ? "day" : "createDay";
- var script = "return serial."+f+"(\"dd\")";
- return {
- "key": key,
- "value": this.value,
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Company = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- getData: function(){
- var key = this.key;
- var script = "return serial.company()";
- return {
- "key": key,
- "value": "",
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Department = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- getData: function(){
- var key = this.key;
- var script = "return serial.department()";
- return {
- "key": key,
- "value": "",
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.CompanyAttribute = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- loadProperty: function(){
- this.propertyNode = new Element("div", {"styles": this.css.itemPropertyNode}).inject(this.editor.propertyNode);
- this.propertyTitleNode = new Element("div", {"styles": this.css.propertyTitleNode}).inject(this.propertyNode);
- this.propertyTitleNode.set("text", MWF.xApplication.process.ProcessDesigner.LP.serialAttributeTitle);
- this.propertyInputDivNode = new Element("div", {"styles": this.css.propertyInputDivNode}).inject(this.propertyNode);
- this.propertyInputNode = new Element("input", {
- "type": "text",
- "value": (this.data) ? this.data.value: "",
- "styles": this.css.propertyInputNode
- }).inject(this.propertyInputDivNode);
- this.changeText();
- this.propertyInputNode.addEvents({
- "change": function(){
- this.changeText();
- }.bind(this),
- "blur": function(){},
- });
- },
- changeText: function(){
- var value = this.propertyInputNode.get("value");
- if (value){
- this.textNode.set("text", this.json.text+"("+value+")");
- }else{
- this.textNode.set("text", this.json.text);
- }
- this.editor.fireEvent("change");
- },
- getData: function(){
- var value = this.propertyInputNode.get("value");
- var key = this.key;
- var script = "return serial.companyAttribute(\""+value+"\")";
- return {
- "key": key,
- "value": value,
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.DepartmentAttribute = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.CompanyAttribute,
- getData: function(){
- var value = this.propertyInputNode.get("value");
- var key = this.key;
- var script = "return serial.departmentAttribute(\""+value+"\")";
- return {
- "key": key,
- "value": value,
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Number = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- loadProperty: function(){
- this.propertyNode = new Element("div", {"styles": this.css.itemPropertyNode}).inject(this.editor.propertyNode);
- var lineNode = new Element("div", {"styles": this.css.lineNode}).inject(this.propertyNode);
- var propertyTitleNode = new Element("div", {"styles": this.css.propertyTitleNode}).inject(lineNode);
- propertyTitleNode.set("text", MWF.xApplication.process.ProcessDesigner.LP.serialNumberByTitle);
- this.propertyNumberByDivNode = new Element("div", {"styles": this.css.propertyInputDivNode}).inject(lineNode);
- this.loadNumberBy();
- lineNode = new Element("div", {"styles": this.css.lineNode}).inject(this.propertyNode);
- propertyTitleNode = new Element("div", {"styles": this.css.propertyTitleNode}).inject(lineNode);
- propertyTitleNode.set("text", MWF.xApplication.process.ProcessDesigner.LP.serialNumberLongTitle);
- this.propertyInputDivNode = new Element("div", {"styles": this.css.propertyInputDivNode}).inject(lineNode);
- this.propertyInputNode = new Element("select").inject(this.propertyInputDivNode);
- var value = (this.data) ? this.data.value: {};
- var numberLong = value.lng || 0;
- var optionsHtml = "<option "+((numberLong==0) ? "selected": "")+" value=\"0\">auto</option>";
- optionsHtml += "<option "+((numberLong==2) ? "selected": "")+" value=\"2\">2</option>";
- optionsHtml += "<option "+((numberLong==3) ? "selected": "")+" value=\"3\">3</option>";
- optionsHtml += "<option "+((numberLong==4) ? "selected": "")+" value=\"4\">4</option>";
- optionsHtml += "<option "+((numberLong==5) ? "selected": "")+" value=\"5\">5</option>";
- optionsHtml += "<option "+((numberLong==6) ? "selected": "")+" value=\"6\">6</option>";
- optionsHtml += "<option "+((numberLong==7) ? "selected": "")+" value=\"7\">7</option>";
- optionsHtml += "<option "+((numberLong==8) ? "selected": "")+" value=\"8\">8</option>";
- optionsHtml += "<option "+((numberLong==9) ? "selected": "")+" value=\"9\">9</option>";
- this.propertyInputNode.set("html", optionsHtml);
- this.propertyInputNode.addEvents({
- "change": function(){
- this.editor.fireEvent("change");
- }.bind(this)
- });
- },
- loadNumberBy: function(){
- this.propertyNumberByDivNode.empty();
- var i = Math.random();
- var value = (this.data) ? this.data.value: {};
- var numberBy = value.by || [];
- var html = "";
- this.editor.selectedItems.each(function(item, n){
- if (item.key!="number"){
- var check = (numberBy.indexOf(n)==-1)? "" : "checked"
- html += "<input "+check+" name=\"serialNumberBySelect"+i+"\" type=\"checkbox\" value=\""+n+"\"/>" + item.json.text;
- }
- });
- this.propertyNumberByDivNode.set("html", html);
- this.propertyNumberByDivNode.getElements("input").addEvent("click", function(e){
- this.editor.fireEvent("change");
- }.bind(this));
- },
- getData: function(){
- var numberLong = this.propertyInputNode.options[this.propertyInputNode.selectedIndex].value;
- var numberBy = [];
- var inputs = this.propertyNumberByDivNode.getElements("input");
- inputs.each(function(input){
- if (input.checked) numberBy.push(input.get("value").toInt());
- }.bind(this));
- var value = {"lng": numberLong, "by": numberBy};
- var code = "return serial.nextSerialNumber("+JSON.encode(numberBy)+", "+numberLong+")"
- return {
- "key": this.key,
- "value": value,
- "script": code
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Script = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- loadProperty: function(){
- debugger;
- this.code = (this.data) ? this.data.value: "";
- this.propertyNode = new Element("div", {"styles": this.css.itemPropertyNode}).inject(this.editor.propertyNode);
- this.scriptNode = new Element("div", {"styles": this.css.scriptNode}).inject(this.propertyNode);
- this.scriptNode.set("title", MWF.xApplication.process.ProcessDesigner.LP.serialScriptTitle);
- this.scriptArea = new MWF.xApplication.process.ProcessDesigner.widget.ScriptText(this.scriptNode, (this.data) ? this.data.value: "", this.editor.process.designer, {
- "maskNode": this.editor.process.designer.content,
- "maxObj": this.editor.process.designer.paperNode,
- "onChange": function(code){
- this.code = code;
- this.editor.fireEvent("change");
- }.bind(this)
- });
- },
- getData: function(){
- var value = this.code;
- var key = this.key;
- return {
- "key": key,
- "value": value,
- "script": value
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Unit = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- getData: function(){
- var key = this.key;
- var script = "return serial.unit()";
- return {
- "key": key,
- "value": "",
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.Unit = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem,
- getData: function(){
- var key = this.key;
- var script = "return serial.unit()";
- return {
- "key": key,
- "value": "",
- "script": script
- }
- }
- });
- MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.UnitAttribute = new Class({
- Extends: MWF.xApplication.process.ProcessDesigner.widget.SerialEditor.SelectedItem.CompanyAttribute,
- getData: function(){
- var value = this.propertyInputNode.get("value");
- var key = this.key;
- var script = "return serial.unitAttribute(\""+value+"\")";
- return {
- "key": key,
- "value": value,
- "script": script
- }
- }
- });
|