Changeset 12551 for branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients
- Timestamp:
- 06/30/15 13:12:07 (9 years ago)
- Location:
- branches/HiveStatistics/sources
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveStatistics/sources
-
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/clients.cshtml
r12525 r12551 3 3 <header class="view-header"> 4 4 <ul class="nav nav-list nav-list-topbar pull-left"> 5 <li>6 <a ng-href="#/statistics/jobs">Jobs</a>7 </li>8 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator))9 {10 5 <li> 11 <a ng-href="#/statistics/ users">Users</a>6 <a ng-href="#/statistics/jobs">Jobs</a> 12 7 </li> 13 } 14 <li class="active"> 15 <a ng-href="#/statistics/clients">Clients</a> 16 </li> 17 <li> 18 <a ng-href="#/statistics/groups">Groups</a> 19 </li> 8 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) 9 { 10 <li> 11 <a ng-href="#/statistics/users">Users</a> 12 </li> 13 } 14 <li class="active"> 15 <a ng-href="#/statistics/clients">Clients</a> 16 </li> 17 <li> 18 <a ng-href="#/statistics/groups">Groups</a> 19 </li> 20 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 21 <li> 22 <a ng-href="#/statistics/exceptions">Exceptions</a> 23 </li> 24 } 20 25 </ul> 21 26 </header> … … 37 42 <th>Cores</th> 38 43 <th>Cpu Utilization</th> 44 <th>Memory</th> 39 45 <th>State</th> 40 46 <th></th> … … 50 56 <td>{{client.UsedCores}} / {{client.TotalCores}}</td> 51 57 <td>{{client.CpuUtilization | number: 2}} %</td> 58 <td>{{client.UsedMemory | kbToGB}} / {{client.TotalMemory | kbToGB}} GB</td> 52 59 <td>{{client.State}}</td> 53 60 <td> … … 56 63 </tr> 57 64 <tr ng-hide="clientPage.Clients.length"> 58 <td colspan=" 6" class="text-center">No clients found!</td>65 <td colspan="7" class="text-center">No clients found!</td> 59 66 </tr> 60 67 </table> … … 82 89 <th>Cores</th> 83 90 <th>Cpu Utilization</th> 91 <th>Memory</th> 84 92 <th>State</th> 85 93 <th></th> … … 91 99 <td>{{client.UsedCores}} / {{client.TotalCores}}</td> 92 100 <td>{{client.CpuUtilization | number: 2}} %</td> 101 <td>{{client.UsedMemory | kbToGB}} / {{client.TotalMemory | kbToGB}} GB</td> 93 102 <td>{{client.State}}</td> 94 103 <td> … … 97 106 </tr> 98 107 <tr ng-hide="expiredClientPage.Clients.length"> 99 <td colspan=" 6" class="text-center">No expired clients found!</td>108 <td colspan="7" class="text-center">No expired clients found!</td> 100 109 </tr> 101 110 </table> -
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetails.cshtml
r12525 r12551 17 17 <a ng-href="#/statistics/groups">Groups</a> 18 18 </li> 19 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 20 <li> 21 <a ng-href="#/statistics/exceptions">Exceptions</a> 22 </li> 23 } 19 24 </ul> 20 25 </header> … … 46 51 <tr> 47 52 <td class="text-left">Up Time:</td> 48 <td>{{client.UpTime }}</td>53 <td>{{client.UpTime | toTimespan}}</td> 49 54 </tr> 50 55 <tr> 51 56 <td class="text-left">Last Update:</td> 52 <td>{{client.LastUpdate }}</td>57 <td>{{client.LastUpdate | toDate}}</td> 53 58 </tr> 54 59 </table> … … 58 63 <tr> 59 64 <td class="text-left">Total Unavailable Time:</td> 60 <td class="text-right">{{client.TotalUnavailableTime }}</td>65 <td class="text-right">{{client.TotalUnavailableTime | toTimespan}}</td> 61 66 </tr> 62 67 <tr> 63 68 <td class="text-left">Total Calculating Time:</td> 64 <td class="text-right">{{client.TotalCalculatingTime }}</td>69 <td class="text-right">{{client.TotalCalculatingTime | toTimespan}}</td> 65 70 </tr> 66 71 <tr> 67 72 <td class="text-left">Total Idle Time:</td> 68 <td class="text-right">{{client.TotalIdleTime }}</td>73 <td class="text-right">{{client.TotalIdleTime | toTimespan}}</td> 69 74 </tr> 70 75 <tr> 71 76 <td class="text-left">Total Transferring Time:</td> 72 <td class="text-right">{{client.TotalTransferringTime }}</td>77 <td class="text-right">{{client.TotalTransferringTime | toTimespan}}</td> 73 78 </tr> 74 79 <tr> 75 80 <td class="text-left">Total Offline Time:</td> 76 <td class="text-right">{{client.TotalOfflineTime }}</td>81 <td class="text-right">{{client.TotalOfflineTime | toTimespan}}</td> 77 82 </tr> 78 83 </table> … … 137 142 <knob knob-data="knobData.cpu" knob-options="knobOptions"></knob> 138 143 </div> 144 <table class="table table-no-border table-condensed table-auto-width table-content"> 145 <tr> 146 <td class="text-left"> </td> 147 <td class="text-right"> </td> 148 </tr> 149 <tr> 150 <td class="text-left"> </td> 151 <td class="text-right"> </td> 152 </tr> 153 </table> 139 154 </div> 140 155 </div> … … 153 168 <tr> 154 169 <td class="text-left">Total:</td> 155 <td class="text-right">{{client.TotalMemory | number}} GB</td>170 <td class="text-right">{{client.TotalMemory | kbToGB}} GB</td> 156 171 </tr> 157 172 <tr> 158 173 <td class="text-left">Used:</td> 159 <td class="text-right">{{client.UsedMemory | number}} GB</td>174 <td class="text-right">{{client.UsedMemory | kbToGB}} GB</td> 160 175 </tr> 161 176 </table> … … 163 178 </div> 164 179 </div> 165 166 180 </div> 167 181 </div> … … 169 183 <div id="tasks-filter" class="default-filter-header text-center"> 170 184 <form class="form-inline"> 171 <div class="form-group" >185 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 172 186 <div class="btn-group" data-toggle="buttons"> 173 187 <label class="btn btn-default" ng-class="{active: state.Selected}" ng-repeat="state in states" … … 175 189 <input type="checkbox" autocomplete="off" checked> {{state.State}} 176 190 </label> 191 </div> 192 </div> 193 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 194 <div class="btn-group" dropdown dropdown-append-to-body> 195 <button type="button" class="btn btn-default dropdown-toggle" dropdown-toggle> 196 {{curUserName}} <span class="caret"></span> 197 </button> 198 <ul class="dropdown-menu" role="menu"> 199 <li> 200 <a ng-href="#/statistics/clients/{{client.Id}}" 201 ng-click="userChanged('00000000-0000-0000-0000-000000000000', 'All Users')">All Users</a> 202 </li> 203 <li class="divider"></li> 204 <li ng-repeat="user in client.Users"> 205 <a ng-href="#/statistics/clients/{{client.Id}}" 206 ng-click="userChanged(user.Id, user.Name)">{{user.Name}}</a> 207 </li> 208 </ul> 177 209 </div> 178 210 </div> … … 210 242 </tr> 211 243 } 212 <tr> 213 <td>Start Time:</td> 214 <td class="text-right">{{task.StartTime}}</td> 215 </tr> 216 <tr> 217 <td>End Time:</td> 218 <td class="text-right">{{task.EndTime}}</td> 219 </tr> 244 <tr> 245 <td>Start Time:</td> 246 <td ng-show="task.StartTime" class="text-right">{{task.StartTime | toDate}}</td> 247 <td ng-hide="task.StartTime" class="text-right">Not started</td> 248 </tr> 249 <tr> 250 <td>End Time:</td> 251 <td ng-show="task.EndTime" class="text-right">{{task.EndTime | toDate}}</td> 252 <td ng-hide="task.EndTime" class="text-right">Not finished</td> 253 </tr> 220 254 <tr> 221 255 <td>Calculating Time:</td> 222 <td class="text-right">{{task.CalculatingTime }}</td>256 <td class="text-right">{{task.CalculatingTime | toTimespan}}</td> 223 257 </tr> 224 258 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) -
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetailsCtrl.js
r12516 r12551 4 4 ['$scope', '$stateParams', '$interval', 'app.statistics.clientService', 'app.statistics.taskService', '$modal', 5 5 function ($scope, $stateParams, $interval, clientService, taskService, $modal) { 6 $scope.curUserId = '00000000-0000-0000-0000-000000000000'; 7 $scope.curUserName = 'All Users'; 6 8 $scope.interval = defaultPageUpdateInterval; 7 9 $scope.curTaskPage = 1; … … 33 35 clientService.getClientDetails({ id: $stateParams.id }, function (client) { 34 36 $scope.client = client; 35 $scope.client.TotalMemory = Math.round($scope.client.TotalMemory / 1024);36 $scope.client.UsedMemory = Math.round($scope.client.UsedMemory / 1024);37 37 $scope.knobData.cores = (client.UsedCores / client.TotalCores) * 100; 38 38 $scope.knobData.cpu = client.CpuUtilization; 39 39 $scope.knobData.memory = (client.UsedMemory / client.TotalMemory) * 100; 40 $scope.client.LastUpdate = CSharpDateToString($scope.client.LastUpdate);41 $scope.client.UpTime = $scope.client.UpTime.toHHMMSS();42 $scope.client.TotalUnavailableTime = $scope.client.TotalUnavailableTime.toHHMMSS();43 $scope.client.TotalCalculatingTime = $scope.client.TotalCalculatingTime.toHHMMSS();44 $scope.client.TotalIdleTime = $scope.client.TotalIdleTime.toHHMMSS();45 $scope.client.TotalOfflineTime = $scope.client.TotalOfflineTime.toHHMMSS();46 $scope.client.TotalTransferringTime = $scope.client.TotalTransferringTime.toHHMMSS();47 40 48 41 var length = client.TasksStates.length; … … 84 77 } 85 78 86 taskService.getTasksByClientId({ id: $stateParams.id, page: $scope.curTaskPage, size: $scope.taskPageSize }, states,79 taskService.getTasksByClientId({ id: $stateParams.id, page: $scope.curTaskPage, size: $scope.taskPageSize, userId: $scope.curUserId }, states, 87 80 function (taskPage) { 88 81 $scope.taskPage = taskPage; 89 var length = $scope.taskPage.Tasks.length;90 for (var i = 0; i < length; ++i) {91 $scope.taskPage.Tasks[i].TotalTime = $scope.taskPage.Tasks[i].TotalTime.toHHMMSS();92 $scope.taskPage.Tasks[i].InitialWaitingTime = $scope.taskPage.Tasks[i].InitialWaitingTime.toHHMMSS();93 $scope.taskPage.Tasks[i].WaitingTime = $scope.taskPage.Tasks[i].WaitingTime.toHHMMSS();94 $scope.taskPage.Tasks[i].CalculatingTime = $scope.taskPage.Tasks[i].CalculatingTime.toHHMMSS();95 $scope.taskPage.Tasks[i].TransferTime = $scope.taskPage.Tasks[i].TransferTime.toHHMMSS();96 var startTime = $scope.taskPage.Tasks[i].StartTime;97 if (isDefined(startTime)) {98 $scope.taskPage.Tasks[i].StartTime = CSharpDateToString(startTime);99 } else {100 $scope.taskPage.Tasks[i].StartTime = 'Not started';101 }102 var endTime = $scope.taskPage.Tasks[i].EndTime;103 if (isDefined(endTime)) {104 $scope.taskPage.Tasks[i].EndTime = CSharpDateToString(endTime);105 } else {106 $scope.taskPage.Tasks[i].EndTime = 'Not finished';107 }108 }109 82 } 110 83 ); … … 121 94 state.Selected = !state.Selected; 122 95 $scope.curTaskPage = 1; 96 getClientDetails(); 97 }; 98 99 $scope.userChanged = function(id, name) { 100 $scope.curUserId = id; 101 $scope.curUserName = name; 123 102 getClientDetails(); 124 103 }; -
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientTaskDetailsDialog.cshtml
r12516 r12551 14 14 <tr> 15 15 <td>Start Time:</td> 16 <td class="text-right">{{task.StartTime}}</td> 16 <td ng-show="task.StartTime" class="text-left">{{task.StartTime | toDate}}</td> 17 <td ng-hide="task.StartTime" class="text-left">Not started</td> 17 18 </tr> 18 19 <tr> 19 20 <td>End Time:</td> 20 <td class="text-right">{{task.EndTime}}</td> 21 <td ng-show="task.EndTime" class="text-left">{{task.EndTime | toDate}}</td> 22 <td ng-hide="task.EndTime" class="text-left">Not finished</td> 21 23 </tr> 22 24 <tr> … … 58 60 <tr> 59 61 <td>Total Time:</td> 60 <td>{{task.TotalTime }}</td>62 <td>{{task.TotalTime | toTimespan}}</td> 61 63 </tr> 62 64 <tr> 63 65 <td>Initial Waiting Time:</td> 64 <td>{{task.InitialWaitingTime }}</td>66 <td>{{task.InitialWaitingTime | toTimespan}}</td> 65 67 </tr> 66 68 <tr> 67 69 <td>Waiting Time:</td> 68 <td>{{task.WaitingTime }}</td>70 <td>{{task.WaitingTime | toTimespan}}</td> 69 71 </tr> 70 72 <tr> 71 73 <td>Calculating Time:</td> 72 <td>{{task.CalculatingTime }}</td>74 <td>{{task.CalculatingTime | toTimespan}}</td> 73 75 </tr> 74 76 <tr> 75 77 <td>Transfer Time:</td> 76 <td>{{task.TransferTime }}</td>78 <td>{{task.TransferTime | toTimespan}}</td> 77 79 </tr> 78 80 </table> … … 82 84 <tr> 83 85 <td>Calculation Runs:</td> 84 <td >{{task.NumCalculationRuns}}</td>86 <td class="text-right">{{task.NumCalculationRuns}}</td> 85 87 </tr> 86 88 <tr> 87 89 <td>Retries Runs:</td> 88 <td >{{task.NumRetries}}</td>90 <td class="text-right">{{task.NumRetries}}</td> 89 91 </tr> 90 92 <tr> 91 93 <td>Cores Required:</td> 92 <td >{{task.CoresRequired}}</td>94 <td class="text-right">{{task.CoresRequired}}</td> 93 95 </tr> 94 96 <tr> 95 97 <td>Memory Required:</td> 96 <td >{{task.MemoryRequired}}</td>98 <td class="text-right">{{task.MemoryRequired}} MB</td> 97 99 </tr> 98 100 <tr> 99 101 <td>Priority:</td> 100 <td >{{task.Priority}}</td>102 <td class="text-right">{{task.Priority}}</td> 101 103 </tr> 102 104 </table>
Note: See TracChangeset
for help on using the changeset viewer.