47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
|
const DashboardHeaderView = require('./dashboard-header-view');
|
||
|
const template = require('dashboard/components/dashboard-header/private-header.tpl');
|
||
|
const checkAndBuildOpts = require('builder/helpers/required-opts');
|
||
|
|
||
|
const REQUIRED_OPTS = [
|
||
|
'viewModel',
|
||
|
'configModel'
|
||
|
];
|
||
|
|
||
|
module.exports = DashboardHeaderView.extend({
|
||
|
className: 'Header CDB-Text',
|
||
|
|
||
|
initialize: function (options) {
|
||
|
checkAndBuildOpts(options, REQUIRED_OPTS, this);
|
||
|
|
||
|
this.router = this.options.router;
|
||
|
this._initBinds();
|
||
|
},
|
||
|
|
||
|
_initBinds: function () {
|
||
|
DashboardHeaderView.prototype._initBinds.apply(this);
|
||
|
this.model.bind('change', this.render, this);
|
||
|
},
|
||
|
|
||
|
render: function () {
|
||
|
this.clearSubViews();
|
||
|
|
||
|
const hasOrganization = this.model.isInsideOrg();
|
||
|
|
||
|
this.$el.html(
|
||
|
template({
|
||
|
organizationName: hasOrganization && this.model.organization.get('name'),
|
||
|
nameOrUsername: this.model.nameOrUsername(),
|
||
|
avatar: this.model.get('avatar_url'),
|
||
|
homeUrl: this.model.viewUrl().dashboard(),
|
||
|
isCartoDBHosted: this._configModel.get('cartodb_com_hosted')
|
||
|
})
|
||
|
);
|
||
|
|
||
|
this._renderBreadcrumbsDropdownLink();
|
||
|
this._renderNotifications();
|
||
|
this._renderLogoLink();
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
});
|