| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 <div class="container-fluid ng-cloak" ng-cloak> | 
|  | 2 | 
|  | 3     <div class="row" ng-show="state === c.ST_LOADING"> | 
|  | 4         <h4>Loading ...</h4> | 
|  | 5     </div> | 
|  | 6 | 
|  | 7     <div class="row" ng-show="state === c.ST_STILL_LOADING"> | 
|  | 8         <h4>Still loading from backend.</h4> | 
|  | 9         <div> | 
|  | 10             Load time so far: {{ loadTime | number:0 }} s. | 
|  | 11         </div> | 
|  | 12     </div> | 
|  | 13 | 
|  | 14     <div class="row" ng-show="state === c.ST_READY"> | 
|  | 15         <tabset> | 
|  | 16             <tab heading="Unfiled"> | 
|  | 17                 <!-- settings --> | 
|  | 18                 <div class="container controlBox"> | 
|  | 19                     <form class="form-inline settingsForm" novalidate > | 
|  | 20                         <legend class="simpleLegend">Settings</legend> | 
|  | 21                             <div class="checkbox formPadding"> | 
|  | 22                                 <label> | 
|  | 23                                        <input type="checkbox" | 
|  | 24                                            ng-model="settings.showThumbnails">Sh
     ow thumbnails | 
|  | 25                                  </label> | 
|  | 26                              </div> | 
|  | 27 | 
|  | 28                             <div class="checkbox formPadding"> | 
|  | 29                                 <label> | 
|  | 30                                        <input type="checkbox" | 
|  | 31                                      ng-model="settings.mergeIdenticalRows" | 
|  | 32                                       ng-change="mergeRowsChanged(mergeIdentical
     Rows)"> Merge identical rows | 
|  | 33                                  </label> | 
|  | 34                             </div> | 
|  | 35 | 
|  | 36                             <div class="form-group formPadding"> | 
|  | 37                                  <label for="imageWidth">Image Width</label> | 
|  | 38                                      <select ng-model="settings.imageSize" | 
|  | 39                                              ng-options="iSize for iSize in c.IM
     AGE_SIZES" | 
|  | 40                                              class="form-control input-sm"> | 
|  | 41 | 
|  | 42                                      </select> | 
|  | 43                             </div> | 
|  | 44                             <div class="form-group formPadding"> | 
|  | 45                                  <label>Max records</label> | 
|  | 46                                      <select ng-model="settings.nRecords" | 
|  | 47                                              ng-options="n for n in c.MAX_RECORD
     S" | 
|  | 48                                              ng-change="maxRecordsChanged();" | 
|  | 49                                              class="form-control input-sm"> | 
|  | 50                                      </select> | 
|  | 51                             </div> | 
|  | 52                     </form> | 
|  | 53                     <br> | 
|  | 54 | 
|  | 55                     <form class="form settingsForm" novalidate> | 
|  | 56                         <legend class="simpleLegend">Filters</legend> | 
|  | 57                         <div class="container-fluid"> | 
|  | 58                             <div class="col-lg-2 filterBox" ng-repeat="oneCol in
      filterCols"> | 
|  | 59                                   <div class="filterKey">{{ oneCol.key }}</div> | 
|  | 60 | 
|  | 61                                   <!-- If we filter this column using free-form 
     text match... --> | 
|  | 62                                   <div ng-if="oneCol.ftype === c.FILTER_FREE_FOR
     M"> | 
|  | 63                                     <input type="text" | 
|  | 64                                            ng-model="filterVals[$index]" | 
|  | 65                                            typeahead="opt.value for opt in oneCo
     l.foptions | filter:$viewValue" | 
|  | 66                                            class="form-control input-sm"> | 
|  | 67                                     <br> | 
|  | 68                                     <a ng-click="filterVals[$index]=''" | 
|  | 69                                        ng-disabled="'' === filterVals[$index]" | 
|  | 70                                        href=""> | 
|  | 71                                       Clear | 
|  | 72                                     </a> | 
|  | 73                                   </div> | 
|  | 74 | 
|  | 75                                   <!-- If we filter this column using checkboxes
     ... --> | 
