Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/16/15 15:09:12 (9 years ago)
Author:
dglaser
Message:

#2388:

HeuristicLab.Services.Hive.DataAccess-3.3:

  • Removed old statistics tables
  • Updated SQL Scripts

HeuristicLab.Services.WebApp-3.3:
HeuristicLab.Services.WebApp.Status-3.3:
HeuristicLab.Services.WebApp.Statistics-3.3:

  • Minor changes
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  
    3535
    3636namespace HeuristicLab.Services.WebApp.Statistics.WebApi {
     37  [Authorize]
    3738  public class TaskController : ApiController {
    3839    private IPersistenceManager PersistenceManager {
  • branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/clients/details/clientDetails.cshtml

    r12584 r12768  
    181181</div>
    182182
     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:&nbsp;</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:&nbsp;</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
    183252<div id="tasks-filter" class="default-filter-header text-center">
    184253    <form class="form-inline">
     
    212281</div>
    213282
    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:&nbsp;</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:&nbsp;</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  
    105105                    </div>
    106106                </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>
    107116            </div>
    108117        </tab>
  • branches/HiveStatistics/sources/HeuristicLab.Services.WebApp.Statistics/3.3/WebApp/jobs/details/jobTaskDetailsDialog.cshtml

    r12551 r12768  
    8484                    </div>
    8585                </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>
    8695            </div>
    8796        </tab>
Note: See TracChangeset for help on using the changeset viewer.