Initial commit
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
var _ = require('underscore');
|
||||
var CoreView = require('backbone/core-view');
|
||||
var WidgetViewFactory = require('./widgets/widget-view-factory');
|
||||
var TimeSeriesContentView = require('./widgets/time-series/content-view');
|
||||
var TorqueTimeSeriesContentView = require('./widgets/time-series/torque-content-view');
|
||||
|
||||
var TIME_SERIES_TYPE = 'time-series';
|
||||
|
||||
module.exports = CoreView.extend({
|
||||
className: 'CDB-Dashboard-belowMap',
|
||||
|
||||
initialize: function (options) {
|
||||
this._widgetViewFactory = new WidgetViewFactory([
|
||||
{
|
||||
// same type as below, but also check if the associated layer is a a torque layer
|
||||
match: function (widgetModel) {
|
||||
if (widgetModel.get('type') === TIME_SERIES_TYPE) {
|
||||
var dataviewModel = widgetModel.dataviewModel;
|
||||
var layerModel = widgetModel.layerModel;
|
||||
return dataviewModel && layerModel.get('type') === 'torque' && widgetModel.get('animated') === true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
createContentView: function (widgetModel) {
|
||||
return new TorqueTimeSeriesContentView({
|
||||
model: widgetModel
|
||||
});
|
||||
},
|
||||
customizeWidgetAttrs: function (attrs) {
|
||||
attrs.className += ' CDB-Widget--timeSeries';
|
||||
return attrs;
|
||||
}
|
||||
}, {
|
||||
type: TIME_SERIES_TYPE,
|
||||
createContentView: function (widgetModel) {
|
||||
return new TimeSeriesContentView({
|
||||
model: widgetModel
|
||||
});
|
||||
},
|
||||
customizeWidgetAttrs: function (attrs) {
|
||||
attrs.className += ' CDB-Widget--timeSeries';
|
||||
return attrs;
|
||||
}
|
||||
}
|
||||
]);
|
||||
|
||||
this._widgets = options.widgets;
|
||||
this._widgets.bind('add', this._maybeRenderWidgetView, this);
|
||||
this._widgets.bind('reset', this.render, this);
|
||||
this._widgets.bind('add reset remove', this._onWidgetsChange, this);
|
||||
this.add_related_model(this._widgets);
|
||||
},
|
||||
|
||||
render: function () {
|
||||
this.clearSubViews();
|
||||
this.$el.empty();
|
||||
|
||||
this._widgets.each(this._maybeRenderWidgetView, this);
|
||||
this._toggleVisiblity();
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_maybeRenderWidgetView: function (widgetModel) {
|
||||
var view = this._widgetViewFactory.createWidgetView(widgetModel);
|
||||
if (view) {
|
||||
this.addView(view);
|
||||
this.$el.append(view.render().el);
|
||||
}
|
||||
},
|
||||
|
||||
_toggleVisiblity: function () {
|
||||
this.$el.toggle(!_.isEmpty(this._subviews));
|
||||
},
|
||||
|
||||
_onWidgetsChange: function () {
|
||||
this._widgets.each(function (widget) {
|
||||
widget.forceResize();
|
||||
});
|
||||
this._toggleVisiblity();
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user