Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/jobs.cshtml @ 16752

Last change on this file since 16752 was 15075, checked in by jkarder, 7 years ago

#2743:

  • fixed sorting in current jobs table
  • enabled sorting according to job progress
File size: 6.4 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        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
20            <li>
21                <a ng-href="#/statistics/exceptions">Exceptions</a>
22            </li>
23        }
24    </ul>
25</header>
26
27<div class="default-view-container">
28    <div class="row">
29        <div class="col-lg-12">
30            <div class="panel panel-default">
31                <div class="panel-heading">
32                    <h3 class="panel-title">Current Jobs</h3>
33                </div>
34                <div class="panel-body">
35                    <table class="table table-hover table-condensed" ts-wrapper>
36                        <thead>
37                        <tr>
38                            <th>#</th>
39                            <th ts-criteria="Name">Job Name</th>
40                            @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
41                                <th ts-criteria="UserName">Username</th>
42                            }
43                            <th ts-criteria="DateCreated">Date Created</th>
44                            <th ts-criteria="CompletedTasks / TotalTasks">Progress</th>
45                            <th></th>
46                        </tr>
47                        </thead>
48                        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
49                            <tr ng-repeat="job in allUsersJobs" ts-repeat>
50                                <td>{{$index + 1}}</td>
51                                <td>{{job.Name}}</td>
52                                <td>
53                                    <a ng-href="#/statistics/users/{{job.UserId}}" ng-show="job.UserName">{{job.UserName}}</a>
54                                </td>
55                                <td>{{job.DateCreated | toDate}}</td>
56                                <td>
57                                    <progressbar class="progress active" max="job.TotalTasks" value="job.CompletedTasks" type="success"><i style="color:black; white-space:nowrap;">{{job.CompletedTasks}} / {{job.TotalTasks}}</i></progressbar>
58                                </td>
59                                <td>
60                                    <a ng-href="#/statistics/jobs/{{job.Id}}">Details</a>
61                                </td>
62                            </tr>
63                            <tr ng-hide="allUsersJobs.length">
64                                <td colspan="6" class="text-center">No active jobs found!</td>
65                            </tr>
66                        } else {
67                            <tr ng-repeat="job in jobs" ts-repeat>
68                                <td>{{$index + 1}}</td>
69                                <td>{{job.Name}}</td>
70                                <td>{{job.DateCreated | toDate}}</td>
71                                <td>
72                                    <progressbar class="progress active" max="job.TotalTasks" value="job.CompletedTasks" type="success"><i style="color: black; white-space: nowrap;">{{job.CompletedTasks}} / {{job.TotalTasks}}</i></progressbar>
73                                </td>
74                                <td>
75                                    <a ng-href="#/statistics/jobs/{{job.Id}}">Details</a>
76                                </td>
77                            </tr>
78                            <tr ng-hide="jobs.length">
79                                <td colspan="5" class="text-center">No active jobs found!</td>
80                            </tr>
81                        }
82                    </table>
83                </div>
84            </div>
85        </div>
86    </div>
87
88    <div class="row">
89        <div class="col-lg-12">
90            <div class="panel panel-default">
91                <div class="panel-heading">
92                    <h3 class="panel-title">Completed Jobs</h3>
93                </div>
94                <div class="panel-body">
95                    <table class="table table-hover table-condensed" ts-wrapper>
96                        <thead>
97                        <tr>
98                            <th>#</th>
99                            <th ts-criteria="Name">Job Name</th>
100                            <th ts-criteria="DateCreated">Date Created</th>
101                            <th ts-criteria="DateCompleted">Date Completed</th>
102                            <th ts-criteria="TotalTasks|parseInt">Tasks</th>
103                            <th></th>
104                        </tr>
105                        </thead>
106                        <tr ng-repeat="job in completedJobPage.Jobs" ts-repeat>
107                            <td>{{($index + 1)+((completedJobCurPage-1)*(completedJobPageSize))}}</td>
108                            <td>{{job.Name}}</td>
109                            <td>{{job.DateCreated | toDate}}</td>
110                            <td>{{job.DateCompleted | toDate}}</td>
111                            <td>{{job.TotalTasks}}</td>
112                            <td><a ng-href="#/statistics/jobs/{{job.Id}}">Details</a></td>
113                        </tr>
114                        <tr ng-hide="completedJobPage.Jobs.length">
115                            <td colspan="6" class="text-center">No completed jobs found!</td>
116                        </tr>
117                    </table>
118                    <div class="row text-center" ng-show="completedJobPage.TotalJobs > completedJobPage.Jobs.length">
119                        <pagination max-size="10" total-items="completedJobPage.TotalJobs"
120                                    ng-model="completedJobCurPage" items-per-page="completedJobPageSize"
121                                    ng-change="changeCompletedJobPage()"
122                                    boundary-links="true" rotate="false" num-pages="numPages"></pagination>
123                    </div>
124                </div>
125            </div>
126        </div>
127    </div>
128</div>
Note: See TracBrowser for help on using the repository browser.