|  | 76                                   <div ng-if="oneCol.ftype === c.FILTER_CHECK_BO
     X"> | 
|  | 77 | 
|  | 78                                       <div class="checkbox" ng-repeat="oneOpt in
      oneCol.foptions"> | 
|  | 79                                         <label> | 
|  | 80                                           <input type="checkbox" | 
|  | 81                                                  ng-model="filterVals[$parent.$i
     ndex][$index]">{{oneOpt.value}} ({{ oneOpt.count }}) | 
|  | 82                                         </label> | 
|  | 83                                     </div> | 
|  | 84                                     <div> | 
|  | 85                                         <a ng-click="setFilterAll($index, true)"
      href="">All</a> - | 
|  | 86                                         <a ng-click="setFilterAll($index, False)
     " href="">None</a> - | 
|  | 87                                         <a ng-click="setFilterToggle($index)" hr
     ef="">Toggle</a> | 
|  | 88                                     </div> | 
|  | 89                                   </div> | 
|  | 90                             </div> | 
|  | 91                             <br> | 
|  | 92                         </div> | 
|  | 93 | 
|  | 94                         <div class="container updateBtn"> | 
|  | 95                             <button class="btn btn-success col-lg-4 pull-left" | 
|  | 96                                     ng-click="filtersChanged()" | 
|  | 97                                     ng-disabled="updating"> | 
|  | 98                                         {{ updating && 'Updating ...' || 'Update
     ' }} | 
|  | 99                             </button> | 
|  | 100                         </div> | 
|  | 101 | 
|  | 102                     </form> | 
|  | 103 | 
|  | 104                     <br> | 
|  | 105 | 
|  | 106                     <!-- Rows --> | 
|  | 107 | 
|  | 108                     <!-- results header --> | 
|  | 109                     <div class="col-lg-12 resultsHeaderActions well"> | 
|  | 110                             <div class="col-lg-6"> | 
|  | 111                               <h4>Showing {{showingRecords}} of {{selectedRecord
     s}} (of {{totalRecords}} total)</h4> | 
|  | 112                               <span ng-show="renderTime > 0"> | 
|  | 113                                 Rendered in {{renderTime | number:0 }} ms (filte
     red and sorted in {{ filterTime | number:0 }} ms). | 
|  | 114                               </span> | 
|  | 115                               <br> | 
|  | 116                               (click on the column header radio buttons to re-so
     rt by that column) | 
|  | 117                             </div> | 
|  | 118 | 
|  | 119 | 
|  | 120                             <div class="col-lg-6"> | 
|  | 121                                 All tests shown: | 
|  | 122                                 <button class="btn btn-default btn-sm" ng-click=
     "selectAllImagePairs()">Select</button> | 
|  | 123                                 <button class="btn btn-default btn-sm" ng-click=
     "clearAllImagePairs()">Clear</button> | 
|  | 124                                 <button class="btn btn-default btn-sm" ng-click=
     "toggleAllImagePairs()">Toggle</button> | 
|  | 125 | 
|  | 126                                 <div ng-repeat="otherTab in tabs"> | 
|  | 127                                     <button class="btn btn-default btn-sm" | 
|  | 128                                             ng-click="moveSelectedImagePairsToTa
     b(otherTab)" | 
|  | 129                                             ng-disabled="selectedImagePairs.leng
     th == 0" | 
|  | 130                                             ng-show="otherTab != viewingTab"> | 
|  | 131                                             Move {{selectedImagePairs.length}} s
     elected tests to {{otherTab}} tab | 
|  | 132                                     </button> | 
|  | 133                                 </div> | 
|  | 134                             </div> | 
|  | 135                             <br> | 
|  | 136                     </div> | 
|  | 137 | 
|  | 138                     <!-- results --> | 
|  | 139                     <table class="table table-bordered"> | 
|  | 140                         <thead> | 
|  | 141                             <tr> | 
|  | 142                                 <!-- Most column headers are displayed in a comm
     on fashion... --> | 
|  | 143                                 <th ng-repeat="oneCol in allCols" ng-style="{ 'm
     in-width': getImageWidthStyle(oneCol, 20, 'auto') }"> | 
|  | 144                                     <a ng-class="getSortedClass('sort', $index, 
     '')" | 
|  | 145                                        ng-click="sortBy($index)" | 
|  | 146                                        href="" | 
|  | 147                                        class="sortableHeader"> | 
|  | 148                                           {{ oneCol.ctitle }} | 
|  | 149                                     </a> | 
|  | 150                                 </th> | 
|  | 151                                 <th> | 
|  | 152                                     <div class="checkbox"> | 
|  | 153                                         <label> | 
|  | 154                                                <input type="checkbox" ng-model="
     allChecked" ng-change="checkAll()">All | 
|  | 155                                          </label> | 
|  | 156                                      </div> | 
|  | 157                                 </th> | 
|  | 158                             </tr> | 
|  | 159                         </thead> | 
|  | 160                         <tbody> | 
|  | 161                             <tr ng-repeat="oneRow in data"> | 
|  | 162                                 <td ng-repeat="oneColVal in oneRow.dataCols"> | 
|  | 163                                     {{oneColVal}} | 
|  | 164                                 </td> | 
|  | 165 | 
|  | 166                                 <td ng-repeat="oneCol in oneRow.imageCols" ng-if
     ="oneRow.rowspan > 0" rowspan="{{ oneRow.rowspan }}"> | 
|  | 167                                     <div ng-show="oneCol.url"> | 
|  | 168                                         <a href="{{ oneCol.url }}" target="_blan
     k">View Image</a><br/> | 
|  | 169                                         <img ng-if="settings.showThumbnails" | 
|  | 170                                              ng-style="{ width: settings.imageSi
     ze+'px' }" | 
