Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/details/jobDetails.cshtml @ 12525

Last change on this file since 12525 was 12525, checked in by dglaser, 9 years ago

#2388:

HeuristicLab.Services.WebApp.Statistics-3.3:

  • added groups page
  • improved jobs, clients and users pages

HeuristicLab.Services.WebApp-3.3:

  • merged from trunk
File size: 9.5 KB
Line 
1@using HeuristicLab.Services.Access.DataTransfer
2@using HeuristicLab.Services.Hive
3<header class="view-header">
4    <ul class="nav nav-list nav-list-topbar pull-left">
5        <li class="active">
6            <a ng-href="#/statistics/jobs">Jobs</a>
7        </li>
8        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
9            <li>
10                <a ng-href="#/statistics/users">Users</a>
11            </li>
12        }
13        <li>
14            <a ng-href="#/statistics/clients">Clients</a>
15        </li>
16        <li>
17            <a ng-href="#/statistics/groups">Groups</a>
18        </li>
19    </ul>
20</header>
21
22<div class="default-view-container">
23    <div class="row">
24        <div class="col-lg-9 col-md-9">
25            <div class="panel panel-default">
26                <div class="panel-heading">
27                    <h3 class="panel-title">Job Details</h3>
28                </div>
29                <div class="panel-body">
30                    <div class="row">
31                        <div class="col-md-12">
32                            <table class="table table-no-border table-condensed table-auto-width table-content">
33                                <tr>
34                                    <td class="text-left">Name:</td>
35                                    <td>{{job.Name}}</td>
36                                </tr>
37                                <tr>
38                                    <td class="text-left">Created at:</td>
39                                    <td>{{job.DateCreated}}</td>
40                                </tr>
41                                <tr>
42                                    <td class="text-left">Completed at:</td>
43                                    <td>{{job.DateCompleted}}</td>
44                                </tr>
45                                @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
46                                    <tr>
47                                        <td class="text-left">User:</td>
48                                        <td>
49                                            <a ng-href="#/statistics/users/{{job.UserId}}" ng-show="job.UserName">{{job.UserName}}</a>
50                                            <span ng-hide="job.UserName">None</span>
51                                        </td>
52                                    </tr>
53                                }
54                            </table>
55                        </div>
56                    </div>
57                    <div class="row" style="height: 20px"></div>
58                    <div class="row">
59                        <div class="col-md-5">
60                            <table class="table table-no-border table-condensed table-auto-width table-content">
61                                <tr>
62                                    <td class="text-left">Total Time:</td>
63                                    <td class="text-right">{{job.TotalTime}}</td>
64                                </tr>
65                                <tr>
66                                    <td class="text-left">Total Calculating Time:</td>
67                                    <td class="text-right">{{job.TotalCalculatingTime}}</td>
68                                </tr>
69                                <tr>
70                                    <td class="text-left">Total Waiting Time:</td>
71                                    <td class="text-right">{{job.TotalWaitingTime}}</td>
72                                </tr>
73                                <tr>
74                                    <td class="text-left">Calc. / Waiting Ratio:</td>
75                                    <td class="text-right">{{job.CalculatingWaitingRatio | number: 3}}</td>
76                                </tr>
77                            </table>
78                        </div>
79                        <div class="col-md-5">
80                            <table class="table table-no-border table-condensed table-auto-width table-content">
81                                <tr>
82                                    <td class="text-left">Min Calculating Time:</td>
83                                    <td class="text-right">{{job.MinCalculatingTime}}</td>
84                                </tr>
85                                <tr>
86                                    <td class="text-left">Max Calculating Time:</td>
87                                    <td class="text-right">{{job.MaxCalculatingTime}}</td>
88                                </tr>
89                                <tr>
90                                    <td class="text-left">Avg. Calculating Time:</td>
91                                    <td class="text-right">{{job.AvgCalculatingTime}}</td>
92                                </tr>
93                                <tr>
94                                    <td class="text-left">Avg. Transferring Time:</td>
95                                    <td class="text-right">{{job.AvgTransferringTime}}</td>
96                                </tr>
97                            </table>
98                        </div>
99
100                        <div class="col-md-2"></div>
101                        </div>
102                    </div>
103
104            </div>
105        </div>
106
107        <div class="col-lg-3 col-md-3">
108            <div class="panel panel-default">
109                <div class="panel-heading">
110                    <h3 class="panel-title">Tasks Overview</h3>
111                </div>
112                <div class="panel-body">
113                    <table class="table table-no-border table-condensed table-auto-width table-content">
114                        <tr>
115                            <td class="text-left">Total:</td>
116                            <td class="text-right">{{totalJobTasks}}</td>
117                        </tr>
118                        <tr ng-repeat="state in states">
119                            <td class="text-left">{{state.State}}:</td>
120                            <td class="text-right">{{state.Count}}</td>
121                        </tr>
122                    </table>
123                </div>
124            </div>
125        </div>
126    </div>
127</div>
128
129<div id="job-filter-header" class="text-center">
130    <form class="form-inline">
131        <div class="form-group">
132            <div class="btn-group" data-toggle="buttons">
133                <label class="btn btn-default" ng-class="{active: state.Selected}" ng-repeat="state in states"
134                       ng-click="filterState(state)">
135                    <input type="checkbox" autocomplete="off" checked> {{state.State}}
136                </label>
137            </div>
138        </div>
139    </form>
140</div>
141
142<div class="default-view-container">
143    <div id="taskListContainer" class="row" ng-show="taskPage.Tasks.length">
144        <div class="col-lg-4 col-md-4" ng-repeat="task in taskPage.Tasks">
145            <div class="panel panel-default">
146                <div class="panel-heading cursor-pointer" ng-click="openDialog(($index + 1)+((curTaskPage-1)*(taskPageSize)), task)">
147                    <h3 class="panel-title" style="display: inline">Task {{($index + 1)+((curTaskPage-1)*(taskPageSize))}}</h3>
148                    <span ng-if="task.State == 'Finished'" class="label label-success" style="float: right;">{{task.State}}</span>
149                    <span ng-if="task.State == 'Aborted' || task.State == 'Failed'" class="label label-danger" style="float: right;">{{task.State}}</span>
150                    <span ng-if="task.State == 'Waiting'" class="label label-warning" style="float: right;">{{task.State}}</span>
151                    <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>
152                </div>
153                <div class="panel-body">
154                    <table class="table table-condensed table-no-border table-auto-width">
155                        <tr>
156                            <td colspan="2"><span data-fittext="0.99">{{task.Id}}</span></td>
157                        </tr>
158                        <tr>
159                            <td>Start Time:</td>
160                            <td class="text-right">{{task.StartTime}}</td>
161                        </tr>
162                        <tr>
163                            <td>End Time:</td>
164                            <td class="text-right">{{task.EndTime}}</td>
165                        </tr>
166                        <tr>
167                            <td>Calculating Time:</td>
168                            <td class="text-right">{{task.CalculatingTime}}</td>
169                        </tr>
170                        <tr>
171                            <td>Slave:</td>
172                            <td class="text-right">
173                                <a ng-href="#/statistics/clients/{{task.LastClientId}}" ng-show="task.LastClientName">{{task.LastClientName}}</a>
174                                <span ng-hide="task.LastClientName">None</span>
175                            </td>
176                        </tr>
177                    </table>
178                </div>
179
180            </div>
181        </div>
182    </div>
183    <div ng-hide="taskPage.Tasks.length">
184        <p class="text-center">Please select at least one state!</p>
185    </div>
186    <div class="row text-center" ng-show="taskPage.TotalTasks > taskPage.Tasks.length">
187        <pagination max-size="10" total-items="taskPage.TotalTasks" ng-model="curTaskPage" ng-change="changeTaskPage()" items-per-page="taskPageSize"
188                    boundary-links="true" rotate="false" num-pages="numPages"></pagination>
189    </div>
190</div>
Note: See TracBrowser for help on using the repository browser.