Merge pull request #12037 from edx/fedx/upgrade-backbone
Upgrade backbone via npm.
This commit is contained in:
@@ -52,7 +52,7 @@
|
||||
"text": 'js/vendor/requirejs/text',
|
||||
"underscore": "common/js/vendor/underscore",
|
||||
"underscore.string": "common/js/vendor/underscore.string",
|
||||
"backbone": "js/vendor/backbone-min",
|
||||
"backbone": "common/js/vendor/backbone-min",
|
||||
"backbone-relational" : "js/vendor/backbone-relational.min",
|
||||
"backbone.associations": "js/vendor/backbone-associations-min",
|
||||
"backbone.paginator": "js/vendor/backbone.paginator.min",
|
||||
|
||||
@@ -29,7 +29,7 @@ requirejs.config({
|
||||
"text": "xmodule_js/common_static/js/vendor/requirejs/text",
|
||||
"underscore": "xmodule_js/common_static/common/js/vendor/underscore",
|
||||
"underscore.string": "xmodule_js/common_static/common/js/vendor/underscore.string",
|
||||
"backbone": "xmodule_js/common_static/js/vendor/backbone-min",
|
||||
"backbone": "xmodule_js/common_static/common/js/vendor/backbone-min",
|
||||
"backbone.associations": "xmodule_js/common_static/js/vendor/backbone-associations-min",
|
||||
"backbone.paginator": "xmodule_js/common_static/js/vendor/backbone.paginator.min",
|
||||
"backbone-relational": "xmodule_js/common_static/js/vendor/backbone-relational.min",
|
||||
|
||||
@@ -26,7 +26,7 @@ requirejs.config({
|
||||
"text": "xmodule_js/common_static/js/vendor/requirejs/text",
|
||||
"underscore": "common/js/vendor/underscore",
|
||||
"underscore.string": "common/js/vendor/underscore.string",
|
||||
"backbone": "xmodule_js/common_static/js/vendor/backbone-min",
|
||||
"backbone": "xmodule_js/common_static/common/js/vendor/backbone-min",
|
||||
"backbone.associations": "xmodule_js/common_static/js/vendor/backbone-associations-min",
|
||||
"backbone.paginator": "xmodule_js/common_static/js/vendor/backbone.paginator.min",
|
||||
"tinymce": "xmodule_js/common_static/js/vendor/tinymce/js/tinymce/tinymce.full.min",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
define ["jquery", "jquery.ui", "backbone", "common/js/components/views/feedback_prompt",
|
||||
define ["underscore", "jquery", "jquery.ui", "backbone", "common/js/components/views/feedback_prompt",
|
||||
"common/js/components/views/feedback_notification", "coffee/src/views/module_edit", "js/models/module_info", "js/utils/module"],
|
||||
($, ui, Backbone, PromptView, NotificationView, ModuleEditView, ModuleModel, ModuleUtils) ->
|
||||
(_, $, ui, Backbone, PromptView, NotificationView, ModuleEditView, ModuleModel, ModuleUtils) ->
|
||||
class TabsEdit extends Backbone.View
|
||||
|
||||
initialize: =>
|
||||
initialize: (options) =>
|
||||
@$('.component').each((idx, element) =>
|
||||
model = new ModuleModel({
|
||||
id: $(element).data('locator')
|
||||
@@ -15,7 +15,7 @@ define ["jquery", "jquery.ui", "backbone", "common/js/components/views/feedback_
|
||||
model: model
|
||||
)
|
||||
)
|
||||
|
||||
@options = _.extend({}, options)
|
||||
@options.mast.find('.new-tab').on('click', @addNewTab)
|
||||
$('.add-pages .new-tab').on('click', @addNewTab)
|
||||
$('.toggle-checkbox').on('click', @toggleVisibilityOfTab)
|
||||
|
||||
@@ -26,6 +26,14 @@ define(["jquery", "underscore", "backbone", "gettext", "js/utils/handle_iframe_b
|
||||
//override the constructor function
|
||||
constructor: function(options) {
|
||||
_.bindAll(this, 'beforeRender', 'render', 'afterRender');
|
||||
|
||||
// Merge passed options and view's options property and
|
||||
// attach to the view's options property
|
||||
if (this.options) {
|
||||
options = _.extend({}, _.result(this, 'options'), options);
|
||||
}
|
||||
this.options = options;
|
||||
|
||||
var _this = this;
|
||||
this.render = _.wrap(this.render, function (render, options) {
|
||||
_this.beforeRender();
|
||||
|
||||
@@ -100,8 +100,8 @@ define(['jquery', 'underscore', 'gettext', "js/views/baseview",
|
||||
};
|
||||
var roleEvents = {};
|
||||
var self = this;
|
||||
for (var i = 0; i < self.roles.length; i++) {
|
||||
var role_name = self.roles[i].key;
|
||||
for (var i = 0; i < self.options.roles.length; i++) {
|
||||
var role_name = self.options.roles[i].key;
|
||||
var role_selector = 'click .user-actions .make-' + role_name;
|
||||
|
||||
(function (role) {
|
||||
|
||||
@@ -26,7 +26,7 @@ define(["jquery", "underscore", "gettext", "js/views/baseview"],
|
||||
'click .action-cancel': 'cancel'
|
||||
},
|
||||
|
||||
options: $.extend({}, BaseView.prototype.options, {
|
||||
options: _.extend({}, BaseView.prototype.options, {
|
||||
type: 'prompt',
|
||||
closeIcon: false,
|
||||
icon: false,
|
||||
|
||||
@@ -17,9 +17,9 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview',
|
||||
VerificationAccessEditor, TimedExaminationPreferenceEditor, AccessEditor;
|
||||
|
||||
CourseOutlineXBlockModal = BaseModal.extend({
|
||||
events : {
|
||||
events : _.extend({}, BaseModal.prototype.events, {
|
||||
'click .action-save': 'save'
|
||||
},
|
||||
}),
|
||||
|
||||
options: $.extend({}, BaseModal.prototype.options, {
|
||||
modalName: 'course-outline',
|
||||
@@ -32,7 +32,6 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview',
|
||||
|
||||
initialize: function() {
|
||||
BaseModal.prototype.initialize.call(this);
|
||||
this.events = $.extend({}, BaseModal.prototype.events, this.events);
|
||||
this.template = this.loadTemplate('course-outline-modal');
|
||||
this.options.title = this.getTitle();
|
||||
},
|
||||
@@ -154,10 +153,10 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview',
|
||||
}
|
||||
},
|
||||
|
||||
events: {
|
||||
events: _.extend({}, CourseOutlineXBlockModal.prototype.events, {
|
||||
'click .action-save': 'save',
|
||||
'click .settings-tab-button': 'handleShowTab',
|
||||
},
|
||||
'click .settings-tab-button': 'handleShowTab'
|
||||
}),
|
||||
|
||||
/**
|
||||
* Return request data.
|
||||
@@ -185,9 +184,9 @@ define(['jquery', 'backbone', 'underscore', 'gettext', 'js/views/baseview',
|
||||
|
||||
|
||||
PublishXBlockModal = CourseOutlineXBlockModal.extend({
|
||||
events : {
|
||||
events : _.extend({}, CourseOutlineXBlockModal.prototype.events, {
|
||||
'click .action-publish': 'save'
|
||||
},
|
||||
}),
|
||||
|
||||
initialize: function() {
|
||||
CourseOutlineXBlockModal.prototype.initialize.call(this);
|
||||
|
||||
@@ -9,10 +9,10 @@ define(["jquery", "underscore", "gettext", "js/views/modals/base_modal", "common
|
||||
"strict mode";
|
||||
|
||||
var EditXBlockModal = BaseModal.extend({
|
||||
events : {
|
||||
events: _.extend({}, BaseModal.prototype.events, {
|
||||
"click .action-save": "save",
|
||||
"click .action-modes a": "changeMode"
|
||||
},
|
||||
}),
|
||||
|
||||
options: $.extend({}, BaseModal.prototype.options, {
|
||||
modalName: 'edit-xblock',
|
||||
@@ -25,7 +25,6 @@ define(["jquery", "underscore", "gettext", "js/views/modals/base_modal", "common
|
||||
|
||||
initialize: function() {
|
||||
BaseModal.prototype.initialize.call(this);
|
||||
this.events = _.extend({}, BaseModal.prototype.events, this.events);
|
||||
this.template = this.loadTemplate('edit-xblock-modal');
|
||||
this.editorModeButtonTemplate = this.loadTemplate('editor-mode-button');
|
||||
},
|
||||
|
||||
@@ -38,7 +38,7 @@ define(['jquery', 'underscore', 'gettext', 'js/views/modals/base_modal'],
|
||||
|
||||
return this.template({
|
||||
response: this.response,
|
||||
num_errors: this.response.length,
|
||||
num_errors: this.response.length
|
||||
});
|
||||
},
|
||||
|
||||
@@ -57,7 +57,7 @@ define(['jquery', 'underscore', 'gettext', 'js/views/modals/base_modal'],
|
||||
|
||||
// hide the modal
|
||||
BaseModal.prototype.hide.call(this);
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
return ValidationErrorModal;
|
||||
|
||||
@@ -6,12 +6,14 @@ define(["jquery", "underscore", "gettext", "js/views/pages/container", "js/views
|
||||
'use strict';
|
||||
var PagedXBlockContainerPage = XBlockContainerPage.extend({
|
||||
|
||||
events: {"click .toggle-preview-button": "toggleChildrenPreviews"},
|
||||
events: _.extend({}, XBlockContainerPage.prototype.events, {
|
||||
'click .toggle-preview-button': 'toggleChildrenPreviews'
|
||||
}),
|
||||
|
||||
defaultViewClass: PagedContainerView,
|
||||
components_on_init: false,
|
||||
|
||||
initialize: function (options){
|
||||
this.events = _.extend({}, XBlockContainerPage.prototype.events, this.events);
|
||||
initialize: function (options) {
|
||||
this.page_size = options.page_size || 10;
|
||||
this.showChildrenPreviews = options.showChildrenPreviews || true;
|
||||
XBlockContainerPage.prototype.initialize.call(this, options);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
define(["jquery", "underscore", "gettext", "js/views/modals/base_modal", "jquery.form"],
|
||||
function($, _, gettext, BaseModal) {
|
||||
var UploadDialog = BaseModal.extend({
|
||||
events: {
|
||||
events: _.extend({}, BaseModal.prototype.events, {
|
||||
"change input[type=file]": "selectFile",
|
||||
"click .action-upload": "upload"
|
||||
},
|
||||
}),
|
||||
|
||||
options: $.extend({}, BaseModal.prototype.options, {
|
||||
modalName: 'assetupload',
|
||||
@@ -15,7 +15,6 @@ define(["jquery", "underscore", "gettext", "js/views/modals/base_modal", "jquery
|
||||
|
||||
initialize: function() {
|
||||
BaseModal.prototype.initialize.call(this);
|
||||
this.events = _.extend({}, BaseModal.prototype.events, this.events);
|
||||
this.template = this.loadTemplate("upload-dialog");
|
||||
this.listenTo(this.model, "change", this.renderContents);
|
||||
this.options.title = this.model.get('title');
|
||||
|
||||
@@ -17,11 +17,11 @@ function($, Backbone, _, Utils) {
|
||||
|
||||
uploadTpl: '#file-upload',
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
_.bindAll(this,
|
||||
'changeHandler', 'clickHandler', 'xhrResetProgressBar', 'xhrProgressHandler', 'xhrCompleteHandler'
|
||||
);
|
||||
|
||||
this.options = _.extend({}, options);
|
||||
this.file = false;
|
||||
this.render();
|
||||
},
|
||||
|
||||
@@ -28,11 +28,13 @@ function($, Backbone, _, Utils, FileUploader, gettext) {
|
||||
choose: '#transcripts-choose'
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
_.bindAll(this,
|
||||
'importHandler', 'replaceHandler', 'chooseHandler', 'useExistingHandler', 'showError', 'hideError'
|
||||
);
|
||||
|
||||
this.options = _.extend({}, options);
|
||||
|
||||
this.component_locator = this.$el.closest('[data-locator]').data('locator');
|
||||
|
||||
this.fileUploader = new FileUploader({
|
||||
|
||||
@@ -25,9 +25,10 @@ function($, Backbone, _, AbstractEditor, Utils, MessageManager) {
|
||||
'youtube': 'http://youtube.com/'
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
// Initialize MessageManager that is responsible for
|
||||
// status messages and errors.
|
||||
this.options = _.extend({}, options);
|
||||
var Messenger = this.options.MessageManager || MessageManager;
|
||||
|
||||
this.messenger = new Messenger({
|
||||
|
||||
@@ -37,7 +37,7 @@ lib_paths:
|
||||
- xmodule_js/common_static/js/vendor/jquery.simulate.js
|
||||
- xmodule_js/common_static/common/js/vendor/underscore.js
|
||||
- xmodule_js/common_static/common/js/vendor/underscore.string.js
|
||||
- xmodule_js/common_static/js/vendor/backbone-min.js
|
||||
- xmodule_js/common_static/common/js/vendor/backbone-min.js
|
||||
- xmodule_js/common_static/js/vendor/backbone-associations-min.js
|
||||
- xmodule_js/common_static/js/vendor/backbone.paginator.min.js
|
||||
- xmodule_js/common_static/js/vendor/backbone-relational.min.js
|
||||
|
||||
@@ -36,7 +36,7 @@ lib_paths:
|
||||
- xmodule_js/common_static/js/vendor/jquery.cookie.js
|
||||
- xmodule_js/common_static/common/js/vendor/underscore.js
|
||||
- xmodule_js/common_static/common/js/vendor/underscore.string.js
|
||||
- xmodule_js/common_static/js/vendor/backbone-min.js
|
||||
- xmodule_js/common_static/common/js/vendor/backbone-min.js
|
||||
- xmodule_js/common_static/js/vendor/backbone-associations-min.js
|
||||
- xmodule_js/common_static/js/vendor/backbone.paginator.min.js
|
||||
- xmodule_js/common_static/js/vendor/timepicker/jquery.timepicker.js
|
||||
|
||||
@@ -35,7 +35,7 @@ var libraryFiles = [
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/jquery.simulate.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/underscore.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/underscore.string.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone-associations-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone.paginator.min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone-relational.min.js', included: false},
|
||||
|
||||
@@ -35,7 +35,7 @@ var libraryFiles = [
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/jquery.cookie.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/underscore.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/underscore.string.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone-associations-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone.paginator.min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/timepicker/jquery.timepicker.js', included: false},
|
||||
|
||||
@@ -15,7 +15,7 @@ class RequireJSPathOverridesTest(TestCase):
|
||||
|
||||
OVERRIDES = {
|
||||
'jquery': 'js/vendor/jquery.min.js',
|
||||
'backbone': 'js/vendor/backbone-min.js',
|
||||
'backbone': 'common/js/vendor/backbone-min.js',
|
||||
'text': 'js/vendor/text.js'
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class RequireJSPathOverridesTest(TestCase):
|
||||
"paths: {",
|
||||
"'jquery': 'js/vendor/jquery.min',",
|
||||
"'text': 'js/vendor/text',",
|
||||
"'backbone': 'js/vendor/backbone-min'",
|
||||
"'backbone': 'common/js/vendor/backbone-min'",
|
||||
"}",
|
||||
"});",
|
||||
"}).call(this, require || RequireJS.require);",
|
||||
|
||||
@@ -46,7 +46,7 @@ lib_paths:
|
||||
- common_static/js/vendor/jquery.cookie.js
|
||||
- common_static/js/vendor/json2.js
|
||||
- common_static/common/js/vendor/underscore.js
|
||||
- common_static/js/vendor/backbone-min.js
|
||||
- common_static/common/js/vendor/backbone-min.js
|
||||
- common_static/js/vendor/jquery.leanModal.js
|
||||
- common_static/js/vendor/CodeMirror/codemirror.js
|
||||
- common_static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js
|
||||
|
||||
@@ -45,7 +45,7 @@ var libraryFiles = [
|
||||
{pattern: 'common_static/js/vendor/jquery.cookie.js', included: true},
|
||||
{pattern: 'common_static/js/vendor/json2.js', included: true},
|
||||
{pattern: 'common_static/common/js/vendor/underscore.js', included: true},
|
||||
{pattern: 'common_static/js/vendor/backbone-min.js', included: true},
|
||||
{pattern: 'common_static/common/js/vendor/backbone-min.js', included: true},
|
||||
{pattern: 'common_static/js/vendor/jquery.leanModal.js', included: true},
|
||||
{pattern: 'common_static/js/vendor/CodeMirror/codemirror.js', included: true},
|
||||
{pattern: 'common_static/js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js', included: true},
|
||||
|
||||
@@ -20,6 +20,7 @@ if Backbone?
|
||||
super()
|
||||
@mode = options.mode or "inline" # allowed values are "tab" or "inline"
|
||||
@context = options.context or "course" # allowed values are "course" or "standalone"
|
||||
@course_settings = options.course_settings
|
||||
if @mode not in ["tab", "inline"]
|
||||
throw new Error("invalid mode: " + @mode)
|
||||
|
||||
@@ -307,7 +308,7 @@ if Backbone?
|
||||
model: @model
|
||||
mode: @mode
|
||||
context: @context
|
||||
course_settings: @options.course_settings
|
||||
course_settings: @course_settings
|
||||
)
|
||||
@editView.bind "thread:updated thread:cancel_edit", @closeEditView
|
||||
@editView.bind "comment:endorse", @endorseThread
|
||||
|
||||
@@ -20,7 +20,12 @@
|
||||
'use strict';
|
||||
define(['backbone.paginator'], function (BackbonePaginator) {
|
||||
var PagingCollection = BackbonePaginator.requestPager.extend({
|
||||
initialize: function () {
|
||||
initialize: function (models, options) {
|
||||
options = options || {};
|
||||
if (options.url) {
|
||||
this.url = options.url;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
// These must be initialized in the constructor because otherwise all PagingCollections would point
|
||||
// to the same object references for sortableFields and filterableFields.
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
*/
|
||||
},
|
||||
|
||||
initialize: function() {
|
||||
initialize: function(options) {
|
||||
this.options = _.extend({}, this.options, options);
|
||||
if (!this.options.type) {
|
||||
throw "SystemFeedback: type required (given " +
|
||||
JSON.stringify(this.options) + ")";
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
className: this.type + '-container',
|
||||
itemViewClass: this.itemViewClass
|
||||
});
|
||||
this.listView = new ItemListView({collection: this.options.collection});
|
||||
this.listView = new ItemListView({collection: this.collection});
|
||||
this.headerView = this.createHeaderView();
|
||||
this.footerView = this.createFooterView();
|
||||
this.collection.on('page_changed', function () {
|
||||
@@ -46,12 +46,12 @@
|
||||
paginationLabel: gettext("Pagination"),
|
||||
|
||||
createHeaderView: function() {
|
||||
return new PagingHeader({collection: this.options.collection, srInfo: this.srInfo});
|
||||
return new PagingHeader({collection: this.collection, srInfo: this.srInfo});
|
||||
},
|
||||
|
||||
createFooterView: function() {
|
||||
return new PagingFooter({
|
||||
collection: this.options.collection, hideWhenOnePage: true,
|
||||
collection: this.collection, hideWhenOnePage: true,
|
||||
paginationLabel: this.paginationLabel
|
||||
});
|
||||
},
|
||||
|
||||
@@ -21,8 +21,7 @@ define([
|
||||
current_page: 1,
|
||||
start: 0,
|
||||
results: _.first(results, perPage)
|
||||
},
|
||||
{parse: true}
|
||||
}
|
||||
);
|
||||
collection.start = 0;
|
||||
collection.totalCount = results.length;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'text': 'js/vendor/requirejs/text',
|
||||
'underscore': 'common/js/vendor/underscore',
|
||||
'underscore.string': 'common/js/vendor/underscore.string',
|
||||
'backbone': 'js/vendor/backbone-min',
|
||||
'backbone': 'common/js/vendor/backbone-min',
|
||||
'backbone.associations': 'js/vendor/backbone-associations-min',
|
||||
'backbone.paginator': 'js/vendor/backbone.paginator.min',
|
||||
'backbone-super': 'js/vendor/backbone-super',
|
||||
|
||||
1
common/static/js/vendor/backbone-min.js
vendored
1
common/static/js/vendor/backbone-min.js
vendored
File diff suppressed because one or more lines are too long
@@ -35,7 +35,7 @@ lib_paths:
|
||||
- js/vendor/mustache.js
|
||||
- common/js/vendor/underscore.js
|
||||
- common/js/vendor/underscore.string.js
|
||||
- js/vendor/backbone-min.js
|
||||
- common/js/vendor/backbone-min.js
|
||||
- js/vendor/jquery.timeago.js
|
||||
- js/vendor/URI.min.js
|
||||
- js/vendor/draggabilly.js
|
||||
|
||||
@@ -36,7 +36,7 @@ lib_paths:
|
||||
- js/vendor/jquery.truncate.js
|
||||
- common/js/vendor/underscore.js
|
||||
- common/js/vendor/underscore.string.js
|
||||
- js/vendor/backbone-min.js
|
||||
- common/js/vendor/backbone-min.js
|
||||
- js/vendor/backbone.paginator.min.js
|
||||
- js/vendor/jquery.timeago.js
|
||||
- js/vendor/URI.min.js
|
||||
|
||||
@@ -39,7 +39,7 @@ var libraryFiles = [
|
||||
{pattern: 'js/vendor/mustache.js', included: true},
|
||||
{pattern: 'common/js/vendor/underscore.js', included: true},
|
||||
{pattern: 'common/js/vendor/underscore.string.js', included: true},
|
||||
{pattern: 'js/vendor/backbone-min.js', included: true},
|
||||
{pattern: 'common/js/vendor/backbone-min.js', included: true},
|
||||
{pattern: 'js/vendor/jquery.timeago.js', included: true},
|
||||
{pattern: 'js/vendor/URI.min.js', included: true},
|
||||
{pattern: 'coffee/src/ajax_prefix.js', included: true},
|
||||
|
||||
@@ -37,7 +37,7 @@ var libraryFiles = [
|
||||
{pattern: 'js/vendor/jquery.truncate.js', included: false},
|
||||
{pattern: 'common/js/vendor/underscore.js', included: false},
|
||||
{pattern: 'common/js/vendor/underscore.string.js', included: false},
|
||||
{pattern: 'js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'common/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'js/vendor/backbone.paginator.min.js', included: false},
|
||||
{pattern: 'js/vendor/jquery.timeago.js', included: false},
|
||||
{pattern: 'js/vendor/URI.min.js', included: false},
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
function(PagingCollection) {
|
||||
var BaseCollection = PagingCollection.extend({
|
||||
initialize: function(options) {
|
||||
this.url = options.url;
|
||||
|
||||
PagingCollection.prototype.initialize.call(this);
|
||||
|
||||
this.course_id = options.course_id;
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
define(['teams/js/collections/team'], function (TeamCollection) {
|
||||
var MyTeamsCollection = TeamCollection.extend({
|
||||
initialize: function (teams, options) {
|
||||
this.url = options.url;
|
||||
TeamCollection.prototype.initialize.call(this, teams, options);
|
||||
delete this.server_api.topic_id;
|
||||
this.server_api = _.extend(this.server_api, {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
sortField: 'last_activity_at',
|
||||
|
||||
initialize: function(teams, options) {
|
||||
this.url = options.url;
|
||||
var self = this;
|
||||
BaseCollection.prototype.initialize.call(this, options);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
function(BaseCollection, TeamMembershipModel) {
|
||||
var TeamMembershipCollection = BaseCollection.extend({
|
||||
initialize: function(team_memberships, options) {
|
||||
this.url = options.url;
|
||||
var self = this;
|
||||
BaseCollection.prototype.initialize.call(this, options);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
function(_, gettext, BaseCollection, TopicModel) {
|
||||
var TopicCollection = BaseCollection.extend({
|
||||
initialize: function(topics, options) {
|
||||
|
||||
var self = this;
|
||||
|
||||
BaseCollection.prototype.initialize.call(this, options);
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
},
|
||||
|
||||
initialize: function(options) {
|
||||
this.options = _.extend({}, options);
|
||||
// The URL ends with team_id,request_username. We want to replace
|
||||
// the last occurrence of team_id with the actual team_id, and remove request_username
|
||||
// as the actual user to be removed from the team will be added on before calling DELETE.
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
},
|
||||
|
||||
initialize: function(options) {
|
||||
this.options = _.extend({}, options);
|
||||
this.showSortControls = options.showSortControls;
|
||||
this.context = options.context;
|
||||
this.myTeamsCollection = options.myTeamsCollection;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
this.itemViewClass = TopicCardView.extend({
|
||||
router: options.router,
|
||||
srInfo: this.srInfo
|
||||
|
||||
@@ -1268,7 +1268,7 @@ base_vendor_js = [
|
||||
'js/vendor/requirejs/require.js',
|
||||
'js/RequireJS-namespace-undefine.js',
|
||||
'js/vendor/URI.min.js',
|
||||
'js/vendor/backbone-min.js',
|
||||
'common/js/vendor/backbone-min.js',
|
||||
'edx-pattern-library/js/modernizr-custom.js',
|
||||
]
|
||||
|
||||
|
||||
@@ -9,7 +9,11 @@
|
||||
|
||||
function(Backbone, CertificateInvalidation) {
|
||||
return Backbone.Collection.extend({
|
||||
model: CertificateInvalidation
|
||||
model: CertificateInvalidation,
|
||||
|
||||
initialize: function(models, options) {
|
||||
this.url = options.url;
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
model: CertificateExceptionModel,
|
||||
|
||||
initialize: function(attrs, options){
|
||||
this.url = options.url;
|
||||
this.generate_certificates_url = options.generate_certificates_url;
|
||||
},
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
notes: ''
|
||||
},
|
||||
|
||||
url: function() {
|
||||
return this.get('url');
|
||||
initialize: function (attributes, options) {
|
||||
this.url = options.url;
|
||||
},
|
||||
|
||||
validate: function(attrs) {
|
||||
|
||||
@@ -35,11 +35,15 @@
|
||||
var notes = this.$("#certificate-invalidation-notes").val();
|
||||
var message = "";
|
||||
|
||||
var certificate_invalidation = new CertificateInvalidationModel({
|
||||
url: this.collection.url,
|
||||
user: user,
|
||||
notes: notes
|
||||
});
|
||||
var certificate_invalidation = new CertificateInvalidationModel(
|
||||
{
|
||||
user: user,
|
||||
notes: notes
|
||||
},
|
||||
{
|
||||
url: this.collection.url
|
||||
}
|
||||
);
|
||||
|
||||
if (this.collection.findWhere({user: user})) {
|
||||
message = gettext("Certificate of <%= user %> has already been invalidated. Please check your spelling and retry."); // jshint ignore:line
|
||||
|
||||
@@ -9,6 +9,7 @@ define([
|
||||
initialize: function(models, options) {
|
||||
PagingCollection.prototype.initialize.call(this);
|
||||
|
||||
this.url = options.url;
|
||||
this.perPage = options.perPage;
|
||||
this.server_api = _.pick(this.server_api, "page", "page_size");
|
||||
if (options.text) {
|
||||
|
||||
@@ -11,7 +11,8 @@ define([
|
||||
return 'note-section-' + _.uniqueId();
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
this.template = _.template(this.options.template);
|
||||
this.className = this.options.className;
|
||||
},
|
||||
@@ -37,8 +38,9 @@ define([
|
||||
},
|
||||
template: _.template('<h3 class="course-title"><%- chapterName %></h3>'),
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
this.children = [];
|
||||
this.options = _.extend({}, options);
|
||||
},
|
||||
|
||||
render: function () {
|
||||
|
||||
@@ -17,6 +17,7 @@ define([
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
this.template = templateUtils.loadTemplate('note-item');
|
||||
this.logger = NotesLogger.getLogger('note_item', options.debug);
|
||||
this.listenTo(this.model, 'change:is_expanded', this.render);
|
||||
|
||||
@@ -12,8 +12,9 @@ function (gettext, _, Backbone, NoteItemView, PagingHeaderView, PagingFooterView
|
||||
'tabindex': -1
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
this.children = [];
|
||||
this.options = _.extend({}, options);
|
||||
if (this.options.createHeaderFooter) {
|
||||
this.pagingHeaderView = new PagingHeaderView({collection: this.collection});
|
||||
this.pagingFooterView = new PagingFooterView({collection: this.collection, hideWhenOnePage: true});
|
||||
|
||||
@@ -52,6 +52,7 @@ define([
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
_.bindAll(this, 'onBeforeSearchStart', 'onSearch', 'onSearchError');
|
||||
TabView.prototype.initialize.call(this, options);
|
||||
this.searchResults = null;
|
||||
|
||||
@@ -24,6 +24,7 @@ define([
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
TabView.prototype.initialize.call(this, options);
|
||||
_.bindAll(this, 'scrollToTag');
|
||||
this.options.scrollToTag = this.scrollToTag;
|
||||
|
||||
@@ -29,7 +29,7 @@ define([
|
||||
|
||||
beforeEach(function() {
|
||||
|
||||
certificate_invalidation = new CertificateInvalidationModel({user: 'test_user'});
|
||||
certificate_invalidation = new CertificateInvalidationModel({user: 'test_user'}, {url: 'test/url/'});
|
||||
certificate_invalidation.set({
|
||||
notes: "Test notes"
|
||||
});
|
||||
@@ -174,7 +174,9 @@ define([
|
||||
it("verifies view is rendered on add/remove to collection", function() {
|
||||
var user = 'test3',
|
||||
notes = 'test3 notes',
|
||||
model = new CertificateInvalidationModel({user: user, notes: notes});
|
||||
model = new CertificateInvalidationModel(
|
||||
{user: user, notes: notes}, {url: certificate_invalidation_url}
|
||||
);
|
||||
|
||||
// Add another model in collection and verify it is rendered
|
||||
view.collection.add(model);
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
'text': 'xmodule_js/common_static/js/vendor/requirejs/text',
|
||||
'underscore': 'common/js/vendor/underscore',
|
||||
'underscore.string': 'common/js/vendor/underscore.string',
|
||||
'backbone': 'xmodule_js/common_static/js/vendor/backbone-min',
|
||||
'backbone': 'xmodule_js/common_static/common/js/vendor/backbone-min',
|
||||
'backbone.associations': 'xmodule_js/common_static/js/vendor/backbone-associations-min',
|
||||
'backbone.paginator': 'xmodule_js/common_static/js/vendor/backbone.paginator.min',
|
||||
'backbone-super': 'js/vendor/backbone-super',
|
||||
|
||||
@@ -654,6 +654,7 @@ define([
|
||||
|
||||
function navigatesToSearch () {
|
||||
var requests = AjaxHelpers.requests(this);
|
||||
Backbone.history.start();
|
||||
Backbone.history.loadUrl('search/query');
|
||||
expect(requests[0].requestBody).toContain('search_string=query');
|
||||
}
|
||||
@@ -687,6 +688,10 @@ define([
|
||||
this.$searchResults = $('.courseware-results');
|
||||
});
|
||||
|
||||
afterEach(function (){
|
||||
Backbone.history.stop();
|
||||
});
|
||||
|
||||
it('shows loading message on search', showsLoadingMessage);
|
||||
it('performs search', performsSearch);
|
||||
it('shows an error message', showsErrorMessage);
|
||||
@@ -715,6 +720,10 @@ define([
|
||||
this.$searchResults = $('#dashboard-search-results');
|
||||
});
|
||||
|
||||
afterEach(function (){
|
||||
Backbone.history.stop();
|
||||
});
|
||||
|
||||
it('shows loading message on search', showsLoadingMessage);
|
||||
it('performs search', performsSearch);
|
||||
it('shows an error message', showsErrorMessage);
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
AccountSettingsFieldViews.PasswordFieldView = FieldViews.LinkFieldView.extend({
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
this._super(options);
|
||||
_.bindAll(this, 'resetPassword');
|
||||
},
|
||||
@@ -111,6 +112,7 @@
|
||||
AccountSettingsFieldViews.AuthFieldView = FieldViews.LinkFieldView.extend({
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
this._super(options);
|
||||
_.bindAll(this, 'redirect_to', 'disconnect', 'successMessage', 'inProgressMessage');
|
||||
},
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
var AccountSettingsView = Backbone.View.extend({
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
_.bindAll(this, 'render', 'renderFields', 'showLoadingError');
|
||||
},
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
var BadgeView = Backbone.View.extend({
|
||||
initialize: function(options) {
|
||||
this.options = _.extend({}, options);
|
||||
this.context = _.extend(this.options.model.toJSON(), {
|
||||
'created': new Moment(this.options.model.toJSON().created),
|
||||
'ownProfile': options.ownProfile,
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
|
||||
var LearnerProfileView = Backbone.View.extend({
|
||||
|
||||
initialize: function () {
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
_.bindAll(this, 'showFullProfile', 'render', 'renderFields', 'showLoadingError');
|
||||
this.listenTo(this.options.preferencesModel, "change:" + 'account_privacy', this.render);
|
||||
var Router = Backbone.Router.extend({
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
'class': 'wrapper-profile-section-two'
|
||||
},
|
||||
template: _.template(sectionTwoTemplate),
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
},
|
||||
render: function () {
|
||||
var self = this;
|
||||
var showFullProfile = this.options.showFullProfile();
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
'focus .focusguard-start': 'focusGuardStart',
|
||||
'focus .focusguard-end': 'focusGuardEnd'
|
||||
},
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
},
|
||||
focusGuardStart: function () {
|
||||
// Should only be selected directly if shift-tabbing from the start, so grab last item.
|
||||
this.$el.find("a").last().focus();
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
'success': gettext('Your changes have been saved.')
|
||||
},
|
||||
|
||||
constructor: function(options) {
|
||||
this.options = _.extend({}, options);
|
||||
Backbone.View.apply(this, arguments);
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
|
||||
this.template = _.template(this.fieldTemplate || '');
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
this.options = _.extend({}, options);
|
||||
this._super(options);
|
||||
_.bindAll(this, 'render', 'imageChangeSucceeded', 'imageChangeFailed', 'fileSelected',
|
||||
'watchForPageUnload', 'onBeforeUnload');
|
||||
|
||||
@@ -57,7 +57,7 @@ lib_paths:
|
||||
- xmodule_js/common_static/js/src/
|
||||
- xmodule_js/common_static/common/js/vendor/underscore.js
|
||||
- xmodule_js/common_static/common/js/vendor/underscore.string.js
|
||||
- xmodule_js/common_static/js/vendor/backbone-min.js
|
||||
- xmodule_js/common_static/common/js/vendor/backbone-min.js
|
||||
- xmodule_js/common_static/js/vendor/backbone.paginator.min.js
|
||||
- xmodule_js/common_static/js/vendor/edxnotes/annotator-full.min.js
|
||||
- xmodule_js/common_static/js/test/i18n.js
|
||||
|
||||
@@ -61,7 +61,7 @@ var libraryFiles = [
|
||||
{pattern: 'xmodule_js/common_static/js/src/**/*.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/underscore.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/underscore.string.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/common/js/vendor/backbone-min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/backbone.paginator.min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/edxnotes/annotator-full.min.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/test/i18n.js', included: false},
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
"moment-with-locales": "xmodule_js/common_static/js/vendor/moment-with-locales.min",
|
||||
"text": "js/vendor/requirejs/text",
|
||||
"logger": "js/src/logger",
|
||||
"backbone": "js/vendor/backbone-min",
|
||||
"backbone": "common/js/vendor/backbone-min",
|
||||
"backbone-super": "js/vendor/backbone-super",
|
||||
"backbone.paginator": "js/vendor/backbone.paginator.min",
|
||||
"underscore": "common/js/vendor/underscore",
|
||||
|
||||
@@ -13,7 +13,7 @@ from openedx.core.djangolib.js_utils import (
|
||||
var save_url = '${save_url | n, js_escaped_string}';
|
||||
var schedule = ${schedule | n, dump_js_escaped_json};
|
||||
</script>
|
||||
<script src="${static.url('js/vendor/backbone-min.js')}"></script>
|
||||
<script src="${static.url('common/js/vendor/backbone-min.js')}"></script>
|
||||
<script src="${static.url('js/vendor/timepicker/jquery.timepicker.js')}"></script>
|
||||
<link rel="stylesheet" type="text/css" href="${static.url('js/vendor/timepicker/jquery.timepicker.css')}" />
|
||||
<style>
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
"uglify-js": "2.4.24",
|
||||
"underscore": "~1.8.3",
|
||||
"underscore.string": "~3.3.4",
|
||||
"picturefill": "~3.0.2"
|
||||
"picturefill": "~3.0.2",
|
||||
"backbone": "~1.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"edx-custom-a11y-rules": "edx/edx-custom-a11y-rules",
|
||||
|
||||
@@ -47,7 +47,8 @@ SASS_LOAD_PATHS = [
|
||||
NPM_INSTALLED_LIBRARIES = [
|
||||
'underscore/underscore.js',
|
||||
'underscore.string/dist/underscore.string.js',
|
||||
'picturefill/dist/picturefill.min.js'
|
||||
'picturefill/dist/picturefill.min.js',
|
||||
'backbone/backbone-min.js',
|
||||
]
|
||||
|
||||
# Directory to install static vendor files
|
||||
|
||||
Reference in New Issue
Block a user