diff --git a/workflow/engine/js/processmap/core/processmap.js b/workflow/engine/js/processmap/core/processmap.js index d62097b93..ff89aefce 100644 --- a/workflow/engine/js/processmap/core/processmap.js +++ b/workflow/engine/js/processmap/core/processmap.js @@ -1,2719 +1,2667 @@ -var PROCESSMAP_STEP_EDIT = false; -var PROCESSMAP_USER_EDIT = false; - -var processmapOutputsPanel; - -var processmap=function(){ - this.data={ - load:function() - { - //setTimeout(this.parent.closure({instance:this,method:this.data.render.base}),1000); - var r = new leimnud.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=load&data="+{uid:this.options.uid,mode:this.options.rw,ct:this.options.ct}.toJSONString() - }); - r.callback=this.data.render.base - r.make(); - }, - render:{ - buildingBlocks:{ - injector:function(lanzado) - { - Wx = (lanzado=='dynaforms' || lanzado=='triggers' || lanzado=='outputs' ) ?600 : 500; - Hx = 460; - - var bbk = { - dynaforms:1, - messages:1, - inputs:1, - outputs:1, - webbots:1 - }; - this.observers.menu.update(); - if(!this.panels.buildingBlocks) - { - this.panels.buildingBlocks=new leimnud.module.panel(); - this.panels.buildingBlocks.options={ - limit :true, - size :{w:Wx,h:Hx}, - position:{x:0,y:10,center:true}, - title :"", - theme :"processmaker", - //target :this.options.target, - statusBar:false, - //titleBar:false, - control :{drag:false,resize:false,close:true, drag:true}, - fx :{opacity:false,rolled:false,modal:true, drag:true} - }; - this.panels.buildingBlocks.make(); - this.panels.buildingBlocks.events={ - remove:function() - { - delete this.panels.buildingBlocks; - }.extend(this) - }; - //this.panels.buildingBlocks.elements.modal.onmouseup=this.panels.buildingBlocks.remove; - } - else - { - this.panels.buildingBlocks.clearContent(); - } - var bbk ={ - outputs:function(){ - var panel = this.panels.buildingBlocks; - panel.addContentTitle(G_STRINGS.ID_PROCESSMAP_OUTPUT_DOCUMENTS) - panel.loader.show(); - var r = new this.parent.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=outputs&data="+{pro_uid:this.options.uid}.toJSONString() - }); - r.callback=function(rpc){ - panel.loader.hide(); - var scs=rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - this.buildLoading=false; - }.extend(this); - r.make(); - - processmapOutputsPanel = panel; - }.extend(this), - inputs:function() - { - var panel = this.panels.buildingBlocks; - panel.addContentTitle(G_STRINGS.ID_PROCESSMAP_INPUT_DOCUMENTS); - panel.loader.show(); - var r = new this.parent.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=inputs&data="+{pro_uid:this.options.uid}.toJSONString() - }); - r.callback=function(rpc){ - panel.loader.hide(); - var scs=rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - this.buildLoading=false; - }.extend(this); - r.make(); - }.extend(this), - triggers:function(){ - var panel = this.panels.buildingBlocks; - panel.addContentTitle(G_STRINGS.ID_PROCESSMAP_TRIGGERS); - panel.clearContent(); - panel.loader.show(); - var r = new this.parent.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=triggers&data="+{pro_uid:this.options.uid}.toJSONString() - }); - r.callback=function(rpc){ - panel.loader.hide(); - var scs=rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - this.buildLoading=false; - }.extend(this); - r.make(); - }.extend(this), - messages:function(){ - var panel = this.panels.buildingBlocks; - panel.addContentTitle(G_STRINGS.ID_PROCESSMAP_MESSAGES); - panel.clearContent(); - panel.loader.show(); - var r = new this.parent.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=messages&data="+{pro_uid:this.options.uid}.toJSONString() - }); - r.callback=function(rpc){ - panel.loader.hide(); - var scs=rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - this.buildLoading=false; - }.extend(this); - r.make(); - }.extend(this), - reportTables:function(){ - var panel = this.panels.buildingBlocks; - panel.addContentTitle(G_STRINGS.ID_PROCESSMAP_REPORT_TABLES); - panel.clearContent(); - panel.loader.show(); - var r = new this.parent.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=reportTables&data="+{pro_uid:this.options.uid}.toJSONString() - }); - r.callback=function(rpc){ - panel.loader.hide(); - var scs=rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - this.buildLoading=false; - }.extend(this); - r.make(); - }.extend(this), - dynaforms:function(){ - var panel = this.panels.buildingBlocks; - panel.addContentTitle(G_STRINGS.ID_PROCESSMAP_DYNAFORMS); - panel.loader.show(); - var r = new this.parent.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=dynaforms&data="+{pro_uid:this.options.uid}.toJSONString() - }); - r.callback=function(rpc){ - panel.loader.hide(); - var scs=rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - this.buildLoading=false; - }.extend(this) - r.make(); - }.extend(this) - }; - bbk[lanzado](); - }, - panel:function() - { - /* Toolbar Begin */ - var panel; - panel = this.panels.toolbar=new leimnud.module.panel(); - this.panels.toolbar.options={ - limit :true, - size :{w:260,h:31}, - position:{x:this.options.target.clientWidth-278,y:4}, - title :"", - theme :"processmaker", - target :this.options.target, - //limit :true, - titleBar:false, - statusBar:false, - elementToDrag:"content", - cursorToDrag:"default", - control :{drag:true,resize:false}, - fx :{opacity:true,shadow:false} - }; - panel.setStyle={ - containerWindow:{border:"1px solid buttonshadow"}, - frontend:{backgroundColor:"buttonface"}, - content:{border:"1px solid transparent",backgroundColor:"transparent",margin:0,overflow:"hidden",padding:1} - }; - this.panels.toolbar.make(); - var div = document.createElement("div"); - this.parent.dom.setStyle(div,{ - textAlign:"center" - }); - var dr1 = document.createElement("img"); - dr1.src = this.options.images_dir+"0.gif"; - dr1.title = G_STRINGS.ID_PROCESSMAP_SEQUENTIAL; - div.appendChild(dr1); - //dr1.style.marginTop=7; - //div.appendChild(document.createElement("p")); - var dr2 = document.createElement("img"); - //dr2.style.marginTop=7; - dr2.src = this.options.images_dir+"1.gif"; - dr2.title = G_STRINGS.ID_PROCESSMAP_SELECTION; - - div.appendChild(dr2); - //div.appendChild(document.createElement("p")); - var dr3 = document.createElement("img"); - dr3.src = this.options.images_dir+"2.gif"; - dr3.title = G_STRINGS.ID_PROCESSMAP_EVALUATION; - //dr3.style.marginTop=7; - div.appendChild(dr3); - //div.appendChild(document.createElement("p")); - var dr4 = document.createElement("img"); - dr4.src = this.options.images_dir+"3.gif"; - dr4.title = G_STRINGS.ID_PROCESSMAP_PARALLEL_FORK; - //dr4.style.marginTop=7; - div.appendChild(dr4); - //div.appendChild(document.createElement("p")); - var dr5 = document.createElement("img"); - dr5.src = this.options.images_dir+"4.gif"; - dr5.title = G_STRINGS.ID_PROCESSMAP_PARALLEL_EVALUATION_FORK; - //dr5.style.marginTop=7; - div.appendChild(dr5); - - var dr6 = document.createElement("img"); - dr6.src = this.options.images_dir+"5.gif"; - dr6.title = G_STRINGS.ID_PROCESSMAP_PARALLEL_JOIN; - div.appendChild(dr6); - - var fin = document.createElement("img"); - fin.src = this.options.images_dir+"6.gif"; - fin.title = G_STRINGS.ID_END_OF_PROCESS; - div.appendChild(fin); - - var ini = document.createElement("img"); - ini.src = this.options.images_dir+"7.gif"; - ini.title = "Starting task"; - div.appendChild(ini); - - var dis = document.createElement("img"); - dis.src = this.options.images_dir+"8.gif"; - dis.title = "Discriminator"; - div.appendChild(dis); - - [dr1,dr2,dr3,dr4,dr5,dr6,fin,ini,dis].map(function(el){ - el.className ="processmap_toolbarItem___"+this.options.theme - }.extend(this)); - this.dragables.derivation = new this.parent.module.drag({ //Add to enable dragging of image from panel - elements:[dr1,dr2,dr3,dr4,dr5,dr6,fin,ini,dis], - fx:{ - type : "clone", - target : this.panels.editor.elements.content, - zIndex : 11 - } - }); - this.dragables.derivation.typesDerivation=["simple","double","conditional","conditional1","conditional2","conditional3","final","initial","discriminator"]; - this.dragables.derivation.events={ - init :[function(){ - this.dragables.derivation.noDrag=true; - }.extend(this)], - move:this.dropables.derivation.capture.args(this.dragables.derivation), - finish : this.parent.closure({instance:this,method:function(){ - //clearInterval(this.timeToOutControl); - - this.parent.dom.remove(this.dropables.derivation.drag || this.dragables.derivation.currentElementDrag); - this.parent.dom.remove(this.dragables.derivation.currentElementDrag); - if(this.dropables.derivation.selected!==false) - { - this.dropables.derivation.launchEvents(this.dropables.derivation.elements[this.dropables.derivation.selected].events.out); - vAux = this.dropables.derivation.launchEvents(this.dropables.derivation.elements[this.dropables.derivation.selected].events.click); - this.dropables.derivation.selected = false; - return vAux; - } - else - { - this.dragables.derivation.noDrag=false; - } - }}) - }; - this.dragables.derivation.make(); - //drg.options.elements=[]; - this.parent.dom.setStyle([dr1,dr2,dr3,dr4,dr5,dr6,fin,ini,dis],{ - cursor:"move" - }); - panel.loader.hide(); - panel.addContent(div); - - leimnud._panel=['O'],leimnud.ipanel=0; - /* Toolbar End */ - }, - components:{ - - } - }, - base:function(xml) - { - this.panels.editor.loader.hide(); - this.data.db=xml.xmlhttp.responseText.parseJSON().concat({ - //derivations :["Sequential","Evaluate (manual)","Evaluate (auto)","Parallel (fork)","Parallel by evaluation (fork)","Parallel (join)"], - }); - this.data.db.subprocess=[]; - - this.panels.editor.addContentStatus(G_STRINGS.ID_PROCESSMAP_LOADING); - if(this.options.rw===true) - { - this.menu = new this.parent.module.app.menuRight(); - this.menu.make({ - target:this.panels.editor.elements.content, - width:201, - theme:this.options.theme, - menu:[ - {image:"/images/edit.gif",text:G_STRINGS.ID_PROCESSMAP_EDIT_PROCESS,launch:function(event){ - this.tmp.editProcessPanel = panel =new leimnud.module.panel(); - panel.options={ - limit :true, - size :{w:700,h:390}, - position:{x:50,y:50,center:true}, - title :G_STRINGS.ID_PROCESSMAP_EDIT_PROCESS+": "+this.data.db.title.label, - theme :this.options.theme, - control :{close:true,resize:false},fx:{modal:true}, - statusBar:false, - fx :{shadow:true,modal:true} - }; - panel.make(); - panel.loader.show(); - var r = new leimnud.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=process_Edit&data="+{ - pro_uid :this.options.uid - }.toJSONString() - }); - r.callback=function(rpc,panel) - { - panel.loader.hide(); - var scs = rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - //Pm.objeto.innerHTML="asdasd"; - }.extend(this,panel); - r.make(); - }.extend(this)}, - {image:"/images/edit.gif",text:G_STRINGS.ID_PROCESSMAP_EXPORT_PROCESS,launch:function(event){ - this.tmp.exportProcessPanel = panel =new leimnud.module.panel(); - panel.options={ - limit :true, - size :{w:440,h:230}, - position:{x:50,y:50,center:true}, - title :G_STRINGS.ID_PROCESSMAP_EXPORT_PROCESS+": "+this.data.db.title.label, - theme :this.options.theme, - control :{close:true,resize:false},fx:{modal:true}, - statusBar:false, - fx :{shadow:true,modal:true} - }; - panel.make(); - panel.loader.show(); - var r = new leimnud.module.rpc.xmlhttp({ - url:this.options.dataServer, - args:"action=process_Export&data="+{ - pro_uid :this.options.uid - }.toJSONString() - }); - r.callback=function(rpc,panel) - { - panel.loader.hide(); - var scs = rpc.xmlhttp.responseText.extractScript(); - panel.addContent(rpc.xmlhttp.responseText); - scs.evalScript(); - }.extend(this,panel); - r.make(); - }.extend(this)}, - {separator:true}, - {image:"/images/add.png",text:G_STRINGS.ID_PROCESSMAP_ADD_TASK,launch:this.addTask.extend(this,{tp:'task'})}, - {image:"/images/subProcess.png",text:G_STRINGS.ID_PROCESSMAP_ADD_SUBPROCESS,launch:this.addTask.extend(this,{tp:'subprocess'})}, //add subprocess whith blabla - //{image:"/images/add.png",text:"Add Task Hidden",launch:this.addTask.extend(this,{tp:'hidden'})}, //add subprocess whith blabla - {image:"/images/addtext.png",text:G_STRINGS.ID_PROCESSMAP_ADD_TEXT,launch:this.addText.extend(this)}, - {image:"/images/linhori.png",text:G_STRINGS.ID_PROCESSMAP_HORIZONTAL_LINE,launch:this.addGuide.extend(this,"horizontal")}, - {image:"/images/linver.png",text:G_STRINGS.ID_PROCESSMAP_VERTICAL_LINE,launch:this.addGuide.extend(this,"vertical")}, - {image:"/images/delete.png",text:G_STRINGS.ID_PROCESSMAP_DELETE_ALL_LINES,launch:function(event,index){ - index = this.parent.browser.isIE?event:index; - new leimnud.module.app.confirm().make({ - label:G_STRINGS.ID_PROCESSMAP_CONFIRM_DELETE_ALL_LINES, - action:function() - { - for(var i=0;i1)?'derivationBottom':'derivation'],{ - background:"" - }); - - } - else - { - deri.to[i].object.line.remove(); - this.observers.lineas.unregister(deri.to[i].object.indexObserver); - } - if(deri.type===5 || deri.type===8) - { - var toTask = this.data.db.task[this.tools.getIndexOfUid(deri.to[i].task)]; - toTask.object.inJoin = toTask.object.inJoin-1; - if(toTask.object.inJoin===0) - { - this.parent.dom.setStyle(toTask.object.elements.init,{ - backgroundPosition:"0 0", - background:"" - }); - } - } - } - } - this.parent.dom.setStyle(task.object.elements.derivation,{ - background:"" - }); - task.derivation={to:[]}; - - /* Delete derivation recursive */ - if(rec) - { - var tdb = this.data.db.task; - for(var i=0;i1)?'derivationBottom':'derivation'; - this.parent.dom.setStyle(task.object.elements[target],{ - // background:((task.derivation.type===0)?"":"url("+this.options.images_dir+task.derivation.type+"t.gif?aa="+Math.random()+")") - // background:"url("+this.options.images_dir+derivation.task+".gif?aa="+Math.random()+")" - background:"url("+this.options.images_dir+derivation.task+((target=="derivationBottom")?"bb.jpg":".gif")+"?aa="+Math.random()+")" - }); - - } - else - { - var uid = this.tools.getIndexOfUid(derivation.task); - //alert(this.tools.getIndexOfUid) - //alert(this.tools.getIndexOfUid(derivation.task)); - //var from = (task.derivation.type===0)?task.object.elements.task:task.object.elements.derivation; - var taskF= task.object.elements; - var taskT= this.data.db.task[uid].object.elements; - var from = task.object.elements.derivation; - var toTask=this.data.db.task[uid]; - var to = toTask.object.elements.task; - - if(task.derivation.type === 8 || task.derivation.type ===5) - { - var ij = toTask.object.inJoin; - ij = (ij)?ij+1:1; - toTask.object.inJoin = ij; - this.parent.dom.setStyle(toTask.object.elements.init,{ - //background:((task.derivation.type===0)?"":"url("+this.options.images_dir+task.derivation.type+"t.gif?aa="+Math.random()+")") - background:"url("+this.options.images_dir+task.derivation.type+"t.gif?aa="+Math.random()+")", - backgroundPosition:"2 0", - backgroundRepeat:"no-repeat" - }); - - } - else - { - this.parent.dom.setStyle(task.object.elements.derivation,{ - //background:((task.derivation.type===0)?"":"url("+this.options.images_dir+task.derivation.type+"t.gif?aa="+Math.random()+")") - background:"url("+this.options.images_dir+task.derivation.type+"t.gif?aa="+Math.random()+")" - }); - } - - var line = new this.parent.module.app.line({ - indexRootSize:30, - indexRootLastSize:35, - elements:[taskF.task,taskT.task], - envolve:[ - [taskF.task], - [] - ], - target:this.panels.editor.elements.content, - color:"#228AB0", - startA:50, - zIndex:5 - }); - line.make(); - var cE=this.observers.lineas.register(line.update,line); - derivation.object={ - line : line, - indexObserver : cE - }; - } - } - }, - text:function() - { - var lngt = this.data.db.text.length; - for(var i =0;i