1
0
mirror of https://github.com/keeweb/keeweb.git synced 2024-06-28 07:50:55 +02:00
keeweb/app/scripts/views/settings/settings-view.js
2015-10-27 22:07:19 +03:00

63 lines
1.8 KiB
JavaScript

'use strict';
var Backbone = require('backbone'),
Scrollable = require('../../mixins/scrollable'),
Keys = require('../../const/keys'),
KeyHandler = require('../../comp/key-handler'),
baron = require('baron');
var SettingsView = Backbone.View.extend({
template: require('templates/settings/settings.html'),
views: null,
events: {
'click .settings__back-button': 'returnToApp'
},
initialize: function () {
this.listenTo(Backbone, 'set-page', this.setPage);
this.views = { };
KeyHandler.onKey(Keys.DOM_VK_ESCAPE, this.returnToApp, this);
},
remove: function() {
KeyHandler.offKey(Keys.DOM_VK_ESCAPE, this.returnToApp, this);
Backbone.View.prototype.remove.call(this);
},
render: function () {
this.renderTemplate();
this.scroll = baron({
root: this.$el.find('.settings')[0],
scroller: this.$el.find('.scroller')[0],
bar: this.$el.find('.scroller__bar')[0],
$: Backbone.$
});
this.scrollerBar = this.$el.find('.scroller__bar');
this.scrollerBarWrapper = this.$el.find('.scroller__bar-wrapper');
this.pageEl = this.$el.find('.scroller');
return this;
},
setPage: function (e) {
if (this.views.page) {
this.views.page.remove();
}
var SettingsPageView = require('./settings-' + e.page + '-view');
this.views.page = new SettingsPageView({ el: this.pageEl, model: e.file });
this.views.page.render();
this.file = e.file;
this.page = e.page;
this.pageResized();
},
returnToApp: function() {
Backbone.trigger('toggle-settings');
}
});
_.extend(SettingsView.prototype, Scrollable);
module.exports = SettingsView;