Advertisement
yambroskin

Untitled

Nov 6th, 2018
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.32 KB | None | 0 0
  1. @using System
  2. @using System.Security.Policy
  3. @using System.Web
  4. @using EleWise.ELMA
  5. @using EleWise.ELMA.Workflow.Processes.Web.Models
  6. @using EleWise.ELMA.BPM.Web.Common.Extensions
  7. @using EleWise.ELMA.Web.Mvc.Models.Panels
  8. @using EleWise.ELMA.Web.Mvc.Html
  9. @inherits EleWise.ELMA.Web.Mvc.DynamicViewControl<Impeltech.Bank.Models.IRequestBankGuarantee>
  10. @{
  11.     var processes =
  12.         new HtmlString(
  13.             Newtonsoft.Json.JsonConvert.SerializeObject(
  14.                 Model.Processes
  15.                     .OrderByDescending(c => c.StartDate).ToList().ConvertAll(
  16.                         c => new
  17.                         {
  18.                             Id = c.Id,
  19.                             Name = c.Name,
  20.                             StartDate = c.StartDate.ToString(),
  21.                             ParentInstanceId = c.ParentInstance !=null? ((long?)c.ParentInstance.Id):null,
  22.                             ParentInstanceName = c.ParentInstance !=null? c.ParentInstance.Name : null,
  23.                             ParentInstanceUrl = c.ParentInstance != null ? Url.Entity(c.ParentInstance):"",
  24.                             Url = Url.Entity(c),
  25.                             ProcessName =c.Process.Name
  26.                         })));
  27.     }
  28. <style>
  29.     .proc-block {
  30.         margin-top: 20px;
  31.     border: 2px dashed #cbe2ff;
  32.     padding: 10px;
  33.     border-radius: 5px;
  34.     }
  35. </style>
  36. <script>
  37.     var processes =@processes;
  38. </script>
  39. <style>
  40.     #Tasks .collapsible-panel-header {
  41.         display: none;
  42.     }
  43. </style>
  44. <div id="ProcessesPanels">
  45.     @if (Model != null)
  46.     {
  47.         @(TabPanel("WorkflowInstanceInfoTabControl").Items(tabs =>
  48. {
  49.     tabs.Add(
  50.         new EleWise.ELMA.Web.Mvc.Models.Selectors.TabPanelItem()
  51.         {
  52.             Text = SR.T("Текущие задачи"),
  53.             Selected = true,
  54.         }).Content(@<text>
  55.         <div id="Tasks">
  56.         </div>
  57.         <script>
  58.     $(document).ready(function(){
  59.         if(processes.length>0){
  60.             AddOperations(0);
  61.         }
  62.     });
  63.     function AddOperations(i){
  64.         $.ajax({
  65.             item:i,
  66.             process:processes[i],
  67.             url:'@Url.Action("Operations", "WorkflowInstance", new { area = EleWise.ELMA.Workflow.Processes.Web.ProcessesRouteProvider.AreaName })'+'?id='+processes[i].Id +"&time=" + @DateTime.Now.Ticks,
  68.             success: function(data){
  69.                 var parentProcess = "";
  70.                 if (this.process.ParentInstanceId > 0) {
  71.                     parentProcess = "Родительский процесc: <a href='"+this.process.ParentInstanceUrl+"'>"+this.process.ParentInstanceName+"</a><a href='/Workflow/WorkflowInstance/Map/"+this.process.ParentInstanceId+"'>(карта)</a>";
  72.                 }
  73.                 var currentProcess =
  74.                     'Дата запуска: '+ this.process.StartDate+
  75.                     '<h3 style="margin-bottom: 0px;"><a href="'+this.process.Url+'">'+this.process.Name+'</a> (<a href="/Workflow/WorkflowInstance/Map/'+this.process.Id+'">Карта</a>)</h3>' +parentProcess+
  76.                     '<br/><br/> '+this.process.ProcessName+ ''+data;
  77.                 data =
  78.                     '<div style="margin-top:20px" class="proc-block">' +currentProcess+'</div>';
  79.                 $("#Tasks").append(data);
  80.                 this.item++;
  81.                 if(this.item<processes.length){
  82.                     AddOperations(this.item);
  83.                 }
  84.             }
  85.         });
  86.     }
  87.         </script>
  88.          </text>);
  89.     tabs.Add(
  90. new EleWise.ELMA.Web.Mvc.Models.Selectors.TabPanelItem()
  91.    {
  92.        Text = SR.T("История задач")
  93.    }).Content(@<text>
  94.     <div id="ClosedTasks">
  95.     </div>
  96.     <script>
  97.     $(document).ready(function(){
  98.         if(processes.length>0){
  99.             AddClosedTasks(0);
  100.         }
  101.     });
  102.     function AddClosedTasks(i){
  103.         $.ajax({
  104.             item:i,
  105.             process:processes[i],
  106.             url:'@Url.Action("TasksInfo", "WorkflowInstance", new { area = EleWise.ELMA.Workflow.Processes.Web.ProcessesRouteProvider.AreaName })'+'?workflowInstanceId='+processes[i].Id +"&time=" + @DateTime.Now.Ticks,
  107.             success: function(data){
  108.                 var parentProcess = "";
  109.                 if (this.process.ParentInstanceId > 0) {
  110.                     parentProcess = "Родительский процесc: <a href='"+this.process.ParentInstanceUrl+"'>"+this.process.ParentInstanceName+"</a><a href='/Workflow/WorkflowInstance/Map/"+this.process.ParentInstanceId+"'>(карта)</a>";
  111.                 }
  112.                 var currentProcess =
  113.                     'Дата запуска: '+ this.process.StartDate+
  114.                         '<h3 style="margin-bottom: 0px;"><a href="'+this.process.Url+'">'+this.process.Name+'</a> (<a href="/Workflow/WorkflowInstance/Map/'+this.process.Id+'">Карта</a>)</h3>' +parentProcess+
  115.                         '<br/><br/> '+this.process.ProcessName+ ''+data;
  116.                 data =
  117.                     '<div style="margin-top:20px" class="proc-block">' +currentProcess+'</div>';
  118.                 $("#ClosedTasks").append(data);
  119.                 this.item++;
  120.                 if(this.item<processes.length){
  121.                     AddClosedTasks(this.item);
  122.                 }
  123.             }
  124.         });
  125.     }
  126.     </script>  
  127. </text>);
  128. }).Render())
  129.     }
  130. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement