* 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
110 lines
4.2 KiB
JavaScript
110 lines
4.2 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
var __hasProp = {}.hasOwnProperty,
|
|
__extends = function(child, parent) {
|
|
var key;
|
|
for (key in parent) {
|
|
if (__hasProp.call(parent, key)) {
|
|
child[key] = parent[key];
|
|
}
|
|
}
|
|
function Ctor() {
|
|
this.constructor = child;
|
|
}
|
|
Ctor.prototype = parent.prototype;
|
|
child.prototype = new Ctor();
|
|
child.__super__ = parent.prototype;
|
|
return child;
|
|
};
|
|
|
|
define(['jquery', 'underscore', 'gettext', 'xblock/runtime.v1', 'js/views/xblock', 'js/views/modals/edit_xblock'],
|
|
function($, _, gettext, XBlock, XBlockView, EditXBlockModal) {
|
|
var ModuleEdit = (function(_super) {
|
|
__extends(ModuleEdit, _super);
|
|
|
|
// eslint-disable-next-line no-shadow
|
|
function ModuleEdit() {
|
|
return ModuleEdit.__super__.constructor.apply(this, arguments);
|
|
}
|
|
|
|
ModuleEdit.prototype.tagName = 'li';
|
|
|
|
ModuleEdit.prototype.className = 'component';
|
|
|
|
ModuleEdit.prototype.editorMode = 'editor-mode';
|
|
|
|
ModuleEdit.prototype.events = {
|
|
'click .edit-button': 'clickEditButton',
|
|
'click .delete-button': 'onDelete'
|
|
};
|
|
|
|
ModuleEdit.prototype.initialize = function() {
|
|
this.onDelete = this.options.onDelete;
|
|
return this.render();
|
|
};
|
|
|
|
ModuleEdit.prototype.loadDisplay = function() {
|
|
var xblockElement;
|
|
xblockElement = this.$el.find('.xblock-student_view');
|
|
if (xblockElement.length > 0) {
|
|
return XBlock.initializeBlock(xblockElement);
|
|
}
|
|
};
|
|
|
|
ModuleEdit.prototype.createItem = function(parent, payload, callback) {
|
|
var _this = this;
|
|
if (_.isNull(callback)) {
|
|
callback = function() {};
|
|
}
|
|
payload.parent_locator = parent;
|
|
return $.postJSON(this.model.urlRoot + '/', payload, function(data) {
|
|
_this.model.set({
|
|
id: data.locator
|
|
});
|
|
_this.$el.data('locator', data.locator);
|
|
_this.$el.data('courseKey', data.courseKey);
|
|
return _this.render();
|
|
}).success(callback);
|
|
};
|
|
|
|
ModuleEdit.prototype.loadView = function(viewName, target, callback) {
|
|
var _this = this;
|
|
if (this.model.id) {
|
|
return $.ajax({
|
|
url: '' + (decodeURIComponent(this.model.url())) + '/' + viewName,
|
|
type: 'GET',
|
|
cache: false,
|
|
headers: {
|
|
Accept: 'application/json'
|
|
},
|
|
success: function(fragment) {
|
|
return _this.renderXBlockFragment(fragment, target).done(callback);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
ModuleEdit.prototype.render = function() {
|
|
var _this = this;
|
|
return this.loadView('student_view', this.$el, function() {
|
|
_this.loadDisplay();
|
|
return _this.delegateEvents();
|
|
});
|
|
};
|
|
|
|
ModuleEdit.prototype.clickEditButton = function(event) {
|
|
var modal;
|
|
event.preventDefault();
|
|
modal = new EditXBlockModal();
|
|
return modal.edit(this.$el, this.model, {
|
|
refresh: _.bind(this.render, this)
|
|
});
|
|
};
|
|
|
|
return ModuleEdit;
|
|
}(XBlockView));
|
|
return ModuleEdit;
|
|
});
|
|
}).call(this);
|