Changeset 13714
- Timestamp:
- 03/17/16 16:52:10 (9 years ago)
- Location:
- branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager
- Files:
-
- 4 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/JobController.cs
r13712 r13714 59 59 { 60 60 HiveClientWeb.Instance.Refresh(); 61 61 62 62 vm.userJobs = HiveClientWeb.Instance.Jobs.ToList(); 63 63 foreach(var j in vm.userJobs) … … 69 69 } 70 70 vm.selectedJob.RefreshAutomatically = true; 71 HiveClientWeb.LoadJob(vm.selectedJob); 71 HiveClientWeb.LoadJob(vm.selectedJob); 72 FileOpeningService.Instance.NewModel(); 73 FileOpeningService.Instance.Job = vm.selectedJob; 72 74 ViewBag.Title = vm.selectedJob.Job.Name + " - Jobs"; 73 75 return View("Index", vm); -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/JobUpdaterHub.cs
r13712 r13714 1 using Microsoft.AspNet.SignalR; 1 using HeuristicLab.Clients.Hive.WebJobManager.Services; 2 using Microsoft.AspNet.SignalR; 3 using Newtonsoft.Json; 2 4 using System; 3 5 using System.Collections.Generic; 4 6 using System.Linq; 5 7 using System.Threading.Tasks; 8 using HeuristicLab.Clients.Hive.WebJobManager.Services; 6 9 7 10 namespace HeuristicLab.Clients.Hive.WebJobManager … … 11 14 private RefreshableJob Job; 12 15 13 public void initConnection( RefreshableJob j)16 public void initConnection() 14 17 { 15 Job = j;18 Job = FileOpeningService.Instance.Job; 16 19 } 17 20 public void sendUpdate() … … 19 22 Clients.All.sendUpdate(); 20 23 } 24 public void updateAll() 25 { 26 FileOpeningService.Instance.refreshJob(); 27 Job = FileOpeningService.Instance.Job; 28 29 foreach (var t in Job.HiveTasks) 30 { 31 looperTasks(t); 32 } 33 Clients.All.requestDone(); 34 35 } 36 private void looperTasks(HiveTask task) 37 { 38 try 39 { 40 JsonSerializerSettings settings = new JsonSerializerSettings(); 41 settings.ContractResolver = new JsonTaskResolver(); 42 var json = JsonConvert.SerializeObject(task.Task, settings); 43 Clients.All.processData(task.Task.Id,json ); 44 foreach (var t in task.ChildHiveTasks) 45 { 46 looperTasks(t); 47 } 48 } 49 catch (JsonSerializationException e) { } 50 } 21 51 } 22 52 } -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Services/FileOpeningService.cs
r13696 r13714 38 38 Job.HiveTasks.Add(vm.SelectedTask); 39 39 } 40 public void refreshJob() 41 { 42 // HiveClientWeb.Instance.Refresh(); 43 HiveClientWeb.LoadJob(Job); 44 } 40 45 41 46 public RefreshableJob AddCurrentModelToHive() -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/Index.cshtml
r13712 r13714 88 88 89 89 </div> 90 <div class="row"> 91 <h3 style="padding-left:20px">Tasks</h3> 92 <script type="text/javascript"> 93 //TODO Globale variabele waar data per categorie in gestoken kan worden 94 </script> 90 91 <script src="~/js/scripts/graphs/graphdatacollector.js"></script> 92 <script src="~/js/scripts/graphs/graphhubber.js"></script> 93 94 <div class="row" > 95 <h3 style="padding-left:20px; ">Tasks</h3> 95 96 @foreach (var task in Model.selectedJob.HiveTasks) 96 97 { -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFilePartials/_AlgorithmSmall.cshtml
r13712 r13714 20 20 <div class="collapse" id="collapseExample@(randomal)" style="margin-left:10px;margin-right:10px;margin-top:-10px"> 21 21 <img src="~/img/accoladealg.png" style="width:100%;" /> 22 <div class="panel panel-primary" style="border-width:2px!important"> 22 <div class="panel panel-primary" style="border-width:2px!important; 23 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 24 text-shadow:none"> 23 25 <div class="panel-heading panel-primary text-center"> 24 26 <p>@Model.algo.Description</p> -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFilePartials/_BatchRunSmall.cshtml
r13712 r13714 22 22 </p> 23 23 <div class="collapse" 24 id="collapseExample@(randombr)" style="margin-left:10px;margin-right:10px;margin-top:-10px "> 24 id="collapseExample@(randombr)" 25 style="margin-left:10px;margin-right:10px;margin-top:-10px " 26 27 > 25 28 <img src="~/img/accoladebatch.png" style="width:100%" /> 26 <div class="panel panel-warning" style="border-color:#f6cd94!important; border-width:2px!important"> 29 <div class="panel panel-warning" 30 style="border-color:#f6cd94!important; border-width:2px!important; 31 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 32 text-shadow:2px 2px black"> 27 33 <div class="panel-heading text-center"> 28 34 <p class="panel-title"> -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/OpenFilePartials/_ExperimentSmall.cshtml
r13712 r13714 20 20 <div class="collapse" id="collapseExample@(randomex)" style="margin-left:10px;margin-right:10px;margin-top:-10px"> 21 21 <img src="~/img/accoladeexp.png" style="width:100%" /> 22 <div class="panel panel-danger" style="border-color:#c12e2a!important; border-width:2px!important"> 22 <div class="panel panel-danger" style="border-color:#c12e2a!important; border-width:2px!important; 23 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 24 text-shadow:2px 2px black"> 23 25 <div class="panel-heading panel-danger text-center"> 24 26 <p class="panel-title">Children: @Model.exp.Optimizers.Count</p> -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/SelectedJobPartials/_AlgTask.cshtml
r13712 r13714 1 1 @model HeuristicLab.Clients.Hive.WebJobManager.Models.HiveTaskContainer 2 2 @using Newtonsoft.Json; 3 <div class="panel panel-primary" style="border-width:2px!important"> 4 <div class="panel-heading" 3 <div class="panel panel-primary" 4 style="border-width:2px!important; 5 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 6 text-shadow:2px 2px black"> 7 <div class="panel-heading" 5 8 data-toggle="collapse" 6 9 data-target="#panbody@(Model.hiveTask.Task.Id)" 7 onclick="redraw alg('@(Model.hiveTask.Task.Id)')"8 aria-expanded="false"9 aria-controls="panbody@(Model.hiveTask.Task.Id)">10 <table class="table 10 onclick="redrawGraph('@(Model.hiveTask.Task.Id)')" 11 aria-expanded="false" 12 aria-controls="panbody@(Model.hiveTask.Task.Id)"> 13 <table class="table"> 11 14 <thead> 12 15 <tr> … … 36 39 <tbody> 37 40 <tr> 38 <td>Last update @Model.hiveTask.Task.LastTaskDataUpdate </td> 39 <td>State: @Model.hiveTask.Task.State</td> 41 <td id="lastupdpar@(Model.hiveTask.Task.Id)"> 42 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 43 </td> 44 <td id="statepar@(Model.hiveTask.Task.Id)" 45 > 46 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 47 </td> 40 48 41 49 </tr> 42 50 <tr> 43 <td>@Model.hiveTask.Task.ExecutionTime executed</td> 51 <td id="executionpar@(Model.hiveTask.Task.Id)"> 52 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 53 </td> 44 54 <td>Created: @Model.hiveTask.Task.DateCreated</td> 45 55 </tr> 46 56 <tr> 47 <td>Statelogs: @Model.hiveTask.Task.StateLog.Count</td> 57 <td></td> 58 <td id="statechangespar@(Model.hiveTask.Task.Id)"> 59 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 60 </td> 48 61 </tr> 49 62 </tbody> 50 63 </table> 51 64 </div> 52 <div class="panel-body " >65 <div class="panel-body " style="text-shadow:none"> 53 66 <div class="collapse" id="panbody@(Model.hiveTask.Task.Id)"> 54 <h4>From @Model.hiveTask.Task.StateLog.First().DateTime <br />to @Model.hiveTask.Task.StateLog.Last().DateTime </h4> 67 68 <input id="graphtoggle@(Model.hiveTask.Task.Id)" 69 type="checkbox" 70 data-toggle="toggle" 71 data-on="Line" 72 data-off="Pie" 73 onchange="redrawGraph('@(Model.hiveTask.Task.Id)')" /> 74 <h4 id="graphtitle@(Model.hiveTask.Task.Id)"> 75 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 76 </h4> 55 77 <div id="graph@(Model.hiveTask.Task.Id)"></div> 56 78 </div> 57 79 </div> 58 80 <script type="text/javascript"> 59 var temp = @Html.Raw(JsonConvert.SerializeObject(Model.hiveTask.Task.StateLog)); 60 var xarr = []; 61 var yarr = []; 62 var waiting = 0; 63 var transfer = 0; 64 var calc = 0; 65 for(var v = 0; v < temp.length; v++){ 66 xarr.push(temp[v].DateTime.substr(11,8)); 67 if(temp[v].State == 1){ 68 yarr.push("Waiting"); 69 if(v < (temp.length -1)) 70 waiting += Date.parse(temp[v+1].DateTime) - Date.parse(temp[v].DateTime); 71 } 72 else if(temp[v].State == 2){ 73 yarr.push("Transferring"); 74 if(v < (temp.length -1)) 75 transfer += Date.parse(temp[v+1].DateTime) - Date.parse(temp[v].DateTime); 76 } 77 else if(temp[v].State == 3){ 78 yarr.push("Calculating"); 79 if(v < (temp.length -1)) 80 calc += Date.parse(temp[v+1].DateTime) - Date.parse(temp[v].DateTime); 81 } 81 initSaveData("@(Model.hiveTask.Task.Id)", 82 @Html.Raw(JsonConvert.SerializeObject(Model.hiveTask.Task.StateLog))); 82 83 83 else if(temp[v].State == 5)84 yarr.push("Finished");85 else if(temp[v].State == 7)86 yarr.push("Failed");87 }88 89 var data = [{90 x: xarr,91 y: yarr,92 type:'scatter'93 }];94 var dats = [{95 values:[waiting/1000/60,transfer/1000/60,calc/1000/60],96 labels: ['Minutes waiting', 'Minutes transferring', 'Minutes calculating'],97 type:'pie'98 }];99 console.log(dats);100 84 document.getElementById("graph@(Model.hiveTask.Task.Id)").style = "width: 90%; height: 450px;"; 101 85 102 Plotly.newPlot('graph@(Model.hiveTask.Task.Id)', dats); 103 104 function redrawalg(val){ 105 setTimeout(function(){ 106 Plotly.redraw('graph' + val); 107 }, 100); 108 109 110 } 111 86 Plotly.newPlot('graph@(Model.hiveTask.Task.Id)', 87 getDataPie("@Model.hiveTask.Task.Id")); 112 88 </script> 113 89 </div> -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/SelectedJobPartials/_BatchTask.cshtml
r13712 r13714 1 1 @model HeuristicLab.Clients.Hive.WebJobManager.Models.HiveTaskContainer 2 2 @using Newtonsoft.Json; 3 <div class="panel panel-warning" style="border-color:#f6cd94!important; border-width:2px!important"> 3 <div class="panel panel-warning" style="border-color:#f6cd94!important; border-width:2px!important; 4 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 5 text-shadow:2px 2px black"> 4 6 <div class="panel-heading" 5 7 data-toggle="collapse" 6 8 data-target="#panbody@(Model.hiveTask.Task.Id)" 7 onclick="redraw bat('@(Model.hiveTask.Task.Id)')"8 aria-expanded="false"9 aria-controls="panbody@(Model.hiveTask.Task.Id)">9 onclick="redrawGraph('@(Model.hiveTask.Task.Id)')" 10 aria-expanded="false" 11 aria-controls="panbody@(Model.hiveTask.Task.Id)"> 10 12 <table class="table "> 11 13 <thead> … … 37 39 <tbody> 38 40 <tr> 39 <td>Last update @Model.hiveTask.Task.LastTaskDataUpdate </td> 40 <td>State: @Model.hiveTask.Task.State</td> 41 <td id="lastupdpar@(Model.hiveTask.Task.Id)"> 42 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 43 </td> 44 <td id="statepar@(Model.hiveTask.Task.Id)"> 45 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 46 </td> 41 47 42 48 </tr> 43 49 <tr> 44 <td>@Model.hiveTask.Task.ExecutionTime executed</td> 50 <td id="executionpar@(Model.hiveTask.Task.Id)"> 51 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 52 </td> 45 53 <td>Created: @Model.hiveTask.Task.DateCreated</td> 46 </tr>54 </tr> 47 55 <tr> 48 56 <td> … … 54 62 data-onstyle="success" /> 55 63 </td> 56 <td>Statelogs: @Model.hiveTask.Task.StateLog.Count</td> 64 <td id="statechangespar@(Model.hiveTask.Task.Id)"> 65 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 66 </td> 57 67 </tr> 58 68 </tbody> 59 69 </table> 60 70 </div> 61 <div class="panel-body " >71 <div class="panel-body " style="text-shadow:none"> 62 72 <div class="collapse" id="panbody@(Model.hiveTask.Task.Id)"> 63 <h4>From @Model.hiveTask.Task.StateLog.First().DateTime <br />to @Model.hiveTask.Task.StateLog.Last().DateTime </h4> 64 <div id="graph@(Model.hiveTask.Task.Id)"></div> 73 <input id="graphtoggle@(Model.hiveTask.Task.Id)" 74 type="checkbox" 75 data-toggle="toggle" 76 checked 77 data-on="Line" 78 data-off="Pie" 79 onchange="redrawGraph('@(Model.hiveTask.Task.Id)')"> 80 <h4 id="graphtitle@(Model.hiveTask.Task.Id)"> 81 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 82 </h4> 83 <div style="text-shadow:none" id="graph@(Model.hiveTask.Task.Id)"></div> 65 84 </div> 66 85 </div> … … 77 96 } 78 97 <script type="text/javascript"> 79 var temp = @Html.Raw(JsonConvert.SerializeObject(Model.hiveTask.Task.StateLog)); 80 var xarr = []; 81 var yarr = []; 82 for(var v = 0; v < temp.length; v++){ 83 xarr.push(temp[v].DateTime.substr(11,8)); 84 if(temp[v].State == 1) 85 yarr.push("Waiting"); 86 else if(temp[v].State == 2) 87 yarr.push("Transferring"); 88 else if(temp[v].State == 3) 89 yarr.push("Calculating"); 90 else if(temp[v].State == 5) 91 yarr.push("Finished"); 92 else if(temp[v].State == 7) 93 yarr.push("Failed"); 94 } 98 initSaveData("@(Model.hiveTask.Task.Id)", 99 @Html.Raw(JsonConvert.SerializeObject(Model.hiveTask.Task.StateLog))); 95 100 96 var data = [{97 x: xarr,98 y: yarr,99 type:'scatter'100 }];101 101 document.getElementById("graph@(Model.hiveTask.Task.Id)").style = "width: 90%; height: 450px;"; 102 102 103 Plotly.newPlot('graph@(Model.hiveTask.Task.Id)', data); 104 105 function redrawbat(val){ 106 setTimeout(function(){ 107 Plotly.newPlot('graph' + val,data); 108 }, 100); 109 110 111 } 103 Plotly.newPlot('graph@(Model.hiveTask.Task.Id)', 104 getData("@Model.hiveTask.Task.Id")); 112 105 113 106 </script> -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Job/SelectedJobPartials/_ExpTask.cshtml
r13712 r13714 2 2 @using Newtonsoft.Json; 3 3 4 <div class="panel panel-danger" style="border-color:#c12e2a!important; border-width:2px!important"> 4 <div class="panel panel-danger" 5 style="border-color:#c12e2a!important; border-width:2px!important; 6 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 7 text-shadow:2px 2px black" 8 > 5 9 <div class="panel-heading" 6 10 data-toggle="collapse" 7 11 data-target="#panbody@(Model.hiveTask.Task.Id)" 8 onclick="redraw exp('@(Model.hiveTask.Task.Id)')"12 onclick="redrawGraph('@(Model.hiveTask.Task.Id)')" 9 13 aria-expanded="false" 10 14 aria-controls="panbody@(Model.hiveTask.Task.Id)"> … … 38 42 <tbody> 39 43 <tr> 40 <td id="lastupd ate@(Model.hiveTask.Task.Id)">41 Last update @Model.hiveTask.Task.LastTaskDataUpdate44 <td id="lastupdpar@(Model.hiveTask.Task.Id)"> 45 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 42 46 </td> 43 <td id="state@(Model.hiveTask.Task.Id)">State: @Model.hiveTask.Task.State</td> 47 <td id="statepar@(Model.hiveTask.Task.Id)"> 48 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 49 </td> 44 50 45 51 </tr> 46 52 <tr> 47 <td id="exec time@(Model.hiveTask.Task.Id)">48 @Model.hiveTask.Task.ExecutionTime executed53 <td id="executionpar@(Model.hiveTask.Task.Id)"> 54 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 49 55 </td> 50 <td>Created: @Model.hiveTask.Task.DateCreated</td> 51 </tr> 56 <td>Created: @Model.hiveTask.Task.DateCreated</td> </tr> 52 57 <tr> 53 58 <td> … … 59 64 data-onstyle="success" /> 60 65 </td> 61 <td>Statelogs: @Model.hiveTask.Task.StateLog.Count</td> 66 <td id="statechangespar@(Model.hiveTask.Task.Id)"> 67 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 68 </td> 62 69 </tr> 63 70 </tbody> 64 71 </table> 65 72 </div> 66 <div class="panel-body " >73 <div class="panel-body " style="text-shadow:none"> 67 74 <div class="collapse" id="panbody@(Model.hiveTask.Task.Id)"> 68 <h4>From @Model.hiveTask.Task.StateLog.First().DateTime <br />to @Model.hiveTask.Task.StateLog.Last().DateTime </h4> 69 <div id="graph@(Model.hiveTask.Task.Id)"></div> 75 <input id="graphtoggle@(Model.hiveTask.Task.Id)" 76 type="checkbox" 77 data-toggle="toggle" 78 checked 79 data-on="Line" 80 data-off="Pie" 81 onchange="redrawGraph('@(Model.hiveTask.Task.Id)')"> 82 <h4 id="graphtitle@(Model.hiveTask.Task.Id)"> 83 <i class="fa fa-cog fa-spin fa-2x" id="spinner"></i> 84 </h4> 85 <div style="text-shadow:none" id="graph@(Model.hiveTask.Task.Id)"></div> 70 86 </div> 71 87 </div> … … 82 98 } 83 99 <script type="text/javascript"> 84 var temp = @Html.Raw(JsonConvert.SerializeObject(Model.hiveTask.Task.StateLog)); 85 var xarr = []; 86 var yarr = []; 87 for(var v = 0; v < temp.length; v++){ 88 xarr.push(temp[v].DateTime.substr(11,8)); 89 if(temp[v].State == 1) 90 yarr.push("Waiting"); 91 else if(temp[v].State == 2) 92 yarr.push("Transferring"); 93 else if(temp[v].State == 3) 94 yarr.push("Calculating"); 95 else if(temp[v].State == 5) 96 yarr.push("Finished"); 97 else if(temp[v].State == 7) 98 yarr.push("Failed"); 99 } 100 initSaveData("@(Model.hiveTask.Task.Id)", 101 @Html.Raw(JsonConvert.SerializeObject(Model.hiveTask.Task.StateLog))); 100 102 101 var data = [{102 x: xarr,103 y: yarr,104 type:'scatter'105 }];106 103 document.getElementById("graph@(Model.hiveTask.Task.Id)").style = "width: 90%; height: 450px;"; 107 104 108 Plotly.newPlot('graph@(Model.hiveTask.Task.Id)', data); 109 110 function redrawexp(val){ 111 setTimeout(function(){ 112 Plotly.newPlot('graph' + val,data); 113 }, 100); 114 115 116 } 117 105 Plotly.newPlot('graph@(Model.hiveTask.Task.Id)', 106 getData("@Model.hiveTask.Task.Id")); 118 107 </script> 119 108 </div> -
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/wwwroot/js/Scripts/hubber.js
r13712 r13714 10 10 }); 11 11 hubber.client.processMessage = function (message, value) { 12 /* if(value > 0){ 13 $("#progress").css("width", value + '%'); 14 $('#progress').attr('aria-valuenow', value); 15 } 16 else { 17 var v = $('#progress').attr('aria-valuenow') + (-value); 18 $("#progress").css("width", v + '%'); 19 $('#progress').attr('aria-valuenow', v); 20 }*/ 12 21 13 if (value > $('#progress').attr('aria-valuenow')) { 22 14 $("#progress").css("width", value + '%');
Note: See TracChangeset
for help on using the changeset viewer.