@@ -113,11 +113,26 @@ const stackedBarChartDefaults =
113
113
maintainAspectRatio : false
114
114
} ;
115
115
116
+ function hasConfig ( element , key )
117
+ {
118
+ return element . data ( 'config' ) && ( key in element . data ( 'config' ) ) ;
119
+ }
120
+
121
+ function readConfig ( element , key )
122
+ {
123
+ if ( ! hasConfig ( element , key ) )
124
+ return undefined ;
125
+
126
+ return element . data ( 'config' ) [ key ] ;
127
+ }
128
+
116
129
function createSpinner ( canvas )
117
130
{
118
131
let parent = $ ( '<div style="position:absolute;height:100%;width:100%;" class="spinner-container"></div>' ) ;
119
132
parent . insertBefore ( $ ( canvas ) ) ;
133
+
120
134
let spinner = new Spinner ( ) . spin ( parent [ 0 ] ) ;
135
+
121
136
return {
122
137
stop : function ( )
123
138
{
@@ -132,6 +147,7 @@ function createHistoryChart(canvas)
132
147
const url = $ ( canvas ) . data ( 'url' ) ;
133
148
134
149
let spinner = createSpinner ( canvas ) ;
150
+
135
151
d3 . tsv ( url ,
136
152
function ( row )
137
153
{
@@ -153,8 +169,7 @@ function createHistoryChart(canvas)
153
169
154
170
const context = canvas . getContext ( '2d' ) ;
155
171
156
- if ( $ ( canvas ) . data ( 'config' ) && 'aggregate' in $ ( canvas ) . data ( 'config' ) &&
157
- $ ( canvas ) . data ( 'config' ) . aggregate == 'weekly' )
172
+ if ( readConfig ( $ ( canvas ) , 'aggregate' ) == 'weekly' )
158
173
{
159
174
let aggregatedData = Array ( ) ;
160
175
data . sort (
@@ -192,21 +207,18 @@ function createHistoryChart(canvas)
192
207
data = aggregatedData ;
193
208
}
194
209
195
- if ( $ ( canvas ) . data ( 'config' ) && 'sliceData' in $ ( canvas ) . data ( 'config ') )
196
- data = data . slice ( $ ( canvas ) . data ( 'config' ) . sliceData [ 0 ] , $ ( canvas ) . data ( 'config' ) . sliceData [ 1 ] ) ;
210
+ if ( hasConfig ( $ ( canvas ) , 'sliceData' ) )
211
+ data = data . slice ( readConfig ( $ ( canvas ) , 'sliceData' ) [ 0 ] , readConfig ( $ ( canvas ) , 'sliceData' ) [ 1 ] ) ;
197
212
198
213
const originalDataSeries = Object . keys ( data [ 0 ] ) . slice ( 1 ) ;
199
214
200
- let dataSeries , visibleDataSeries ;
201
- if ( $ ( canvas ) . data ( 'config' ) && 'series' in $ ( canvas ) . data ( 'config' ) )
202
- dataSeries = $ ( canvas ) . data ( 'config' ) . series ;
203
- else
204
- dataSeries = originalDataSeries ;
215
+ const dataSeries = hasConfig ( $ ( canvas ) , 'series' )
216
+ ? readConfig ( $ ( canvas ) , 'series' )
217
+ : originalDataSeries ;
205
218
206
- if ( $ ( canvas ) . data ( 'config' ) && 'visibleSeries' in $ ( canvas ) . data ( 'config' ) )
207
- visibleDataSeries = $ ( canvas ) . data ( 'config' ) . visibleSeries ;
208
- else
209
- visibleDataSeries = originalDataSeries ;
219
+ const visibleDataSeries = hasConfig ( $ ( canvas ) , 'visibleSeries' )
220
+ ? readConfig ( $ ( canvas ) , 'visibleSeries' )
221
+ : originalDataSeries ;
210
222
211
223
let chartData = Array ( ) ;
212
224
@@ -259,6 +271,7 @@ function createList(canvas)
259
271
const url = $ ( canvas ) . data ( 'url' ) ;
260
272
261
273
let spinner = createSpinner ( canvas ) ;
274
+
262
275
d3 . tsv ( url ,
263
276
function ( row )
264
277
{
@@ -280,19 +293,16 @@ function createList(canvas)
280
293
281
294
const context = canvas . getContext ( '2d' ) ;
282
295
283
- if ( $ ( canvas ) . data ( 'config' ) && 'sliceData' in $ ( canvas ) . data ( 'config ') )
284
- data = data . slice ( $ ( canvas ) . data ( 'config' ) . sliceData [ 0 ] , $ ( canvas ) . data ( 'config' ) . sliceData [ 1 ] ) ;
296
+ if ( hasConfig ( $ ( canvas ) , 'sliceData' ) )
297
+ data = data . slice ( readConfig ( $ ( canvas ) , 'sliceData' ) [ 0 ] , readConfig ( $ ( canvas ) , 'sliceData' ) [ 1 ] ) ;
285
298
286
- let types , visibleTypes ;
287
- if ( $ ( canvas ) . data ( 'config' ) && 'series' in $ ( canvas ) . data ( 'config' ) )
288
- types = $ ( canvas ) . data ( 'config' ) . series ;
289
- else
290
- types = Object . keys ( data [ 0 ] ) . slice ( 1 ) ;
299
+ const types = hasConfig ( $ ( canvas ) , 'series' )
300
+ ? readConfig ( $ ( canvas ) , 'series' )
301
+ : Object . keys ( data [ 0 ] ) . slice ( 1 ) ;
291
302
292
- if ( $ ( canvas ) . data ( 'config' ) && 'visibleSeries' in $ ( canvas ) . data ( 'config' ) )
293
- visibleTypes = $ ( canvas ) . data ( 'config' ) . visibleSeries ;
294
- else
295
- visibleTypes = types ;
303
+ const visibleTypes = hasConfig ( $ ( canvas ) , 'visibleSeries' )
304
+ ? readConfig ( $ ( canvas ) , 'visibleSeries' )
305
+ : types ;
296
306
297
307
let chartData = Array ( ) ;
298
308
@@ -329,8 +339,7 @@ function createList(canvas)
329
339
330
340
$ ( canvas ) . attr ( 'height' , data . length * barWidth ) ;
331
341
332
- const isStacked = $ ( canvas ) . data ( 'config' ) && 'stacked' in $ ( canvas ) . data ( 'config' ) &&
333
- $ ( canvas ) . data ( 'config' ) . stacked ;
342
+ const isStacked = ( readConfig ( $ ( canvas ) , 'stacked' ) == true ) ;
334
343
let options = isStacked ? stackedBarChartDefaults : barChartDefaults ;
335
344
options [ 'legend' ] [ 'display' ] = ( types . length > 1 ) ;
336
345
@@ -366,6 +375,7 @@ function createTable(table)
366
375
const url = $ ( table ) . data ( 'url' ) ;
367
376
368
377
let spinner = createSpinner ( table ) ;
378
+
369
379
d3 . tsv ( url ,
370
380
function ( error , data )
371
381
{
0 commit comments