Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 15624 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
RevLine 
[12477]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        }
[12516]13        <li>
14            <a ng-href="#/statistics/clients">Clients</a>
15        </li>
[12525]16        <li>
17            <a ng-href="#/statistics/groups">Groups</a>
18        </li>
[12551]19        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
20            <li>
21                <a ng-href="#/statistics/exceptions">Exceptions</a>
22            </li>
23        }
[12477]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">
[12516]32                    <h3 class="panel-title">Current Jobs</h3>
[12477]33                </div>
34                <div class="panel-body">
[14820]35                    <table class="table table-hover table-condensed" ts-wrapper>
[12477]36                        <thead>
[12516]37                        <tr>
38                            <th>#</th>
[14820]39                            <th ts-criteria="Name">Job Name</th>
[12551]40                            @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
[14820]41                                <th ts-criteria="UserName">Username</th>
[12551]42                            }
[14820]43                            <th ts-criteria="DateCreated">Date Created</th>
[15075]44                            <th ts-criteria="CompletedTasks / TotalTasks">Progress</th>
[12516]45                            <th></th>
46                        </tr>
[12477]47                        </thead>
[12551]48                        @if (Request.IsAuthenticated && User.IsInRole(HiveRoles.Administrator)) {
[14820]49                            <tr ng-repeat="job in allUsersJobs" ts-repeat>
[12525]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>
[12551]55                                <td>{{job.DateCreated | toDate}}</td>
[12525]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>
[12551]66                        } else {
[15075]67                            <tr ng-repeat="job in jobs" ts-repeat>
[12551]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>
[12525]83                </div>
84            </div>
85        </div>
[12551]86    </div>
87
[12516]88    <div class="row">
89        <div class="col-lg-12">
[12484]90            <div class="panel panel-default">
91                <div class="panel-heading">
[12516]92                    <h3 class="panel-title">Completed Jobs</h3>
[12484]93                </div>
94                <div class="panel-body">
[14820]95                    <table class="table table-hover table-condensed" ts-wrapper>
[12516]96                        <thead>
[12484]97                        <tr>
[12516]98                            <th>#</th>
[14820]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>
[12516]103                            <th></th>
[12484]104                        </tr>
[12516]105                        </thead>
[14820]106                        <tr ng-repeat="job in completedJobPage.Jobs" ts-repeat>
[12516]107                            <td>{{($index + 1)+((completedJobCurPage-1)*(completedJobPageSize))}}</td>
108                            <td>{{job.Name}}</td>
[12551]109                            <td>{{job.DateCreated | toDate}}</td>
110                            <td>{{job.DateCompleted | toDate}}</td>
[12516]111                            <td>{{job.TotalTasks}}</td>
112                            <td><a ng-href="#/statistics/jobs/{{job.Id}}">Details</a></td>
[12484]113                        </tr>
[12516]114                        <tr ng-hide="completedJobPage.Jobs.length">
115                            <td colspan="6" class="text-center">No completed jobs found!</td>
[12484]116                        </tr>
117                    </table>
[12516]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>
[12484]124                </div>
125            </div>
126        </div>
127    </div>
[12477]128</div>
Note: See TracBrowser for help on using the repository browser.