|  | 171                                              ng-src="{{ oneCol.url }}" /> | 
|  | 172                                         <div ng-if="oneCol.percent && oneCol.val
     ue"> | 
|  | 173                                             {{oneCol.percent}}% ({{ oneCol.value
      }}) | 
|  | 174                                         </div> | 
|  | 175                                     </div> | 
|  | 176                                     <div ng-hide="oneCol.url" style="text-align:
     center"> | 
|  | 177                                         <span ng-show="oneCol.url === null">&nda
     sh;none–</span> | 
|  | 178                                         <span ng-hide="oneCol.url === null">&nbs
     p;</span> | 
|  | 179                                     </div> | 
|  | 180                                 </td> | 
|  | 181 | 
|  | 182                                 <td ng-if="oneRow.rowspan > 0" rowspan="{{ oneRo
     w.rowspan }}"> | 
|  | 183                                     <div class="checkbox"> | 
|  | 184                                         <input type="checkbox" | 
|  | 185                                                ng-model="checkRows[$index]" | 
|  | 186                                                ng-change="rowCheckChanged($index
     )"> | 
|  | 187                                     </div> | 
|  | 188                                 </td> | 
|  | 189                             </tr> | 
|  | 190                         </tbody> | 
|  | 191                     </table> | 
|  | 192 | 
|  | 193                 </div> | 
|  | 194             </tab> | 
|  | 195 | 
|  | 196             <tab heading="Hidden"> | 
|  | 197                 <h3>Hidden</h3> | 
|  | 198             </tab> | 
|  | 199 | 
|  | 200             <tab heading="Pending Approval"> | 
|  | 201                 <h3>Pending Approval</h3> | 
|  | 202             </tab> | 
|  | 203 | 
|  | 204         </tabset> | 
|  | 205 | 
|  | 206     </div> | 
|  | 207 </div> | 
| OLD | NEW | 
|---|