OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 | 2 |
3 <html ng-app="Loader" ng-controller="Loader.Controller"> | 3 <html ng-app="Loader" ng-controller="Loader.Controller"> |
4 | 4 |
5 <head> | 5 <head> |
6 <title ng-bind="windowTitle"></title> | 6 <title ng-bind="windowTitle"></title> |
7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"
></script> | 7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"
></script> |
8 <script src="constants.js"></script> | 8 <script src="constants.js"></script> |
9 <script src="loader.js"></script> | 9 <script src="loader.js"></script> |
10 <link rel="stylesheet" href="view.css"> | 10 <link rel="stylesheet" href="view.css"> |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 </button> | 119 </button> |
120 </td> | 120 </td> |
121 <td><table> | 121 <td><table> |
122 <tr><td> | 122 <tr><td> |
123 <input type="checkbox" ng-model="showThumbnailsPending" | 123 <input type="checkbox" ng-model="showThumbnailsPending" |
124 ng-init="showThumbnailsPending = true" | 124 ng-init="showThumbnailsPending = true" |
125 ng-change="areUpdatesPending = true"/> | 125 ng-change="areUpdatesPending = true"/> |
126 Show thumbnails | 126 Show thumbnails |
127 </td></tr> | 127 </td></tr> |
128 <tr><td> | 128 <tr><td> |
| 129 <input type="checkbox" ng-model="mergeIdenticalRowsPending" |
| 130 ng-init="mergeIdenticalRowsPending = true" |
| 131 ng-change="areUpdatesPending = true"/> |
| 132 Merge identical rows |
| 133 </td></tr> |
| 134 <tr><td> |
129 Image width | 135 Image width |
130 <input type="text" ng-model="imageSizePending" | 136 <input type="text" ng-model="imageSizePending" |
131 ng-init="imageSizePending=100" | 137 ng-init="imageSizePending=100" |
132 ng-change="areUpdatesPending = true" | 138 ng-change="areUpdatesPending = true" |
133 maxlength="4"/> | 139 maxlength="4"/> |
134 </td></tr> | 140 </td></tr> |
135 <tr><td> | 141 <tr><td> |
136 Max records to display | 142 Max records to display |
137 <input type="text" ng-model="displayLimitPending" | 143 <input type="text" ng-model="displayLimitPending" |
138 ng-init="displayLimitPending=50" | 144 ng-init="displayLimitPending=50" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 <!-- ... but there are a few columns where we display things different
ly. --> | 247 <!-- ... but there are a few columns where we display things different
ly. --> |
242 <th> | 248 <th> |
243 <input type="radio" | 249 <input type="radio" |
244 name="sortColumnRadio" | 250 name="sortColumnRadio" |
245 value="bugs" | 251 value="bugs" |
246 ng-checked="(sortColumnKey == constants.KEY__EXPECTATIONS__BU
GS)" | 252 ng-checked="(sortColumnKey == constants.KEY__EXPECTATIONS__BU
GS)" |
247 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXPECTATIO
NS, constants.KEY__EXPECTATIONS__BUGS)"> | 253 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXPECTATIO
NS, constants.KEY__EXPECTATIONS__BUGS)"> |
248 bugs | 254 bugs |
249 </th> | 255 </th> |
250 <th width="{{imageSize}}"> | 256 <th width="{{imageSize}}"> |
| 257 <input type="radio" |
| 258 name="sortColumnRadio" |
| 259 value="imageA" |
| 260 ng-checked="(sortColumnKey == constants.KEY__IMAGEPAIRS__IMAG
E_A_URL)" |
| 261 ng-click="sortResultsBy('none', constants.KEY__IMAGEPAIRS__IM
AGE_A_URL)"> |
251 {{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_A][constants.KEY__I
MAGESETS__FIELD__DESCRIPTION]}} | 262 {{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_A][constants.KEY__I
MAGESETS__FIELD__DESCRIPTION]}} |
252 </th> | 263 </th> |
253 <th width="{{imageSize}}"> | 264 <th width="{{imageSize}}"> |
| 265 <input type="radio" |
| 266 name="sortColumnRadio" |
| 267 value="imageB" |
| 268 ng-checked="(sortColumnKey == constants.KEY__IMAGEPAIRS__IMAG
E_B_URL)" |
| 269 ng-click="sortResultsBy('none', constants.KEY__IMAGEPAIRS__IM
AGE_B_URL)"> |
254 {{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_B][constants.KEY__I
MAGESETS__FIELD__DESCRIPTION]}} | 270 {{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_B][constants.KEY__I
MAGESETS__FIELD__DESCRIPTION]}} |
255 </th> | 271 </th> |
256 <th width="{{imageSize}}"> | 272 <th width="{{imageSize}}"> |
257 <input type="radio" | 273 <input type="radio" |
258 name="sortColumnRadio" | 274 name="sortColumnRadio" |
259 value="percentDifferingPixels" | 275 value="percentDifferingPixels" |
260 ng-checked="(sortColumnKey == constants.KEY__DIFFERENCES__PER
CENT_DIFF_PIXELS)" | 276 ng-checked="(sortColumnKey == constants.KEY__DIFFERENCES__PER
CENT_DIFF_PIXELS)" |
261 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__DIFFERENCE
S, constants.KEY__DIFFERENCES__PERCENT_DIFF_PIXELS)"> | 277 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__DIFFERENCE
S, constants.KEY__DIFFERENCES__PERCENT_DIFF_PIXELS)"> |
262 differing pixels in white | 278 differing pixels in white |
263 </th> | 279 </th> |
264 <th width="{{imageSize}}"> | 280 <th width="{{imageSize}}"> |
265 <input type="radio" | 281 <input type="radio" |
266 name="sortColumnRadio" | 282 name="sortColumnRadio" |
267 value="weightedDiffMeasure" | 283 value="weightedDiffMeasure" |
268 ng-checked="(sortColumnKey == constants.KEY__DIFFERENCES__PER
CEPTUAL_DIFF)" | 284 ng-checked="(sortColumnKey == constants.KEY__DIFFERENCES__PER
CEPTUAL_DIFF)" |
269 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__DIFFERENCE
S, constants.KEY__DIFFERENCES__PERCEPTUAL_DIFF)"> | 285 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__DIFFERENCE
S, constants.KEY__DIFFERENCES__PERCEPTUAL_DIFF)"> |
270 perceptual difference | 286 perceptual difference |
271 <br> | 287 <br> |
272 <input type="range" ng-model="pixelDiffBgColorBrightness" | 288 <input type="range" ng-model="pixelDiffBgColorBrightness" |
273 ng-init="pixelDiffBgColorBrightness=64; pixelDiffBgColor=brig
htnessStringToHexColor(pixelDiffBgColorBrightness)" | 289 ng-init="pixelDiffBgColorBrightness=64; pixelDiffBgColor=brig
htnessStringToHexColor(pixelDiffBgColorBrightness)" |
274 ng-change="pixelDiffBgColor=brightnessStringToHexColor(pixelD
iffBgColorBrightness)" | 290 ng-change="pixelDiffBgColor=brightnessStringToHexColor(pixelD
iffBgColorBrightness)" |
275 title="image background brightness" | 291 title="image background brightness" |
276 min="0" max="255"/> | 292 min="0" max="255"/> |
277 </th> | 293 </th> |
278 <th> | 294 <th> |
279 <!-- imagepair-selection checkbox column --> | 295 <!-- imagepair-selection checkbox column --> |
280 </th> | 296 </th> |
281 </tr> | 297 </tr> |
282 | 298 |
283 <tr ng-repeat="imagePair in limitedImagePairs" results-updated-callback-
directive> | 299 <tr ng-repeat="imagePair in limitedImagePairs" valign="top" |
| 300 ng-class-odd="'results-odd'" ng-class-even="'results-even'" |
| 301 results-updated-callback-directive> |
284 <td> | 302 <td> |
285 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__
EXTRACOLUMNS__RESULT_TYPE]}} | 303 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__
EXTRACOLUMNS__RESULT_TYPE]}} |
286 <br> | 304 <br> |
287 <button class="show-only-button" | 305 <button class="show-only-button" |
288 ng-show="viewingTab == defaultTab" | 306 ng-show="viewingTab == defaultTab" |
289 ng-click="showOnlyResultType(imagePair[constants.KEY__IMAGEP
AIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE])" | 307 ng-click="showOnlyResultType(imagePair[constants.KEY__IMAGEP
AIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE])" |
290 title="show only results of type {{imagePair[constants.KEY__
IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE]}}"> | 308 title="show only results of type {{imagePair[constants.KEY__
IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE]}}"> |
291 show only | 309 show only |
292 </button> | 310 </button> |
293 <br> | 311 <br> |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 </td> | 356 </td> |
339 <td> | 357 <td> |
340 <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIO
NS][constants.KEY__EXPECTATIONS__BUGS]" | 358 <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIO
NS][constants.KEY__EXPECTATIONS__BUGS]" |
341 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" | 359 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" |
342 target="_blank"> | 360 target="_blank"> |
343 {{bug}} | 361 {{bug}} |
344 </a> | 362 </a> |
345 </td> | 363 </td> |
346 | 364 |
347 <!-- image A --> | 365 <!-- image A --> |
348 <td valign="bottom" width="{{imageSize}}"> | 366 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> |
349 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_A_URL] != nul
l"> | 367 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_A_URL] != nul
l"> |
350 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_A][const
ants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIRS__I
MAGE_A_URL]}}" target="_blank">View Image</a><br/> | 368 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_A][const
ants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIRS__I
MAGE_A_URL]}}" target="_blank">View Image</a><br/> |
351 <img ng-if="showThumbnails" | 369 <img ng-if="showThumbnails" |
352 width="{{imageSize}}" | 370 width="{{imageSize}}" |
353 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_A][c
onstants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIR
S__IMAGE_A_URL]}}" /> | 371 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_A][c
onstants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIR
S__IMAGE_A_URL]}}" /> |
354 </div> | 372 </div> |
355 <div ng-show="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_A_URL] == n
ull" | 373 <div ng-show="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_A_URL] == n
ull" |
356 style="text-align:center"> | 374 style="text-align:center"> |
357 –none– | 375 –none– |
358 </div> | 376 </div> |
359 </td> | 377 </td> |
360 | 378 |
361 <!-- image B --> | 379 <!-- image B --> |
362 <td valign="bottom" width="{{imageSize}}"> | 380 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> |
363 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_B_URL] != nul
l"> | 381 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_B_URL] != nul
l"> |
364 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_B][const
ants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIRS__I
MAGE_B_URL]}}" target="_blank">View Image</a><br/> | 382 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_B][const
ants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIRS__I
MAGE_B_URL]}}" target="_blank">View Image</a><br/> |
365 <img ng-if="showThumbnails" | 383 <img ng-if="showThumbnails" |
366 width="{{imageSize}}" | 384 width="{{imageSize}}" |
367 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_B][c
onstants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIR
S__IMAGE_B_URL]}}" /> | 385 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__IMAGE_B][c
onstants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{imagePair[constants.KEY__IMAGEPAIR
S__IMAGE_B_URL]}}" /> |
368 </div> | 386 </div> |
369 <div ng-show="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_B_URL] == n
ull" | 387 <div ng-show="imagePair[constants.KEY__IMAGEPAIRS__IMAGE_B_URL] == n
ull" |
370 style="text-align:center"> | 388 style="text-align:center"> |
371 –none– | 389 –none– |
372 </div> | 390 </div> |
373 </td> | 391 </td> |
374 | 392 |
375 <!-- whitediffs: every differing pixel shown in white --> | 393 <!-- whitediffs: every differing pixel shown in white --> |
376 <td valign="bottom" width="{{imageSize}}"> | 394 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> |
377 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" | 395 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" |
378 title="{{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][cons
tants.KEY__DIFFERENCES__NUM_DIFF_PIXELS] | number:0}} of {{(100 * imagePair[cons
tants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES__NUM_DIFF_PIXELS]
/ imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES_
_PERCENT_DIFF_PIXELS]) | number:0}} pixels ({{imagePair[constants.KEY__IMAGEPAIR
S__DIFFERENCES][constants.KEY__DIFFERENCES__PERCENT_DIFF_PIXELS].toFixed(4)}}%)
differ from expectation."> | 396 title="{{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][cons
tants.KEY__DIFFERENCES__NUM_DIFF_PIXELS] | number:0}} of {{(100 * imagePair[cons
tants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES__NUM_DIFF_PIXELS]
/ imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES_
_PERCENT_DIFF_PIXELS]) | number:0}} pixels ({{imagePair[constants.KEY__IMAGEPAIR
S__DIFFERENCES][constants.KEY__DIFFERENCES__PERCENT_DIFF_PIXELS].toFixed(4)}}%)
differ from expectation."> |
379 | 397 |
380 {{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY_
_DIFFERENCES__PERCENT_DIFF_PIXELS].toFixed(4)}}% | |
381 ({{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY
__DIFFERENCES__NUM_DIFF_PIXELS]}}) | |
382 <br/> | |
383 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__WHITEDIFFS][co
nstants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePair)}
}" target="_blank">View Image</a><br/> | 398 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__WHITEDIFFS][co
nstants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePair)}
}" target="_blank">View Image</a><br/> |
384 <img ng-if="showThumbnails" | 399 <img ng-if="showThumbnails" |
385 width="{{imageSize}}" | 400 width="{{imageSize}}" |
386 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__WHITEDIFFS
][constants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePa
ir)}}" /> | 401 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__WHITEDIFFS
][constants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePa
ir)}}" /> |
| 402 <br/> |
| 403 {{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY_
_DIFFERENCES__PERCENT_DIFF_PIXELS].toFixed(4)}}% |
| 404 ({{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY
__DIFFERENCES__NUM_DIFF_PIXELS]}}) |
387 </div> | 405 </div> |
388 <div ng-show="!imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" | 406 <div ng-show="!imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" |
389 style="text-align:center"> | 407 style="text-align:center"> |
390 –none– | 408 –none– |
391 </div> | 409 </div> |
392 </td> | 410 </td> |
393 | 411 |
394 <!-- diffs: per-channel RGB deltas --> | 412 <!-- diffs: per-channel RGB deltas --> |
395 <td valign="bottom" width="{{imageSize}}"> | 413 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> |
396 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" | 414 <div ng-if="imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" |
397 title="Perceptual difference measure is {{imagePair[constants.K
EY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES__PERCEPTUAL_DIFF].toFixe
d(4)}}%. Maximum difference per channel: R={{imagePair[constants.KEY__IMAGEPAIR
S__DIFFERENCES][constants.KEY__DIFFERENCES__MAX_DIFF_PER_CHANNEL][0]}}, G={{imag
ePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES__MAX_DI
FF_PER_CHANNEL][1]}}, B={{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][cons
tants.KEY__DIFFERENCES__MAX_DIFF_PER_CHANNEL][2]}}"> | 415 title="Perceptual difference measure is {{imagePair[constants.K
EY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES__PERCEPTUAL_DIFF].toFixe
d(4)}}%. Maximum difference per channel: R={{imagePair[constants.KEY__IMAGEPAIR
S__DIFFERENCES][constants.KEY__DIFFERENCES__MAX_DIFF_PER_CHANNEL][0]}}, G={{imag
ePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY__DIFFERENCES__MAX_DI
FF_PER_CHANNEL][1]}}, B={{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][cons
tants.KEY__DIFFERENCES__MAX_DIFF_PER_CHANNEL][2]}}"> |
398 | 416 |
399 {{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY_
_DIFFERENCES__PERCEPTUAL_DIFF].toFixed(4)}}% | |
400 {{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY_
_DIFFERENCES__MAX_DIFF_PER_CHANNEL]}} | |
401 <br/> | |
402 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__DIFFS][constan
ts.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePair)}}" ta
rget="_blank">View Image</a><br/> | 417 <a href="{{imageSets[constants.KEY__IMAGESETS__SET__DIFFS][constan
ts.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePair)}}" ta
rget="_blank">View Image</a><br/> |
403 <img ng-if="showThumbnails" | 418 <img ng-if="showThumbnails" |
404 ng-style="{backgroundColor: pixelDiffBgColor}" | 419 ng-style="{backgroundColor: pixelDiffBgColor}" |
405 width="{{imageSize}}" | 420 width="{{imageSize}}" |
406 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__DIFFS][con
stants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePair)}}
" /> | 421 ng-src="{{imageSets[constants.KEY__IMAGESETS__SET__DIFFS][con
stants.KEY__IMAGESETS__FIELD__BASE_URL]}}/{{getImageDiffRelativeUrl(imagePair)}}
" /> |
| 422 <br/> |
| 423 {{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY_
_DIFFERENCES__PERCEPTUAL_DIFF].toFixed(4)}}% |
| 424 {{imagePair[constants.KEY__IMAGEPAIRS__DIFFERENCES][constants.KEY_
_DIFFERENCES__MAX_DIFF_PER_CHANNEL]}} |
407 </div> | 425 </div> |
408 <div ng-show="!imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" | 426 <div ng-show="!imagePair[constants.KEY__IMAGEPAIRS__IS_DIFFERENT]" |
409 style="text-align:center"> | 427 style="text-align:center"> |
410 –none– | 428 –none– |
411 </div> | 429 </div> |
412 </td> | 430 </td> |
413 | 431 |
414 <td> | 432 <td ng-if="imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN] > 0" rowspan=
"{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> |
| 433 <br/> |
415 <input type="checkbox" | 434 <input type="checkbox" |
416 name="rowSelect" | 435 name="rowSelect" |
417 value="{{imagePair.index}}" | 436 value="{{imagePair.index}}" |
418 ng-checked="isValueInArray(imagePair.index, selectedImagePair
s)" | 437 ng-checked="isValueInArray(imagePair.index, selectedImagePair
s)" |
419 ng-click="toggleValueInArray(imagePair.index, selectedImagePa
irs)"> | 438 ng-click="toggleSomeImagePairs($index, imagePair[constants.KE
Y__IMAGEPAIRS__ROWSPAN])"> |
420 </tr> | 439 </tr> |
421 </table> <!-- imagePairs --> | 440 </table> <!-- imagePairs --> |
422 </td></tr></table> <!-- table holding results header + imagePairs table --> | 441 </td></tr></table> <!-- table holding results header + imagePairs table --> |
423 | 442 |
424 </div><!-- main display area of selected tab --> | 443 </div><!-- main display area of selected tab --> |
425 </div><!-- everything: hide until data is loaded --> | 444 </div><!-- everything: hide until data is loaded --> |
426 | 445 |
427 </body> | 446 </body> |
428 </html> | 447 </html> |
OLD | NEW |