- Timestamp:
- 07/16/15 15:09:12 (9 years ago)
- Location:
- branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApi/TaskController.cs
r12584 r12768 35 35 36 36 namespace HeuristicLab.Services.WebApp.Statistics.WebApi { 37 [Authorize] 37 38 public class TaskController : ApiController { 38 39 private IPersistenceManager PersistenceManager { -
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetails.cshtml
r12584 r12768 181 181 </div> 182 182 183 <div class="default-filter-header text-center"> 184 <form class="form-inline"> 185 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 186 <label for="fromDate">From: </label> 187 <div class="input-group"> 188 <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="fromDate" is-open="fromIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close" /> 189 <span class="input-group-btn"> 190 <button type="button" class="btn btn-default" ng-click="openFromDateSelection($event)"><i class="glyphicon glyphicon-calendar"></i></button> 191 </span> 192 </div> 193 </div> 194 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 195 <label for="fromDate">To: </label> 196 <div class="input-group"> 197 <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="toDate" is-open="toIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close" /> 198 <span class="input-group-btn"> 199 <button type="button" class="btn btn-default" ng-click="openToDateSelection($event)"><i class="glyphicon glyphicon-calendar"></i></button> 200 </span> 201 </div> 202 </div> 203 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 204 <button type="button" class="btn btn-default" ng-click="updateCharts()"> 205 Apply 206 </button> 207 </div> 208 </form> 209 </div> 210 211 <div class="default-view-container"> 212 <div class="row"> 213 <div class="col-lg-12"> 214 <div class="panel panel-default"> 215 <div class="panel-heading"> 216 <h3 class="panel-title">CPU Utilization Chart</h3> 217 </div> 218 <div class="panel-body"> 219 <flot dataset="cpuSeries" options="chartOptions"></flot> 220 </div> 221 </div> 222 </div> 223 </div> 224 225 <div class="row"> 226 <div class="col-lg-12"> 227 <div class="panel panel-default"> 228 <div class="panel-heading"> 229 <h3 class="panel-title">Core Chart</h3> 230 </div> 231 <div class="panel-body"> 232 <flot dataset="coreSeries" options="fillChartOptions"></flot> 233 </div> 234 </div> 235 </div> 236 </div> 237 238 <div class="row"> 239 <div class="col-lg-12"> 240 <div class="panel panel-default"> 241 <div class="panel-heading"> 242 <h3 class="panel-title">Memory Chart</h3> 243 </div> 244 <div class="panel-body"> 245 <flot dataset="memorySeries" options="fillChartOptions"></flot> 246 </div> 247 </div> 248 </div> 249 </div> 250 </div> 251 183 252 <div id="tasks-filter" class="default-filter-header text-center"> 184 253 <form class="form-inline"> … … 212 281 </div> 213 282 214 <div class="default-view-container"> 215 <div id="taskListContainer" class="row" ng-show="taskPage.Tasks.length"> 216 <div class="col-lg-4 col-md-4" ng-repeat="task in taskPage.Tasks"> 217 <div class="panel panel-default"> 218 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 219 <div class="panel-heading cursor-pointer" ng-click="openDialog(($index + 1)+((curTaskPage-1)*(taskPageSize)), task)"> 220 <h3 class="panel-title" style="display: inline">Task {{($index + 1)+((curTaskPage-1)*(taskPageSize))}}</h3> 221 <span ng-if="task.State == 'Finished'" class="label label-success" style="float: right;">{{task.State}}</span> 222 <span ng-if="task.State == 'Aborted' || task.State == 'Failed'" class="label label-danger" style="float: right;">{{task.State}}</span> 223 <span ng-if="task.State == 'Waiting'" class="label label-warning" style="float: right;">{{task.State}}</span> 224 <span ng-if="task.State != 'Waiting' && task.State != 'Failed' && task.State != 'Aborted' && task.State != 'Finished'" class="label label-default" style="float: right;">{{task.State}}</span> 225 </div> 226 } else { 227 <div class="panel-heading"> 228 <h3 class="panel-title" style="display: inline">Task {{($index + 1)+((curTaskPage-1)*(taskPageSize))}}</h3> 229 <span ng-if="task.State == 'Finished'" class="label label-success" style="float: right;">{{task.State}}</span> 230 <span ng-if="task.State == 'Aborted' || task.State == 'Failed'" class="label label-danger" style="float: right;">{{task.State}}</span> 231 <span ng-if="task.State == 'Waiting'" class="label label-warning" style="float: right;">{{task.State}}</span> 232 <span ng-if="task.State != 'Waiting' && task.State != 'Failed' && task.State != 'Aborted' && task.State != 'Finished'" class="label label-default" style="float: right;">{{task.State}}</span> 233 </div> 234 } 235 236 <div class="panel-body"> 237 <table class="table table-condensed table-no-border table-auto-width"> 238 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 239 <tr> 240 <td colspan="2"><span data-fittext="0.99">{{task.Id}}</span></td> 241 </tr> 242 } 243 <tr> 244 <td>Start Time:</td> 245 <td ng-show="task.StartTime" class="text-right">{{task.StartTime | toDate}}</td> 246 <td ng-hide="task.StartTime" class="text-right">Not started</td> 247 </tr> 248 <tr> 249 <td>End Time:</td> 250 <td ng-show="task.EndTime" class="text-right">{{task.EndTime | toDate}}</td> 251 <td ng-hide="task.EndTime" class="text-right">Not finished</td> 252 </tr> 253 <tr> 254 <td>Calculating Time:</td> 255 <td class="text-right">{{task.CalculatingTime | toTimespan}}</td> 256 </tr> 257 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 258 <tr> 259 <td>User:</td> 260 <td class="text-right"> 261 <a ng-href="#/statistics/users/{{task.UserId}}" ng-show="task.UserName">{{task.UserName}}</a> 262 <span ng-hide="task.UserName">Unknown</span> 263 </td> 264 </tr> 265 <tr> 266 <td>Job:</td> 267 <td class="text-right"> 268 <a ng-href="#/statistics/jobs/{{task.JobId}}" ng-show="task.JobName">{{task.JobName}}</a> 269 <span ng-hide="task.JobName">Unknown</span> 270 </td> 271 </tr> 272 } 273 </table> 274 </div> 275 276 </div> 277 </div> 278 </div> 279 <div ng-hide="taskPage.Tasks.length"> 280 <p class="text-center">Please select at least one state!</p> 281 </div> 282 <div class="row text-center" ng-show="taskPage.TotalTasks > taskPage.Tasks.length"> 283 <pagination max-size="10" total-items="taskPage.TotalTasks" ng-model="curTaskPage" ng-change="changeTaskPage()" items-per-page="taskPageSize" 284 boundary-links="true" rotate="false" num-pages="numPages"></pagination> 285 </div> 286 </div> 287 288 <div class="default-filter-header text-center"> 289 <form class="form-inline"> 290 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 291 <label for="fromDate">From: </label> 292 <div class="input-group"> 293 <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="fromDate" is-open="fromIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close" /> 294 <span class="input-group-btn"> 295 <button type="button" class="btn btn-default" ng-click="openFromDateSelection($event)"><i class="glyphicon glyphicon-calendar"></i></button> 296 </span> 297 </div> 298 </div> 299 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 300 <label for="fromDate">To: </label> 301 <div class="input-group"> 302 <input id="fromDate" type="text" class="form-control" datepicker-popup="dd.MM.yyyy" ng-model="toDate" is-open="toIsOpen" datepicker-options="dateOptions" ng-required="true" close-text="Close" /> 303 <span class="input-group-btn"> 304 <button type="button" class="btn btn-default" ng-click="openToDateSelection($event)"><i class="glyphicon glyphicon-calendar"></i></button> 305 </span> 306 </div> 307 </div> 308 <div class="form-group" style="margin-left: 5px; margin-right: 5px;"> 309 <button type="button" class="btn btn-default" ng-click="updateCharts()"> 310 Apply 311 </button> 312 </div> 313 </form> 314 </div> 315 316 <div class="default-view-container"> 317 <div class="row"> 318 <div class="col-lg-12"> 319 <div class="panel panel-default"> 320 <div class="panel-heading"> 321 <h3 class="panel-title">CPU Utilization Chart</h3> 322 </div> 323 <div class="panel-body"> 324 <flot dataset="cpuSeries" options="chartOptions"></flot> 325 </div> 326 </div> 327 </div> 328 </div> 329 330 <div class="row"> 331 <div class="col-lg-12"> 332 <div class="panel panel-default"> 333 <div class="panel-heading"> 334 <h3 class="panel-title">Core Chart</h3> 335 </div> 336 <div class="panel-body"> 337 <flot dataset="coreSeries" options="fillChartOptions"></flot> 338 </div> 339 </div> 340 </div> 341 </div> 342 343 <div class="row"> 344 <div class="col-lg-12"> 345 <div class="panel panel-default"> 346 <div class="panel-heading"> 347 <h3 class="panel-title">Memory Chart</h3> 348 </div> 349 <div class="panel-body"> 350 <flot dataset="memorySeries" options="fillChartOptions"></flot> 351 </div> 352 </div> 353 </div> 354 </div> 355 </div> 283 <div class="default-view-container"> 284 <div id="taskListContainer" class="row" ng-show="taskPage.Tasks.length"> 285 <div class="col-lg-4 col-md-4" ng-repeat="task in taskPage.Tasks"> 286 <div class="panel panel-default"> 287 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 288 <div class="panel-heading cursor-pointer" ng-click="openDialog(($index + 1)+((curTaskPage-1)*(taskPageSize)), task)"> 289 <h3 class="panel-title" style="display: inline">Task {{($index + 1)+((curTaskPage-1)*(taskPageSize))}}</h3> 290 <span ng-if="task.State == 'Finished'" class="label label-success" style="float: right;">{{task.State}}</span> 291 <span ng-if="task.State == 'Aborted' || task.State == 'Failed'" class="label label-danger" style="float: right;">{{task.State}}</span> 292 <span ng-if="task.State == 'Waiting'" class="label label-warning" style="float: right;">{{task.State}}</span> 293 <span ng-if="task.State != 'Waiting' && task.State != 'Failed' && task.State != 'Aborted' && task.State != 'Finished'" class="label label-default" style="float: right;">{{task.State}}</span> 294 </div> 295 } else { 296 <div class="panel-heading"> 297 <h3 class="panel-title" style="display: inline">Task {{($index + 1)+((curTaskPage-1)*(taskPageSize))}}</h3> 298 <span ng-if="task.State == 'Finished'" class="label label-success" style="float: right;">{{task.State}}</span> 299 <span ng-if="task.State == 'Aborted' || task.State == 'Failed'" class="label label-danger" style="float: right;">{{task.State}}</span> 300 <span ng-if="task.State == 'Waiting'" class="label label-warning" style="float: right;">{{task.State}}</span> 301 <span ng-if="task.State != 'Waiting' && task.State != 'Failed' && task.State != 'Aborted' && task.State != 'Finished'" class="label label-default" style="float: right;">{{task.State}}</span> 302 </div> 303 } 304 305 <div class="panel-body"> 306 <table class="table table-condensed table-no-border table-auto-width"> 307 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 308 <tr> 309 <td colspan="2"><span data-fittext="0.99">{{task.Id}}</span></td> 310 </tr> 311 } 312 <tr> 313 <td>Start Time:</td> 314 <td ng-show="task.StartTime" class="text-right">{{task.StartTime | toDate}}</td> 315 <td ng-hide="task.StartTime" class="text-right">Not started</td> 316 </tr> 317 <tr> 318 <td>End Time:</td> 319 <td ng-show="task.EndTime" class="text-right">{{task.EndTime | toDate}}</td> 320 <td ng-hide="task.EndTime" class="text-right">Not finished</td> 321 </tr> 322 <tr> 323 <td>Calculating Time:</td> 324 <td class="text-right">{{task.CalculatingTime | toTimespan}}</td> 325 </tr> 326 @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) { 327 <tr> 328 <td>User:</td> 329 <td class="text-right"> 330 <a ng-href="#/statistics/users/{{task.UserId}}" ng-show="task.UserName">{{task.UserName}}</a> 331 <span ng-hide="task.UserName">Unknown</span> 332 </td> 333 </tr> 334 <tr> 335 <td>Job:</td> 336 <td class="text-right"> 337 <a ng-href="#/statistics/jobs/{{task.JobId}}" ng-show="task.JobName">{{task.JobName}}</a> 338 <span ng-hide="task.JobName">Unknown</span> 339 </td> 340 </tr> 341 } 342 </table> 343 </div> 344 345 </div> 346 </div> 347 </div> 348 <div ng-hide="taskPage.Tasks.length"> 349 <p class="text-center">Please select at least one state!</p> 350 </div> 351 <div class="row text-center" ng-show="taskPage.TotalTasks > taskPage.Tasks.length"> 352 <pagination max-size="10" total-items="taskPage.TotalTasks" ng-model="curTaskPage" ng-change="changeTaskPage()" items-per-page="taskPageSize" 353 boundary-links="true" rotate="false" num-pages="numPages"></pagination> 354 </div> 355 </div> 356 -
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientTaskDetailsDialog.cshtml
r12551 r12768 105 105 </div> 106 106 </div> 107 <div class="row"> 108 <div class="col-md-12"> 109 <table class="table table-condensed table-no-border table-auto-width table-content"> 110 <tr> 111 <td><a href="api/Statistics/Task/GetTaskDataById?id={{task.Id}}">Download</a></td> 112 </tr> 113 </table> 114 </div> 115 </div> 107 116 </div> 108 117 </tab> -
branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/details/jobTaskDetailsDialog.cshtml
r12551 r12768 84 84 </div> 85 85 </div> 86 <div class="row"> 87 <div class="col-md-12"> 88 <table class="table table-condensed table-no-border table-auto-width table-content"> 89 <tr> 90 <td><a href="api/Statistics/Task/GetTaskDataById?id={{task.Id}}">Download</a></td> 91 </tr> 92 </table> 93 </div> 94 </div> 86 95 </div> 87 96 </tab>
Note: See TracChangeset
for help on using the changeset viewer.