cartodb/lib/assets/javascripts/dashboard/components/navbar/user-settings-view.js
2020-06-15 10:58:47 +08:00

48 lines
1.1 KiB
JavaScript

var $ = require('jquery');
var CoreView = require('backbone/core-view');
var SettingsDropdownView = require('./user-settings/dropdown-view');
var userSettingsTemplate = require('./user-settings.tpl');
/**
* View to render the user settings section in the header.
* Expected to be created from existing DOM element.
*/
module.exports = CoreView.extend({
events: {
'click .js-dropdown-target': '_createDropdown'
},
render: function () {
var dashboardUrl = this.model.viewUrl().dashboard();
var datasetsUrl = dashboardUrl.datasets();
var mapsUrl = dashboardUrl.maps();
this.$el.html(
userSettingsTemplate({
avatarUrl: this.model.get('avatar_url'),
mapsUrl: mapsUrl,
datasetsUrl: datasetsUrl
})
);
return this;
},
_createDropdown: function (event) {
var view = new SettingsDropdownView({
target: $(event.target),
model: this.model, // user
horizontalOffset: 18
});
view.render();
view.on('onDropdownHidden', function () {
view.clean();
}, this);
view.open();
}
});