@@ -4,8 +4,22 @@ var path = require('path');
44var d3 = require ( 'd3' ) ;
55
66var $plotlist = document . getElementById ( 'plot-list' ) ,
7+ $toggles = document . getElementById ( 'plot-toggles' ) ,
78 $images = document . getElementById ( 'plot-images' ) ,
8- $mock = document . getElementById ( 'plot-mock' ) ;
9+ $mock = document . getElementById ( 'plot-mock' ) ,
10+ $toggleBaseline = document . createElement ( 'button' ) ,
11+ $toggleTest = document . createElement ( 'button' ) ,
12+ $toggleDiff = document . createElement ( 'button' ) ,
13+ $imgBaseline = document . createElement ( 'img' ) ,
14+ $imgTest = document . createElement ( 'img' ) ,
15+ $imgDiff = document . createElement ( 'img' ) ;
16+
17+ $toggles . style . display = 'none' ;
18+ $images . style . display = 'none' ;
19+
20+ setupToggle ( $toggleBaseline , $imgBaseline , 'Baseline' ) ;
21+ setupToggle ( $toggleTest , $imgTest , 'Test' ) ;
22+ setupToggle ( $toggleDiff , $imgDiff , 'Diff' ) ;
923
1024var pathToRoot = path . join ( __dirname , '../../' ) ,
1125 pathToImageTest = path . join ( pathToRoot , 'test/image' ) ,
@@ -33,37 +47,58 @@ imageNames.forEach(function(imageName) {
3347function createButton ( imageName ) {
3448 var button = document . createElement ( 'button' ) ;
3549 button . style . cssFloat = 'left' ;
36- button . style . width = '100px' ;
3750 button . style . height = '40px' ;
3851 button . innerHTML = imageName ;
52+ button . style . padding = '0.5em' ;
53+ button . style . border = '0' ;
54+ button . style . margin = '1px' ;
55+ button . style . cursor = 'pointer' ;
3956
4057 button . addEventListener ( 'click' , function ( ) {
41- var imgBaseline = createImg ( dirBaseline , imageName ) ,
42- imgTest = createImg ( dirTest , imageName ) ,
43- imgDiff = createImg ( dirDiff , 'diff-' + imageName ) ;
44-
4558 d3 . json ( dirMocks + imageName + '.json' , function ( err , mock ) {
46- $images . innerHTML = '' ;
47- $images . appendChild ( imgDiff ) ;
48- $images . appendChild ( imgTest ) ;
49- $images . appendChild ( imgBaseline ) ;
59+ $toggles . style . display = 'block' ;
5060
51- $mock . innerHTML = '' ;
52- $mock . appendChild ( createJSONview ( mock ) ) ;
61+ $images . style . display = 'block' ;
62+ $imgBaseline . src = dirBaseline + imageName + '.png' ;
63+ $imgTest . src = dirTest + imageName + '.png' ;
64+ $imgDiff . src = dirDiff + 'diff-' + imageName + '.png' ;
65+
66+ $mock . innerHTML = JSON . stringify ( mock , null , 2 ) ;
5367 } ) ;
5468 } ) ;
5569
5670 return button ;
5771}
5872
59- function createImg ( dir , name ) {
60- var img = new Image ( ) ;
61- img . src = dir + name + '.png' ;
62- return img ;
73+ function setupToggle ( toggle , img , title ) {
74+ img . title = title ;
75+ toggle . innerHTML = title ;
76+ toggle . style . padding = '0.5em' ;
77+ toggle . style . border = '0' ;
78+ toggle . style . margin = '1px' ;
79+ toggle . style . cursor = 'pointer' ;
80+
81+ checkToggle ( toggle , img ) ;
82+
83+ toggle . addEventListener ( 'click' , function ( ) {
84+ if ( toggle . value === 'checked' ) uncheckToggle ( toggle , img ) ;
85+ else checkToggle ( toggle , img ) ;
86+ } ) ;
87+
88+ $toggles . appendChild ( toggle ) ;
89+ $images . appendChild ( img ) ;
90+ }
91+
92+ function checkToggle ( toggle , img ) {
93+ toggle . value = 'checked' ;
94+ toggle . style . color = '#4c4c4c' ;
95+ toggle . style . backgroundColor = '#f2f1f0' ;
96+ img . style . display = 'inline' ;
6397}
6498
65- function createJSONview ( mock ) {
66- var jsonView = document . createElement ( 'pre' ) ;
67- jsonView . innerHTML = JSON . stringify ( mock , null , 2 ) ;
68- return jsonView ;
99+ function uncheckToggle ( toggle , img ) {
100+ toggle . value = 'unchecked' ;
101+ toggle . style . color = '#f2f1f0' ;
102+ toggle . style . backgroundColor = '#4c4c4c' ;
103+ img . style . display = 'none' ;
69104}
0 commit comments