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

     1  {{define "scripts"}}
     2  <script src="{{Static "js" "grid.js"}}?hash={{ StaticsMD5 }}"></script>
     3  <script type="text/javascript">
     4    var baseVersion = {{.ProjectData.Version}};
     5    var baseRef = {{.ProjectData.ProjectRef}};
     6    var gridCells = {{.GridCells}};
     7    var allVersions = {{.Versions}};
     8    var revisionFailures = {{.RevisionFailures}};
     9    var failures = {{.Failures}}
    10    var userTz = {{GetTimezone $.User}};
    11  </script>
    12  {{end}}
    13  {{define "title"}}
    14  Evergreen - Grid
    15  {{end}}
    16  {{define "content"}}
    17  <div id="content" class="container-fluid" ng-controller="VersionMatrixController">
    18    <header class="clearfix">
    19      <h1>Summary</h1>
    20    </header>
    21    <div class="row">
    22      {{if not .ProjectData.Version}}
    23      <p class="text-center">There are no builds of this project</p>
    24      {{end}}
    25    </div>
    26    <ul class="nav nav-tabs">
    27      <li ng-class="{active:tab == consts.recentFailuresView}"><a href="#" ng-click="setTab(consts.recentFailuresView)">Recent Failures</a></li>
    28      <li ng-class="{active:tab == consts.gridView}"><a href="#" ng-click="setTab(consts.gridView)">Grid</a></li>
    29    </ul>
    30    <div class="col-lg-12 summary" ng-hide="tab != consts.recentFailuresView ">
    31      <div class="gridtable-small">
    32        <h3 ng-show="currentFailures.length == 0">Hooray! There are no recent test failures.</h3>
    33        <div ng-show="currentFailures.length != 0">
    34          <div class="row">
    35            <div class="pull-left" style="margin-left:20px">
    36              <h4> Group Failures By: </h4>
    37              <div class = "btn-group btn-group-sm">
    38                <a class="pointer btn btn-default" ng-class="{active:currentFailureView==consts.taskFailuresView}" ng-click="setFailureView(consts.taskFailuresView)"> Task </a>
    39                <a class="pointer btn btn-default" ng-class="{active:currentFailureView==consts.testFailuresView}" ng-click="setFailureView(consts.testFailuresView)"> Test </a>
    40                <a class="pointer btn btn-default" ng-class="{active:currentFailureView==consts.variantFailuresView}" ng-click="setFailureView(consts.variantFailuresView)"> Variant </a>
    41                <a class="pointer btn btn-default" ng-class="{active:currentFailureView==consts.revisionFailuresView}" ng-click="setFailureView(consts.revisionFailuresView)"> Revision  </a>
    42              </div>
    43            </div>
    44            <div class="col-lg-2" ng-show="currentFailureView != consts.revisionFailuresView">
    45              <h4> Sort Groups By: </h4>
    46              <div class="btn-group btn-group-sm">
    47               <a class="pointer btn btn-default" ng-class="{active:sortBy==consts.numFailures}" ng-click="setSort(consts.numFailures)"># of Failures </a> 
    48               <a class="pointer btn btn-default" ng-class="{active:sortBy==consts.nameSort}" ng-click="setSort(consts.nameSort)"> Name </a>
    49             </div>
    50           </div>
    51           <div class="col-lg-4">
    52            <h4> &nbsp; </h4>
    53            <div class="btn-group btn-group-sm">
    54             <a class="pointer btn btn-default"  ng-click="expandAll()">Expand All </a> 
    55             <a class="pointer btn btn-default" ng-click="collapseAll()"> Collapse All </a>
    56           </div>
    57         </div>
    58       </div>
    59  
    60       <div ng-repeat="(index,failure) in currentFailures">
    61        <div class="row">
    62          <div class="col-lg-8">
    63            <div ng-click="toggleView(index)" style="cursor:pointer" > 
    64              <h4 ng-show="currentFailureView != consts.revisionFailuresView">
    65                <i class="fa" ng-class="getToggleClass(failure.hidden)"></i>
    66                [[failure.groupingField]] 
    67                <span class="muted small"> <ng-pluralize count="failure.fields.length" when="{'one': '1 failure', 'other': '{} failures'}"></ng-pluralize></span>
    68              </h4>
    69              <div ng-show="currentFailureView == consts.revisionFailuresView" class="version-header-expanded" style="margin-top:15px">
    70                <div>
    71                  <i class="fa" ng-class="getToggleClass(failure.hidden)"></i>
    72                  <span class="btn btn-default btn-hash history-item-revision">
    73                    <a href="/version/[[allVersions[failure.groupingField].id]]"> [[failure.groupingField.substring(0,5)]] </a>
    74                  </span>
    75                  [[allVersions[failure.groupingField].create_time | date: "MM/dd/yyyy 'at' h:mma"]]
    76                </div>
    77                <div style="margin-left:10px">
    78                  <strong>[[allVersions[failure.groupingField].author]] - </strong>
    79                  [[allVersions[failure.groupingField].message.substring(0,100)]]<span ng-show="allVersions[failure.groupingField].message.length > 100">...</span>
    80                  <span class="muted small"> <ng-pluralize count="failure.fields.length" when="{'one': '1 failure', 'other': '{} failures'}"></ng-pluralize></span>
    81                </div>
    82              </div>
    83            </div>
    84          </div>
    85        </div>
    86        <div class="row">
    87          <div ng-show="!failure.hidden" class="col-lg-8">
    88            <table class="table table-new table-hover" style="margin-bottom:5px">
    89              <thead>
    90                <tr>
    91                  <th style="width:4%"></th>
    92                  <th ng-repeat="headerField in currentHeaders" ng-click="setSelectedHeader(headerField)" style="width:[[widthPercentage()]]%"> 
    93                    [[headerField.name]] <i class="fa" ng-class="selectedClass(headerField)" style="margin-left:2px;"></i>
    94                  </th> 
    95                </tr>
    96              </thead>  
    97              <tbody>
    98                <tr ng-repeat="field in failure.fields = (failure.fields | orderBy: selectedHeader.by: selectedHeader.order)">
    99                  <td align="center">
   100                    <a class="failure-link" ng-href="/task/[[field.task_id]]">
   101                      <span class="tooltip-task-status failed" ng-class="task | statusFilter">&nbsp;</span>
   102                    </a>
   103                  </td>
   104                  <td ng-repeat="(index, header) in currentHeaders">
   105                    <a class="failure-link" ng-href="/task/[[field.task_id]]">
   106                      [[getHeaderVal(field, index)]]
   107                    </a>
   108                  </td>
   109                </tr>
   110              </tbody> 
   111            </table>
   112          </div>
   113        </div>
   114      </div>
   115    </div>  
   116  </div>
   117  </div>
   118  <div class="row" ng-hide="tab != consts.gridView">
   119    <div class="row"></div>
   120    <div id="popover"></div>
   121    <div class="gridtable-small">
   122      <div class="top-header-row">
   123        <div class="header-cell" ng-repeat="task in taskNames" id="[['buildVariant' + $index]]">
   124          <span class="header-text">
   125            <a ng-href="/task_history/[[project]]/[[task]]">[[task]]</a>
   126          </span>
   127        </div>
   128      </div>
   129      <div class="tablerow" ng-repeat="buildVariant in buildVariants">
   130        <div class="header">
   131          <div class="taskNames" id="[['task' + $index]]">[[buildVariant]]</div>
   132        </div>
   133        <div class="cells">
   134          <div ng-repeat="task in taskNames" ng-class="'cell ' + getGridClass(buildVariant, task)" ng-mouseover="highlightHeader($parent.$parent.$index, $index)" bs-popover="'/static/partials/popover_content.html'" data-container="#popover" data-unique="1" ng-click="showTaskPopover(buildVariant, task, $event.target);">&nbsp;</div>
   135        </div>
   136      </div>
   137    </div>
   138  </div>
   139  </div>
   140  {{end}}