diff --git a/devtools/image_viewer/index.html b/devtools/image_viewer/index.html index e4e7fc847fa..4b1652409d2 100644 --- a/devtools/image_viewer/index.html +++ b/devtools/image_viewer/index.html @@ -3,8 +3,9 @@
+ - + diff --git a/devtools/image_viewer/viewer.js b/devtools/image_viewer/viewer.js index 8802da4222b..3d777b1de4d 100644 --- a/devtools/image_viewer/viewer.js +++ b/devtools/image_viewer/viewer.js @@ -4,8 +4,22 @@ var path = require('path'); var d3 = require('d3'); var $plotlist = document.getElementById('plot-list'), + $toggles = document.getElementById('plot-toggles'), $images = document.getElementById('plot-images'), - $mock = document.getElementById('plot-mock'); + $mock = document.getElementById('plot-mock'), + $toggleBaseline = document.createElement('button'), + $toggleTest = document.createElement('button'), + $toggleDiff = document.createElement('button'), + $imgBaseline = document.createElement('img'), + $imgTest = document.createElement('img'), + $imgDiff = document.createElement('img'); + +$toggles.style.display = 'none'; +$images.style.display = 'none'; + +setupToggle($toggleBaseline, $imgBaseline, 'Baseline'); +setupToggle($toggleTest, $imgTest, 'Test'); +setupToggle($toggleDiff, $imgDiff, 'Diff'); var pathToRoot = path.join(__dirname, '../../'), pathToImageTest = path.join(pathToRoot, 'test/image'), @@ -33,37 +47,58 @@ imageNames.forEach(function(imageName) { function createButton(imageName) { var button = document.createElement('button'); button.style.cssFloat = 'left'; - button.style.width = '100px'; button.style.height = '40px'; button.innerHTML = imageName; + button.style.padding = '0.5em'; + button.style.border = '0'; + button.style.margin = '1px'; + button.style.cursor = 'pointer'; button.addEventListener('click', function() { - var imgBaseline = createImg(dirBaseline, imageName), - imgTest = createImg(dirTest, imageName), - imgDiff = createImg(dirDiff, 'diff-' + imageName); - d3.json(dirMocks + imageName + '.json', function(err, mock) { - $images.innerHTML = ''; - $images.appendChild(imgBaseline); - $images.appendChild(imgTest); - $images.appendChild(imgDiff); + $toggles.style.display = 'block'; - $mock.innerHTML = ''; - $mock.appendChild(createJSONview(mock)); + $images.style.display = 'block'; + $imgBaseline.src = dirBaseline + imageName + '.png'; + $imgTest.src = dirTest + imageName + '.png'; + $imgDiff.src = dirDiff + 'diff-' + imageName + '.png'; + + $mock.innerHTML = JSON.stringify(mock, null, 2); }); }); return button; } -function createImg(dir, name) { - var img = new Image(); - img.src = dir + name + '.png'; - return img; +function setupToggle(toggle, img, title) { + img.title = title; + toggle.innerHTML = title; + toggle.style.padding = '0.5em'; + toggle.style.border = '0'; + toggle.style.margin = '1px'; + toggle.style.cursor = 'pointer'; + + checkToggle(toggle, img); + + toggle.addEventListener('click', function() { + if(toggle.value === 'checked') uncheckToggle(toggle, img); + else checkToggle(toggle, img); + }); + + $toggles.appendChild(toggle); + $images.appendChild(img); +} + +function checkToggle(toggle, img) { + toggle.value = 'checked'; + toggle.style.color = '#4c4c4c'; + toggle.style.backgroundColor = '#f2f1f0'; + img.style.display = 'inline'; } -function createJSONview(mock) { - var jsonView = document.createElement('pre'); - jsonView.innerHTML = JSON.stringify(mock, null, 2); - return jsonView; +function uncheckToggle(toggle, img) { + toggle.value = 'unchecked'; + toggle.style.color = '#f2f1f0'; + toggle.style.backgroundColor = '#4c4c4c'; + img.style.display = 'none'; }