Files
edx-platform/cms/static/js/views/pages/paged_container.js

52 lines
2.2 KiB
JavaScript

/**
* PagedXBlockContainerPage is a variant of XBlockContainerPage that supports Pagination.
*/
define(["jquery", "underscore", "gettext", "js/views/pages/container", "js/views/paged_container"],
function ($, _, gettext, XBlockContainerPage, PagedContainerView) {
'use strict';
var PagedXBlockContainerPage = XBlockContainerPage.extend({
events: {"click .toggle-preview-button": "toggleChildrenPreviews"},
defaultViewClass: PagedContainerView,
components_on_init: false,
initialize: function (options){
this.events = _.extend({}, XBlockContainerPage.prototype.events, this.events);
this.page_size = options.page_size || 10;
this.showChildrenPreviews = options.showChildrenPreviews || true;
XBlockContainerPage.prototype.initialize.call(this, options);
},
getViewParameters: function () {
return _.extend(XBlockContainerPage.prototype.getViewParameters.call(this), {
page_size: this.page_size,
page: this
});
},
refreshXBlock: function(element, block_added, is_duplicate) {
var xblockElement = this.findXBlockElement(element),
rootLocator = this.xblockView.model.id;
if (xblockElement.length === 0 || xblockElement.data('locator') === rootLocator) {
this.render({refresh: true, block_added: block_added});
} else {
this.refreshChildXBlock(xblockElement, block_added, is_duplicate);
}
},
toggleChildrenPreviews: function(xblockElement) {
xblockElement.preventDefault();
this.xblockView.togglePreviews();
},
updatePreviewButton: function(show_previews){
var text = (show_previews) ? gettext('Hide Previews') : gettext('Show Previews'),
button = $('.nav-actions .button-toggle-preview');
this.$(".preview-text", button).text(text);
this.$('.toggle-preview-button').removeClass("is-hidden");
}
});
return PagedXBlockContainerPage;
});