next.ok source
.seq ~>
@ready = true
- @trigger 'ready', this
@unwait() # terminates the `load` wait
+ @trigger 'ready', this
this
# TODO: toJSON() must ensure columns in MetricList are ordered by index
# ...in theory, MetricList.comparator now does this
+ getDates: ->
+ dates = @metrics.invoke 'getDates'
+ maxLen = _.max _.pluck dates, 'length'
+ _.find dates, -> it.length is maxLen
/**
* @returns {Array} The reified dataset, materialized to an array of data-series arrays.
*/
getData: ->
- '/data/datasources/rc/rc_comscore_region_uv.csv'
+ _.zip ...[ @getDates() ].concat @metrics.invoke 'getData'
+
+ getLabels: ->
+ ['Date'].concat @metrics.pluck 'label'
newMetric: ->
index = @metrics.length
@trigger 'load-error', this, txtStatus, err
+ getDates: ->
+ @data.dateColumn
+
getData: ->
@data.toJSON?() or @data
+ getColumn: (idx) ->
+ @data.columns[idx]
getColumnName: (idx) ->
@get('metrics')?[idx]?.label
@lookupSource()
+ getDates: ->
+ @source.getDates()
+
+ getData: ->
+ @source.getColumn @get 'source_col'
+
lookupSource: ->
if source_id = @get 'source_id'
@wait()
# Redraw chart inside viewport.
renderChart: ->
- data = @model.get 'dataset'
- data = data.getData() if typeof data is not 'string'
+ # data = @model.get 'dataset'
+ # data = data.getData() if typeof data is not 'string'
+ dataset = @model.dataset
+ data = dataset.getData()
size = @resizeViewport()
# XXX: use @model.changedAttributes() to calculate what to update
options = @chartOptions() #import size
options import do
+ labels : dataset.getLabels()
labelsDiv : @$el.find '.graph-label' .0
valueFormatter : @numberFormatterHTML
axes: