@@ -4,8 +4,22 @@ var path = require('path');
4
4
var d3 = require ( 'd3' ) ;
5
5
6
6
var $plotlist = document . getElementById ( 'plot-list' ) ,
7
+ $toggles = document . getElementById ( 'plot-toggles' ) ,
7
8
$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' ) ;
9
23
10
24
var pathToRoot = path . join ( __dirname , '../../' ) ,
11
25
pathToImageTest = path . join ( pathToRoot , 'test/image' ) ,
@@ -33,37 +47,58 @@ imageNames.forEach(function(imageName) {
33
47
function createButton ( imageName ) {
34
48
var button = document . createElement ( 'button' ) ;
35
49
button . style . cssFloat = 'left' ;
36
- button . style . width = '100px' ;
37
50
button . style . height = '40px' ;
38
51
button . innerHTML = imageName ;
52
+ button . style . padding = '0.5em' ;
53
+ button . style . border = '0' ;
54
+ button . style . margin = '1px' ;
55
+ button . style . cursor = 'pointer' ;
39
56
40
57
button . addEventListener ( 'click' , function ( ) {
41
- var imgBaseline = createImg ( dirBaseline , imageName ) ,
42
- imgTest = createImg ( dirTest , imageName ) ,
43
- imgDiff = createImg ( dirDiff , 'diff-' + imageName ) ;
44
-
45
58
d3 . json ( dirMocks + imageName + '.json' , function ( err , mock ) {
46
- $images . innerHTML = '' ;
47
- $images . appendChild ( imgBaseline ) ;
48
- $images . appendChild ( imgTest ) ;
49
- $images . appendChild ( imgDiff ) ;
59
+ $toggles . style . display = 'block' ;
50
60
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 ) ;
53
67
} ) ;
54
68
} ) ;
55
69
56
70
return button ;
57
71
}
58
72
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' ;
63
97
}
64
98
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' ;
69
104
}
0 commit comments