* fix: eslint operator-linebreak issue * fix: eslint quotes issue * fix: react jsx indent and props issues * fix: eslint trailing spaces issues * fix: eslint line around directives issue * fix: eslint semi rule * fix: eslint newline per chain rule * fix: eslint space infix ops rule * fix: eslint space-in-parens issue * fix: eslint space before function paren issue * fix: eslint space before blocks issue * fix: eslint arrow body style issue * fix: eslint dot-location issue * fix: eslint quotes issue * fix: eslint quote props issue * fix: eslint operator assignment issue * fix: eslint new line after import issue * fix: indent issues * fix: operator assignment issue * fix: all autofixable eslint issues * fix: all react related fixable issues * fix: autofixable eslint issues * chore: remove all template literals * fix: remaining autofixable issues * chore: apply amnesty on all existing issues * fix: failing xss-lint issues * refactor: apply amnesty on remaining issues * refactor: apply amnesty on new issues * fix: remove file level suppressions * refactor: apply amnesty on new issues
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
// eslint-disable-next-line no-shadow-restricted-names
|
|
(function(define, undefined) {
|
|
'use strict';
|
|
|
|
define(['underscore', 'backbone', 'js/edxnotes/utils/logger'], function(_, Backbone, NotesLogger) {
|
|
var TabModel = Backbone.Model.extend({
|
|
defaults: {
|
|
identifier: '',
|
|
name: '',
|
|
icon: '',
|
|
is_active: false,
|
|
is_closable: false,
|
|
view: ''
|
|
},
|
|
|
|
initialize: function() {
|
|
this.logger = NotesLogger.getLogger('tab');
|
|
},
|
|
|
|
activate: function() {
|
|
this.collection.each(_.bind(function(model) {
|
|
// Inactivate all other models.
|
|
if (model !== this) {
|
|
model.inactivate();
|
|
}
|
|
}, this));
|
|
this.set('is_active', true);
|
|
this.logger.emit('edx.course.student_notes.notes_page_viewed', {
|
|
view: this.get('view')
|
|
});
|
|
},
|
|
|
|
inactivate: function() {
|
|
this.set('is_active', false);
|
|
},
|
|
|
|
isActive: function() {
|
|
return this.get('is_active');
|
|
}
|
|
});
|
|
|
|
return TabModel;
|
|
});
|
|
}).call(this, define || RequireJS.define);
|