Initial commit
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
var CoreView = require('backbone/core-view');
|
||||
var OptionsView = require('./settings/preview/preview-view');
|
||||
var ScrollView = require('builder/components/scroll/scroll-view');
|
||||
var Header = require('./editor-header.js');
|
||||
var PublishView = require('builder/components/modals/publish/publish-view');
|
||||
var ShareButtonView = require('./layers/share-button-view');
|
||||
var PanelWithOptionsView = require('builder/components/view-options/panel-with-options-view');
|
||||
var checkAndBuildOpts = require('builder/helpers/required-opts');
|
||||
|
||||
var REQUIRED_OPTS = [
|
||||
'configModel',
|
||||
'editorModel',
|
||||
'mapDefinitionModel',
|
||||
'mapcapsCollection',
|
||||
'modals',
|
||||
'overlaysCollection',
|
||||
'privacyCollection',
|
||||
'settingsCollection',
|
||||
'userModel',
|
||||
'visDefinitionModel'
|
||||
];
|
||||
|
||||
module.exports = CoreView.extend({
|
||||
|
||||
module: 'editor:editor-settings-pane',
|
||||
|
||||
initialize: function (opts) {
|
||||
checkAndBuildOpts(opts, REQUIRED_OPTS, this);
|
||||
|
||||
this._editorModel.set('edition', false);
|
||||
},
|
||||
|
||||
render: function () {
|
||||
this.clearSubViews();
|
||||
this.$el.empty();
|
||||
|
||||
var header = new Header({
|
||||
userModel: this._userModel,
|
||||
editorModel: this._editorModel,
|
||||
configModel: this._configModel,
|
||||
mapcapsCollection: this._mapcapsCollection,
|
||||
modals: this._modals,
|
||||
visDefinitionModel: this._visDefinitionModel,
|
||||
privacyCollection: this._privacyCollection,
|
||||
clickPrivacyAction: this._share.bind(this),
|
||||
onRemoveMap: this._onRemoveMap.bind(this)
|
||||
});
|
||||
|
||||
header.bind('export-image', function () {
|
||||
this.trigger('export-image', this);
|
||||
}, this);
|
||||
|
||||
this.$el.append(header.render().$el);
|
||||
this.addView(header);
|
||||
|
||||
var view = new PanelWithOptionsView({
|
||||
className: 'Editor-content',
|
||||
editorModel: this._editorModel,
|
||||
infoboxModel: this._infoboxModel,
|
||||
infoboxCollection: this._infoboxCollection,
|
||||
createContentView: function () {
|
||||
return new ScrollView({
|
||||
createContentView: function () {
|
||||
return new OptionsView({
|
||||
mapDefinitionModel: this._mapDefinitionModel,
|
||||
settingsCollection: this._settingsCollection,
|
||||
overlaysCollection: this._overlaysCollection
|
||||
});
|
||||
}.bind(this)
|
||||
});
|
||||
}.bind(this),
|
||||
createActionView: function () {
|
||||
return new ShareButtonView({
|
||||
visDefinitionModel: this._visDefinitionModel,
|
||||
onClickAction: this._share.bind(this)
|
||||
});
|
||||
}.bind(this)
|
||||
});
|
||||
|
||||
this.$el.append(view.render().$el);
|
||||
this.addView(view);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
_share: function () {
|
||||
var publishView = this._modals.create(function (modalModel) {
|
||||
return new PublishView({
|
||||
mapcapsCollection: this._mapcapsCollection,
|
||||
modalModel: modalModel,
|
||||
visDefinitionModel: this._visDefinitionModel,
|
||||
privacyCollection: this._privacyCollection,
|
||||
userModel: this._userModel,
|
||||
configModel: this._configModel,
|
||||
isOwner: this._isOwner()
|
||||
});
|
||||
}.bind(this), {
|
||||
breadcrumbsEnabled: true
|
||||
});
|
||||
|
||||
this.addView(publishView);
|
||||
},
|
||||
|
||||
_onRemoveMap: function () {
|
||||
window.location = this._userModel.get('base_url');
|
||||
},
|
||||
|
||||
_isOwner: function () {
|
||||
return this._visDefinitionModel
|
||||
.getPermissionModel()
|
||||
.isOwner(this._userModel);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user