diff --git a/gulliver/js/maborak/core/maborak.loader.js b/gulliver/js/maborak/core/maborak.loader.js index 056b3ed6e..445719fcc 100644 --- a/gulliver/js/maborak/core/maborak.loader.js +++ b/gulliver/js/maborak/core/maborak.loader.js @@ -861,7 +861,8 @@ else if(deri.type===5||deri.type===8) {var toTask=this.data.db.task[this.tools.getIndexOfUid(deri.to[i].task)];if(typeof(toTask)!='undefined'){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:[]};if(rec) +this.parent.dom.setStyle(task.object.elements.derivation,{background:""});if(spec==false&&typeof(rec)=='undefined'){task.derivation={to:[]};} +if(rec) {var tdb=this.data.db.task;for(var i=0;i=82?"...":""),theme:this.options.theme,statusBar:false,control:{close:true},fx:{modal:true}};panel.tab={width:300,optWidth:120,step:(this.parent.browser.isIE?3:4),options:[{title:G_STRINGS.ID_PROCESSMAP_STEPS,content:this.parent.closure({instance:this,method:iForm,args:[panel,index,1]}),selected:true},{title:G_STRINGS.ID_PROCESSMAP_CONDITIONS,content:this.parent.closure({instance:this,method:iForm,args:[panel,index,2]})},{title:G_STRINGS.ID_PROCESSMAP_TRIGGERS,content:this.parent.closure({instance:this,method:iForm,args:[panel,index,3]})}]};panel.events={remove:function(){}.extend(this)};panel.make();}.extend(this,index)},{image:"/images/users.png",text:G_STRINGS.ID_PROCESSMAP_USERS_AND_GROUPS,launch:function(event,index){var panel;this.tmp.usersPanel=panel=new leimnud.module.panel();panel.options={limit:true,size:{w:450,h:300},position:{x:50,y:50,center:true},title:G_STRINGS.ID_PROCESSMAP_USERS_AND_GROUPS+": "+task.label.substr(0,30)+(task.label.length>=30?"...":""),theme:this.options.theme,control:{close:true,resize:false},fx:{modal:true},statusBar:false,fx:{modal:true}};panel.events={remove:function(){}.extend(this)};panel.make();panel.loader.show();var r;panel.currentRPC=r=new leimnud.module.rpc.xmlhttp({url:this.options.dataServer,args:"action=users&data="+{tas_uid:task.uid,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,index)},{image:"/images/users.png",text:G_STRINGS.ID_PROCESSMAP_USERS_AND_GROUPS_ADHOC,launch:function(event,index){var panel;this.tmp.usersPanel=panel=new leimnud.module.panel();panel.options={limit:true,size:{w:450,h:300},position:{x:50,y:50,center:true},title:G_STRINGS.ID_PROCESSMAP_USERS_AND_GROUPS_ADHOC+": "+task.label.substr(0,27)+(task.label.length>=27?"...":""),theme:this.options.theme,control:{close:true,resize:false},fx:{modal:true},statusBar:false,fx:{modal:true}};panel.make();panel.loader.show();var r;panel.currentRPC=r=new leimnud.module.rpc.xmlhttp({url:this.options.dataServer,args:"action=users_adhoc&data="+{tas_uid:task.uid,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,index)},{image:"/images/rules.png",text:G_STRINGS.ID_PROCESSMAP_WORKFLOW_PATTERNS,launch:this.patternPanel.args(index)},{image:"/images/delete_rules.png",text:G_STRINGS.ID_PROCESSMAP_WORKFLOW_DELETE_PATTERNS,launch:this.parent.closure({instance:this,method:function(){var data=this.data.db.task[index];if(typeof(data.derivation.type)!='undefined'){new this.parent.module.app.confirm().make({label:G_STRINGS.ID_PROCESSMAP_WORKFLOW_CONFIRM_DELETE_PATTERNS+'"'+data.label+'"?',action:function(){var db=this.data.db,task=db.task[index];var vars={tas_uid:task.uid,pro_uid:this.options.uid};var aData={};aData.tas_uid=vars.tas_uid;aData.data=[];this.data.build.derivation(aData);var r=new leimnud.module.rpc.xmlhttp({url:this.options.dataServer,args:'action=deleteAllRoutes&data='+vars.toJSONString()});r.make();}.extend(this)});} -else{new leimnud.module.app.alert().make({label:G_STRINGS.ID_NO_DERIVATIONS_DEFINED});}},args:index})},{image:"/images/delete.png",text:G_STRINGS.ID_PROCESSMAP_DELETE_TASK,launch:this.parent.closure({instance:this,method:function(index){var data=this.data.db.task[index];var r=new leimnud.module.rpc.xmlhttp({url:this.options.dataServer,args:"action=taskCases&data="+{pro_uid:this.options.uid,task_uid:data.uid}.toJSONString()});r.callback=function(rpc){var rs=rpc.xmlhttp.responseText.parseJSON();var casesNumRec=rs.casesNumRec;if(casesNumRec==0){new this.parent.module.app.confirm().make({label:G_STRINGS.ID_PROCESSMAP_CONFIRM_DELETE_TASK+" "+data.label,action:function(){data.object.drag.flush();this.dropables.derivation.unregister(data.object.dropIndex);this.data.render.deleteDerivation(data.uid,true);this.parent.dom.remove(data.object.elements);var r2=new leimnud.module.rpc.xmlhttp({url:this.options.dataServer,args:"action=deleteTask&data="+{pro_uid:this.options.uid,tas_uid:data.uid}.toJSONString()});r2.make();}.extend(this)});} +else{new leimnud.module.app.alert().make({label:G_STRINGS.ID_NO_DERIVATIONS_DEFINED});}},args:index})},{image:"/images/delete.png",text:G_STRINGS.ID_PROCESSMAP_DELETE_TASK,launch:this.parent.closure({instance:this,method:function(index){var data=this.data.db.task[index];var r=new leimnud.module.rpc.xmlhttp({url:this.options.dataServer,args:"action=taskCases&data="+{pro_uid:this.options.uid,task_uid:data.uid}.toJSONString()});r.callback=function(rpc){var rs=rpc.xmlhttp.responseText.parseJSON();var casesNumRec=rs.casesNumRec;if(casesNumRec==0){new this.parent.module.app.confirm().make({label:G_STRINGS.ID_PROCESSMAP_CONFIRM_DELETE_TASK+" "+data.label,action:function(){data.object.drag.flush();this.dropables.derivation.unregister(data.object.dropIndex);this.data.render.deleteDerivation(data.uid,true);this.parent.dom.remove(data.object.elements);var taskUidDelete=this.data.db.task[data.object.dropIndex].uid;for(var i=0;i<(this.data.db.task).length;i++){for(var j=0;j<(this.data.db.task[i]).length;j++){this.data.db.task[i]=this.data.db.task[i+1];} +var j=0;var itemDelete=(this.data.db.task[i]).derivation;while(jthis.options.size.w?maximunX+200:this.options.size.w),h:heightPanel},position:{x:200,y:0,centerX:true},title:"",titleBar:false,control:{resize:false},fx:{opacity:false,shadow:false,blinkToFront:false},theme:this.options.theme,target:this.options.target,modal:true,limit:true};this.panels.editor.setStyle={content:{background:"white url('"+this.options.images_dir+"bg_pm.gif') repeat fixed",backgroundPosition:"10 0"},containerWindow:{borderWidth:0,padding:0,backgroundColor:"buttonface"},titleBar:{background:"transparent",borderWidth:0,height:5},frontend:{backgroundColor:"buttonface"},backend:{backgroundColor:"buttonface"},status:{textAlign:"center"}};this.panels.editor.make();this.panels.editor.loader.show();this.panels.editor.addContentStatus(G_STRINGS.ID_PROCESSMAP_LOADING);this.data.load();if(this.options.rw===true) {this.data.render.buildingBlocks.panel();}},validate:function() {return(!this.options.target||!this.options.dataServer||!this.options.lang)?false:true;},addTask:function(evt,tp) diff --git a/workflow/engine/js/processmap/core/processmap.js b/workflow/engine/js/processmap/core/processmap.js index a6e99e4f9..fb5a1f203 100755 --- a/workflow/engine/js/processmap/core/processmap.js +++ b/workflow/engine/js/processmap/core/processmap.js @@ -958,7 +958,9 @@ var processmap=function(){ this.parent.dom.setStyle(task.object.elements.derivation,{ background:"" }); - task.derivation={to:[]}; + if (spec == false && typeof(rec) == 'undefined') { + task.derivation={to:[]}; + } /* Delete derivation recursive */ if(rec) @@ -1556,6 +1558,24 @@ var processmap=function(){ this.dropables.derivation.unregister(data.object.dropIndex); this.data.render.deleteDerivation(data.uid, true); this.parent.dom.remove(data.object.elements); + var taskUidDelete = this.data.db.task[data.object.dropIndex].uid; + for (var i= 0; i<(this.data.db.task).length;i++) { + for (var j= 0; j<(this.data.db.task[i]).length;j++) { + this.data.db.task[i] = this.data.db.task[i+1]; + } + var j = 0; + var itemDelete = (this.data.db.task[i]).derivation; + while (j < itemDelete.to.length) { + if (itemDelete.to[j].task == taskUidDelete) { + for (var k= j; k