54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
|
var CoreView = require('backbone/core-view');
|
||
|
var CustomListView = require('builder/components/custom-list/custom-list-view');
|
||
|
var CustomListItemView = require('builder/components/custom-list/custom-list-item-view');
|
||
|
var privacyCTATemplate = require('./privacy-cta.tpl');
|
||
|
var _ = require('underscore');
|
||
|
|
||
|
var REQUIRED_OPTS = [
|
||
|
'model',
|
||
|
'collection',
|
||
|
'userModel',
|
||
|
'configModel'
|
||
|
];
|
||
|
|
||
|
module.exports = CoreView.extend({
|
||
|
className: 'Editor-boxModal Privacy-dialog',
|
||
|
|
||
|
initialize: function (opts) {
|
||
|
_.each(REQUIRED_OPTS, function (item) {
|
||
|
if (opts[item] === undefined) throw new Error(item + ' is required');
|
||
|
this['_' + item] = opts[item];
|
||
|
}, this);
|
||
|
},
|
||
|
|
||
|
render: function () {
|
||
|
this.$el.empty();
|
||
|
this.clearSubViews();
|
||
|
this._renderList();
|
||
|
return this;
|
||
|
},
|
||
|
|
||
|
_renderList: function () {
|
||
|
var disabledOptions = this._collection.where({ disabled: true });
|
||
|
var customInstall = this._configModel.get('cartodb_com_hosted');
|
||
|
var upgradeURL = this._configModel.get('upgrade_url');
|
||
|
|
||
|
var listView = new CustomListView({
|
||
|
model: this._model,
|
||
|
collection: this._collection,
|
||
|
itemView: CustomListItemView
|
||
|
});
|
||
|
this.$el.append(listView.render().el);
|
||
|
this.addView(listView);
|
||
|
|
||
|
if (disabledOptions.length > 0 && !customInstall && upgradeURL) {
|
||
|
this.$el.append(
|
||
|
privacyCTATemplate({
|
||
|
upgradeURL: upgradeURL,
|
||
|
showTrial: this._userModel.canStartTrial()
|
||
|
})
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
});
|