mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-05-10 15:48:01 +08:00
3 lines
77 KiB
JavaScript
3 lines
77 KiB
JavaScript
![]() |
function WorkflowDesigner(e){var t=this;this.Settings=e,this.GetName=function(){return t.Settings.name},this.error=function(e){alert(e)},this.load=function(e){var i=new Array;this.schemecode=e.schemecode,this.processid=e.processid,this.schemeid=e.schemeid,this.readonly=e.readonly,i.push({name:"schemecode",value:this.schemecode}),i.push({name:"processid",value:this.processid}),i.push({name:"schemeid",value:this.schemeid}),i.push({name:"operation",value:"load"});$.ajax({url:this.Settings.apiurl,data:i,async:!0,success:function(e){var i={};try{i=JSON.parse(e)}catch(n){return void t.error(e)}return i.isError?void t.error(i.errorMessage):(t.data=i,void t.render())},error:function(e,i,n){t.error(i+" "+n)}})},this.exists=function(e){var i=new Array;this.schemecode=e.schemecode,this.processid=e.processid,this.schemeid=e.schemeid,this.readonly=e.readonly,i.push({name:"schemecode",value:this.schemecode}),i.push({name:"processid",value:this.processid}),i.push({name:"schemeid",value:this.schemeid}),i.push({name:"operation",value:"exists"});var n=$.ajax({url:this.Settings.apiurl,data:i,async:!1,error:function(e,i,n){t.error(i+" "+n)}}).responseText;try{return JSON.parse(n)}catch(o){return t.error(n),!1}},this.create=function(){var e=new Array;e.push({name:"operation",value:"load"});$.ajax({url:this.Settings.apiurl,data:e,async:!0,success:function(e){try{t.data=JSON.parse(e)}catch(i){t.error(e)}t.render()}})},this.render=function(){t.Graph&&t.Graph.destroy(),t.Graph=new WorkflowGraph(this.Settings.renderTo,t,t.Settings,[WorkflowDesignerBackground,WorkflowDesignerToolbar,WorkflowDesignerActivity,WorkflowDesignerTransition,WorkflowDesignerKeyboard]),WorkflowDesignerCommon.DataCorrection(t.data),t.Graph.Draw(t.data)},this.save=function(e){if(t.readonly)return void alert(WorkflowDesignerConstants.ErrorReadOnlySaveText);var i=new Array;i.push({name:"schemecode",value:this.schemecode}),i.push({name:"processid",value:this.processid}),i.push({name:"schemeid",value:this.schemeid}),i.push({name:"operation",value:"save"}),i.push({name:"data",value:JSON.stringify(this.data)});$.ajax({url:this.Settings.apiurl,data:i,async:!0,type:"post",success:function(i){var n={};try{n=JSON.parse(i)}catch(o){return void t.error(i)}return n.isError?void t.error(n.errorMessage):(t.data=n,t.render(),void(e&&setTimeout(function(){e(t)},100)))}})},this.downloadscheme=function(e){var t=new Array;t.push({name:"operation",value:"downloadscheme"}),t.push({name:"data",value:JSON.stringify(this.data)}),WorkflowDesignerCommon.download(this.Settings.apiurl,t,"post")},this.uploadscheme=function(e,i){var n=this.GetName()+"_uploadiframe",o=document.createElement("iframe");o.setAttribute("id",n),o.setAttribute("name",n),o.setAttribute("width","0"),o.setAttribute("height","0"),o.setAttribute("border","0"),o.setAttribute("style","width: 0; height: 0; border: none;"),e.parentNode.appendChild(o),window.frames[n].name=n,iframeId=document.getElementById(n);var r=function(){iframeId.detachEvent?iframeId.detachEvent("onload",r):iframeId.removeEventListener("load",r,!1),iframeId.contentDocument?content=iframeId.contentDocument.body.innerHTML:iframeId.contentWindow?content=iframeId.contentWindow.document.body.innerHTML:iframeId.document&&(content=iframeId.document.body.innerHTML),setTimeout("iframeId.parentNode.removeChild(iframeId)",250);var e={};try{e=JSON.parse(content)}catch(n){return void t.error(content)}return e.isError?void t.error(e.errorMessage):(t.data=e,t.render(),void(i&&i(t)))};iframeId.addEventListener&&iframeId.addEventListener("load",r,!0),iframeId.attachEvent&&iframeId.attachEvent("onload",r),e.setAttribute("target",n),e.setAttribute("action",this.createurl("uploadscheme")),e.setAttribute("method","post"),e.setAttribute("enctype","multipart/form-data"),e.setAttribute("encoding","multipart/form-data"),e.submit()},this.createurl=function(e){var t=this.Settings.apiurl,i="?";return t.indexOf("?")>=0&&(i="&"),t+=i+"operation="+e,i="&",void 0!=this.schemeid&&(t+=i+"schemeid="+this.schemeid),void 0!=this.processid&&(t+=i+"processid="+this.processid),void 0!=this.schemecode&&(t
|
||
|
var d=a[s];if(void 0!=d.InputParameters)for(var l=0;l<d.InputParameters.length;l++)if(d.InputParameters[l].control_DefaultValue.id===i.id){r=d.InputParameters[l].Parameter.Name;break}}if(void 0!=r)for(var c=t.designer.data.Parameters,s=0;s<c.length;s++)if(c[s].Name===r){o=c[s].Type;break}void 0!=o&&t.designer.designer.getemptytype(o,n)},n={type:"table",title:e.Title,width:"900px",data:this.designer.data.Commands,datadefault:{},keyproperty:"Name",elements:[{name:e.Name,field:"Name",type:"input"},{name:e.InputParameters,field:"InputParameters",type:"table",elements:[{name:e.InputParametersName,code:"ipname",field:"Name",type:"input"},{name:e.InputParametersParameter,code:"ipparameter",field:"Parameter.Name",type:"select",displayfield:"Name",datasource:this.designer.getNonSystemParameters()},{name:e.InputParametersIsRequired,code:"iisrequired",field:"IsRequired",type:"checkbox"},{name:e.InputParametersDefaultValue,code:"idefaultvalue",field:"DefaultValue",type:"json",width:"40%",getemptytype:i}]}]},o=new WorkflowDesignerForm(n),r=function(e,t){var i=!0;return i&=e.CheckRequired(t,["Name"],WorkflowDesignerConstants.FieldIsRequired),i&=e.CheckUnique(t,["Name"],WorkflowDesignerConstants.FieldMustBeUnique),t.forEach(function(t){e.CheckRequired(t.InputParameters,["Name","Parameter.Name"],WorkflowDesignerConstants.FieldIsRequired)||(i=!1)}),i},a=function(e){return r(o,e)?(o.ClearTempField(e),t.SyncTable(t.designer.data.Commands,e,n),WorkflowDesignerCommon.DataCorrection(t.designer.data),t.GraphRedrawAll(),!0):!1};o.showModal(a)},this.EditAdditionalParameters=function(){var e=WorkflowDesignerConstants.AdditionalParamsFormLabel,t={type:"form",title:e.Title,width:"800px",data:this.designer.data.AdditionalParams,readonly:!0,elements:[{name:e.IsObsolete,field:"IsObsolete",type:"checkbox"},{name:e.DefiningParameters,field:"DefiningParameters",type:"textarea"},{name:e.ProcessParameters,field:"ProcessParameters",type:"table",elements:[{name:e.ProcessParametersName,field:"Name",type:"input"},{name:e.ProcessParametersValue,field:"Value",type:"input"}]}]},i=new WorkflowDesignerForm(t),n=function(e,t){return!0};i.showModal(n)},this.Items=[{title:WorkflowDesignerConstants.ToolbarLabel.CreateActivity,img:"designer.tb.add.png",click:function(){e.CreateActivity()}},{title:WorkflowDesignerConstants.ToolbarLabel.CopySelected,img:"designer.tb.copy.png",click:function(){e.CopySelected()}},{title:WorkflowDesignerConstants.ButtonTextDelete,img:"designer.tb.delete.png",click:function(){e.designer.DeleteSelected()}},{separator:!0},{title:WorkflowDesignerConstants.ToolbarLabel.Move,img:"designer.tb.move.png",code:"move",click:function(){e.ToolbarMovePress()}},{title:WorkflowDesignerConstants.ToolbarLabel.ZoomIn,img:"designer.tb.zoomIn.png",click:function(){e.designer.GraphLayerScale(.1)}},{title:WorkflowDesignerConstants.ToolbarLabel.ZoomOut,img:"designer.tb.zoomOut.png",click:function(){e.designer.GraphLayerScale(-.1)}},{title:WorkflowDesignerConstants.ToolbarLabel.ZoomPositionDefault,img:"designer.tb.zoomnorm.png",click:function(){e.designer.GraphLayerScaleNorm()}},{title:WorkflowDesignerConstants.ToolbarLabel.AutoArrangement,img:"designer.tb.arrangment.png",click:function(){e.AutoArrangement()}},{separator:!0},{title:WorkflowDesignerConstants.ToolbarLabel.Actors,img:"designer.tb.actor.png",click:function(){e.EditActors()}},{title:WorkflowDesignerConstants.ToolbarLabel.Commands,img:"designer.tb.command.png",click:function(){e.EditCommands()}},{title:WorkflowDesignerConstants.ToolbarLabel.Parameters,img:"designer.tb.parameter.png",click:function(){e.EditParameters()}},{title:WorkflowDesignerConstants.ToolbarLabel.Localization,img:"designer.tb.locale.png",click:function(){e.EditLocalization()}},{title:WorkflowDesignerConstants.ToolbarLabel.Timers,img:"designer.tb.timer.png",click:function(){e.EditTimer()}},{title:WorkflowDesignerConstants.ToolbarLabel.CodeActions,img:"designer.tb.codeactions.png",click:function(){e.EditCodeActions()}},{title:WorkflowDesignerConstants.ToolbarLabel.AdditionalParameters,img:"designer.tb.additionalparameters.png",click:func
|
||
|
click:function(){for(var e=o.getEditData(o.parameters),t=void 0,i=0;i<e.length;i++)if(e[i].control_ActionCode.id==r[0].id){t=e[i];break}if(void 0!=t){t.ActionCode=encodeURIComponent(ace.edit(r[0].id+"_editor").getValue()),t.Usings=encodeURIComponent($("#"+r[0].id+"_usingsedit")[0].value.replace(/(\r\n|\n|\r)/gm,""));var n=function(e){$('<div title="'+(e.Success?WorkflowDesignerConstants.EditCodeLabel.Success:WorkflowDesignerConstants.EditCodeLabel.Error)+'">'+(e.Success?WorkflowDesignerConstants.EditCodeLabel.CompileSucceeded:e.Message)+"</div>").dialog({modal:!0,height:e.Success?WorkflowDesignerConstants.EditCodeSettingsSuccessBoxHeight:WorkflowDesignerConstants.EditCodeSettings.MessageBoxHeight,width:e.Success?WorkflowDesignerConstants.EditCodeSettings.SuccessBoxWidth:WorkflowDesignerConstants.EditCodeSettings.MessageBoxWidth,buttons:{ok:{text:WorkflowDesignerConstants.EditCodeLabel.OK,click:function(){$(this).dialog("close")}}}})};o.parameters.designer.designer.compile(t,n)}}}},close:function(){r[0].code={},r[0].code.code=ace.edit(r[0].id+"_editor").getValue(),r[0].code.usings=$("#"+r[0].id+"_usingsedit")[0].value.replace(/(\r\n|\n|\r)/gm,"")}});$("#"+r[0].id+"_usingsedit")[0].value=o.htmlEncode(o.modifyUsingString(r[0].code.usings)),$("#"+r[0].id+"_usings").accordion({collapsible:!0,active:!1,heightStyle:"content"});var n=$("#"+o.generateid("Type",i))[0].value.toLowerCase(),a=$("#"+o.generateid("Name",i))[0].value;""===a&&(a="???");var s="{";"action"===n&&(s="void "+a+" (ProcessInstance processInstance, WorkflowRuntime runtime, string parameter) {"),"condition"===n&&(s="bool "+a+" (ProcessInstance processInstance, WorkflowRuntime runtime, string parameter) {"),"ruleget"===n&&(s="IEnumerable<string> "+a+" (ProcessInstance processInstance, WorkflowRuntime runtime, string parameter) {"),"rulecheck"===n&&(s="bool "+a+" (ProcessInstance processInstance, WorkflowRuntime runtime, string identityId, string parameter) {"),$("#"+r[0].id+"_function_upper").html(s);var l=ace.edit(r[0].id+"_editor");l.getSession().setMode("ace/mode/csharp"),t.dialog("open")}),r}if("checkbox"==e.type){var r=$('<input style="width: 100%;"></input>');return r[0].type="checkbox",r[0].id=this.generateid(e.field,i),r[0].checked=t,r[0].name=o.getElementCode(e),o.isReadOnly()&&r.attr("disabled","disabled"),r}if("select"==e.type){var r=$('<select style="width: 100%;"></select>');return r[0].id=this.generateid(e.field,i),r[0].name=o.getElementCode(e),r.append($("<option></option>")),void 0!=e.datasource&&e.datasource.forEach(function(i){var n=$("<option></option>");void 0==e.displayfield?(n[0].value=i,n[0].innerHTML=i):(n[0].value=i[e.displayfield],n[0].innerHTML=i[e.displayfield]),n[0].value==t&&(n[0].selected="selected"),o.isReadOnly()&&r.attr("readonly",!0),r.append(n)}),r}if("textarea"==e.type){var r=$('<textarea rows="6" style="width: 100%;"></textarea>');return r[0].id=o.generateid(e.field,i),r[0].name=o.getElementCode(e),void 0!=t&&(r[0].value=t),this.isReadOnly()&&r.attr("readonly",!0),r}},this.modifyUsingString=function(e){var t=e.substring(e.length-1);return";"===t&&(e=e.substring(0,e.length-1)),e.split(";").join(";\r\n")+";"},this.getEasyControlValue=function(e){return"input"==e.type?e.control.value:"json"==e.type?e.control.value:"code"==e.type?e.control.code:"checkbox"==e.type?e.control.checked:"select"==e.type?e.control.value:"textarea"==e.type?e.control.value:void 0},this.generateid=function(e,t){return t?e+"_"+t+"_"+this.id:e+"_"+this.id},this.GetValueByPropertyName=function(e,t){if(void 0!=e){if(t.indexOf(".")<0)return e[t];var i=e;return t.split(".").forEach(function(e){void 0!=i&&(i=i[e])}),i}},this.SetValueByPropertyName=function(e,t,i){if(t.indexOf(".")<0)return e[t]=i;for(var n=e,o=t.split("."),r=0;r<o.length;r++){var a=o[r];r==o.length-1?n[a]=i:(void 0==n[a]&&(n[a]={}),n=n[a])}},this.ClearError=function(){var e=this.window.find(".field-validation-error");e.attr("title",""),e.removeClass("field-validation-error")},this.ControlAddError=function(e,t){var i=$(e);i.addClass("field-validation-error"),i.attr("title",t)},this.CheckRequ
|