github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/service/templates/task_history.html (about)

     1  {{define "scripts"}}
     2  <script src="{{Static "js" "task_history.js"}}?hash={{ StaticsMD5 }}"></script>
     3  <script type="text/javascript">
     4    var failedTasks = {{.Data.FailedTests}}
     5    var taskName = {{.Data.TaskName}}
     6    var tasksByCommit = {{.Data.Tasks}}
     7    var variants = {{.Data.Variants}}
     8    var versions = {{.Data.Versions}}
     9    var exhaustedBefore = {{.Data.ExhaustedBefore}}
    10    var exhaustedAfter = {{.Data.ExhaustedAfter}}
    11    var selectedRevision = {{.Data.SelectedRevision}}
    12  </script>
    13  {{end}}
    14  
    15  {{define "title"}}
    16  Evergreen - Task History
    17  {{end}}
    18  
    19  {{define "content"}}
    20  <div id="content" class="container-fluid" ng-controller="TaskHistoryController" ng-init="init(project);">
    21    <div class="row">
    22      <div class="gridtable-timeline">
    23        <div class="task-history-gridtable gridtable-small" style="padding-top: 60px">
    24          <div class="col-lg-1">
    25            <button type="button" class="btn btn-info" ng-click="loadMore(false)"
    26              ng-disabled="taskHistoryFilter.testsLoading" ng-hide="exhaustedAfter">
    27              <span ng-hide="taskHistoryFilter.testsLoading"> Load Newer Entries </span>
    28              <span ng-show="taskHistoryFilter.testsLoading">
    29                Loading <span class="spinner"><i class="fa fa-spin fa-circle-o-notch"></i></span>
    30              </span>
    31            </button>
    32          </div>
    33          <div class="top-header-row locked" style="margin-top: -124px; padding-top: 124px; width: 60%">
    34            <div  class="header-cell"
    35                  ng-repeat="bv in variants"
    36                  id="[['bv' + $index]]"
    37                  ng-class="variantInFilter(taskHistoryFilter.filter, bv) | conditional:'full-opacity':'semi-transparent'">
    38              <span class="header-text">
    39                <a ng-href="/build_variant/[[project]]/[[bv]]">
    40                  [[ bv ]]
    41                </a>
    42              </span>
    43            </div>
    44          </div>
    45          <div class="tablebody locked">
    46            <div  class="tablerow"
    47                  ng-repeat="taskGroup in tasksByVariantByCommit"
    48                  style="margin-bottom: 0px;">
    49              <div ng-hide="hideInactiveVersions.get() && isTaskGroupInactive[taskGroup._id] || (!taskGroupHasTaskMatchingFilter(variants, taskGroup) && hideUnmatchingVersions.get())">
    50                <div  class="header"
    51                      ng-class="taskGroupHasTaskMatchingFilter(variants, taskGroup) | conditional:'full-opacity':'semi-transparent'">
    52                  <div ng-class="{'highlight-bg': taskGroup._id == selectedRevision}">
    53                    <a href="/version/[[getVersionForCommit(taskGroup._id).id]]" title="[[ getVersionForCommit(taskGroup._id).message ]]">[[ getVersionForCommit(taskGroup._id).message ]]</a>
    54                  </div>
    55                  <div class="revision-date">[[ getVersionForCommit(taskGroup._id).create_time | date:"medium" ]]</div>
    56                </div>
    57                <div class="cells" style="height: 50px; margin-left: 9px">
    58                  <div  ng-repeat="bv in variants"
    59                        class="task-history-cell-wrapper column-[[$index]]">
    60                    <a  href="/task/[[getTestForVariant(taskGroup, bv)._id]]"
    61                        data-element-tooltip="getTaskTooltip(taskGroup, bv)"
    62                        data-animation=""
    63                        ng-class="variantInFilter(taskHistoryFilter.filter, bv) |
    64                                  conditional:'full-opacity':'transparent'">
    65                      <span ng-class="taskMatchesFilter(getTestForVariant(taskGroup, bv)) | conditional:'full-opacity':'semi-transparent'">
    66                        <div ng-class="'cell ' + getGridClass(getTestForVariant(taskGroup, bv)) + ' ' + (taskMatchesFilter(getTestForVariant(taskGroup, bv)) | conditional:'':'task-doesnt-match')"></div>
    67                      </span>
    68                    </a>
    69                  </div>
    70                  <div style="clear: both"></div>
    71                </div>
    72              </div>
    73              <div ng-show="hideInactiveVersions.get() && inactiveTaskGroupCount[$index] && !hideUnmatchingVersions.get() ">
    74                <div class="header muted" style="text-align: center; position: relative">
    75                  <div class="task-history-divider-line">z
    76                  </div>
    77                  <div class="task-history-inactive-count-wrapper">
    78                    [[ inactiveTaskGroupCount[$index] ]] inactive
    79                  </div>
    80                </div>
    81                <div class="cells" style="height: 25px; margin-left: 9px">
    82                  <div  ng-repeat="bv in variants"
    83                        class="task-history-cell-wrapper column-[[$index]]"
    84                        style="height: 31px !important;">
    85                  </div>
    86                  <div style="clear: both"></div>
    87                </div>
    88              </div>
    89            </div>
    90          </div>
    91        </div>
    92        <div class="filter-table">
    93          <div style="position: relative">
    94            <div>
    95              <h3>Filter</h3>
    96              <h5>By Tests:</h5>
    97  
    98              <input  ng-model="taskHistoryFilter.testsSearchString"
    99                      ng-change="taskHistoryFilter.searchTestNames()"
   100                      mci-focus="taskHistoryFilter.showTestNameResults()"
   101                      mci-blur="taskHistoryFilter.hideTestNameResults()"
   102                      mci-key-return="taskHistoryFilter.filterTest(taskHistoryFilter.testsSearchString, 'fail')">
   103              <i  class="fa fa-plus"
   104                  style="cursor: pointer"
   105                  ng-click="taskHistoryFilter.filterTest(taskHistoryFilter.testsSearchString, 'fail')"></i>
   106              <div  class="autocomplete-container" ng-show="taskHistoryFilter.testsSearchDisplay">
   107                <div  class="autocomplete-element"                  
   108                      ng-repeat="testName in taskHistoryFilter.testsSearchResults"
   109                      ng-click="taskHistoryFilter.filterTest(testName, 'fail')">
   110                  [[ testName ]]
   111                </div>
   112              </div>
   113              <div  ng-repeat="(test, status) in taskHistoryFilter.filter.tests" class="filter-atom">
   114                <span ng-click="taskHistoryFilter.removeTestFilter(test)" style="cursor: pointer">
   115                  <i class="fa fa-remove"></i>
   116                </span>
   117                [[ test ]]
   118                <select ng-options="status for status in ['pass', 'fail', 'ran']"
   119                        ng-model="taskHistoryFilter.filter.tests[test]"
   120                        ng-change=" taskHistoryFilter.setLocationHash();
   121                                    taskHistoryFilter.queryServer();"></select>
   122              </div>
   123  
   124              <h3> Options <span class="small"> ([[tasksByVariantByCommit.length]] Versions)</span></h3> 
   125  
   126              <div class="checkbox">
   127                <label>
   128                  <input type="checkbox" ng-model="hideInactiveVersions.v">
   129                  Hide Inactive Versions
   130                </label>
   131              </div>
   132              <div ng-hide="hideUnmatchingVersions.hidden()" class="checkbox">
   133                <label>
   134                  <input type="checkbox" ng-model="hideUnmatchingVersions.v">
   135                  Hide Unmatched Versions
   136                </label>
   137              </div>
   138            </div>
   139            <br>
   140            <div style="display: none">
   141              <h4>Build Variants</h4>
   142  
   143              <input  ng-model="taskHistoryFilter.buildVariantSearchString"
   144                      ng-change="taskHistoryFilter.searchBuildVariants(variants)"
   145                      mci-focus="taskHistoryFilter.showBuildVariantResults()"
   146                      mci-blur="taskHistoryFilter.hideBuildVariantResults()"
   147                      mci-key-return="taskHistoryFilter.filterBuildVariant(taskHistoryFilter.buildVariantSearchString)">
   148              <i  class="fa fa-plus"
   149                  style="cursor: pointer"
   150                  ng-click="taskHistoryFilter.filterBuildVariant(taskHistoryFilter.buildVariantSearchString)"></i>
   151              <div  class="autocomplete-container"
   152                    ng-show="taskHistoryFilter.buildVariantSearchDisplay">
   153                <div  class="autocomplete-element"                  
   154                      ng-repeat="variant in taskHistoryFilter.buildVariantSearchResults"
   155                      ng-click="taskHistoryFilter.filterBuildVariant(variant)">
   156                  [[ variant ]]
   157                </div>
   158              </div>
   159              <div  ng-repeat="variant in taskHistoryFilter.filter.buildVariants"
   160                    class="filter-atom">
   161                <span ng-click="taskHistoryFilter.removeBuildVariant($index)" style="cursor: pointer">
   162                  <i class="fa fa-remove"></i>
   163                </span>
   164                [[ variant ]]
   165              </div>
   166            </div>
   167          </div>
   168        </div>
   169      </div>
   170    </div>
   171    <div class="row" style="margin-top: 10px">
   172      <div class="col-lg-3">
   173        <button type="button" class="btn btn-info" ng-click="loadMore(true)"
   174          ng-hide="exhaustedBefore" ng-disabled="taskHistoryFilter.testsLoading">
   175          <span ng-hide="taskHistoryFilter.testsLoading"> Load Older Entries </span>
   176          <span ng-show="taskHistoryFilter.testsLoading">
   177            Loading <span class="spinner"><i class="fa fa-spin fa-circle-o-notch"></i></span>
   178          </span>
   179        </button>
   180        <notify-box ng-init="destination='errorNearButton'"></notify-box>
   181      </div>
   182    </div>
   183    <div class="row">&nbsp;</div>
   184  </div>
   185  {{end}}
   186