Initial commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
const _ = require('underscore');
|
||||
const $ = require('jquery');
|
||||
const CoreView = require('backbone/core-view');
|
||||
|
||||
module.exports = CoreView.extend({
|
||||
|
||||
events: {
|
||||
'click': '_click'
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
_.bindAll(this, 'activate');
|
||||
this.preventDefault = false;
|
||||
},
|
||||
|
||||
activate: function (name) {
|
||||
this.$('a').removeClass('selected');
|
||||
this.$('a[href$="#' + ((this.options.slash) ? '/' : '') + name + '"]').addClass('selected');
|
||||
},
|
||||
|
||||
desactivate: function (name) {
|
||||
this.$('a[href$="#' + ((this.options.slash) ? '/' : '') + name + '"]').removeClass('selected');
|
||||
},
|
||||
|
||||
disable: function (name) {
|
||||
this.$('a[href$="#' + ((this.options.slash) ? '/' : '') + name + '"]').addClass('disabled');
|
||||
},
|
||||
|
||||
enable: function (name) {
|
||||
this.$('a[href$="#' + ((this.options.slash) ? '/' : '') + name + '"]').removeClass('disabled');
|
||||
},
|
||||
|
||||
getTab: function (name) {
|
||||
return this.$('a[href$="#' + ((this.options.slash) ? '/' : '') + name + '"]');
|
||||
},
|
||||
|
||||
disableAll: function () {
|
||||
this.$('a').addClass('disabled');
|
||||
},
|
||||
|
||||
removeDisabled: function () {
|
||||
this.$('.disabled').parent().remove();
|
||||
},
|
||||
|
||||
_click: function (e) {
|
||||
if (e && this.preventDefault) e.preventDefault();
|
||||
|
||||
var t = $(e.target).closest('a');
|
||||
const href = t.attr('href');
|
||||
|
||||
if (!t.hasClass('disabled') && href) {
|
||||
var name = href.replace('#/', '#').split('#')[1];
|
||||
this.trigger('click', name);
|
||||
}
|
||||
},
|
||||
|
||||
linkToPanel: function (panel) {
|
||||
this.preventDefault = true;
|
||||
panel.bind('tabEnabled', this.activate, this);
|
||||
this.bind('click', panel.active, panel);
|
||||
}
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user