| 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 |