diff --git a/cms/djangoapps/contentstore/views/library.py b/cms/djangoapps/contentstore/views/library.py index 7ea3ebf21932..392e871d4f51 100644 --- a/cms/djangoapps/contentstore/views/library.py +++ b/cms/djangoapps/contentstore/views/library.py @@ -159,4 +159,5 @@ def library_blocks_view(library, response_format): 'unit': None, 'component_templates': json.dumps(component_templates), 'xblock_info': xblock_info, + 'show_children_previews': library.show_children_previews }) diff --git a/cms/djangoapps/contentstore/views/preview.py b/cms/djangoapps/contentstore/views/preview.py index 3e292827b178..39ac169b6b46 100644 --- a/cms/djangoapps/contentstore/views/preview.py +++ b/cms/djangoapps/contentstore/views/preview.py @@ -95,6 +95,12 @@ def handler_url(self, block, handler_name, suffix='', query='', thirdparty=False def local_resource_url(self, block, uri): return local_resource_url(block, uri) + def render(self, block, view_name, context=None): + if not context.get('show_preview', True): + return self.wrap_child(block, view_name, Fragment(), context) + else: + return super(PreviewModuleSystem, self).render(block, view_name, context) + class StudioUserService(object): """ diff --git a/cms/static/coffee/spec/main.coffee b/cms/static/coffee/spec/main.coffee index 0cd0cd2b6f52..0525788a7ba0 100644 --- a/cms/static/coffee/spec/main.coffee +++ b/cms/static/coffee/spec/main.coffee @@ -223,7 +223,7 @@ define([ "js/spec/views/assets_spec", "js/spec/views/baseview_spec", "js/spec/views/container_spec", - "js/spec/views/paging_container_spec", + "js/spec/views/library_container_spec", "js/spec/views/group_configuration_spec", "js/spec/views/paging_spec", "js/spec/views/unit_outline_spec", diff --git a/cms/static/js/spec/views/paging_container_spec.js b/cms/static/js/spec/views/library_container_spec.js similarity index 50% rename from cms/static/js/spec/views/paging_container_spec.js rename to cms/static/js/spec/views/library_container_spec.js index 098a02aed8b5..80f9d732bfdd 100644 --- a/cms/static/js/spec/views/paging_container_spec.js +++ b/cms/static/js/spec/views/library_container_spec.js @@ -1,119 +1,169 @@ define([ "jquery", "underscore", "js/common_helpers/ajax_helpers", "URI", "js/models/xblock_info", - "js/views/paged_container", "js/views/paging_header", "js/views/paging_footer"], - function ($, _, AjaxHelpers, URI, XBlockInfo, PagedContainer, PagingContainer, PagingFooter) { + "js/views/library_container", "js/views/paging_header", "js/views/paging_footer"], + function ($, _, AjaxHelpers, URI, XBlockInfo, LibraryContainer, PagingHeader, PagingFooter) { var htmlResponseTpl = _.template('' + - '
' + '
' ); - function getResponseHtml(options){ + var getResponseHtml = function (options){ + var default_values = { + start: 0, + displayed: PAGE_SIZE, + total: PAGE_SIZE + 1, + previews: true + }; + var eff_options = _.extend(default_values, options); return '
' + '
' + - htmlResponseTpl(options) + + htmlResponseTpl(eff_options) + '' + '
' - } + }; + + var makePage = function(html_parameters) { + return { + resources: [], + html: getResponseHtml(html_parameters) + }; + }; var PAGE_SIZE = 3; - var mockFirstPage = { - resources: [], - html: getResponseHtml({ + var mockFirstPage = makePage({ start: 0, displayed: PAGE_SIZE, total: PAGE_SIZE + 1 - }) - }; + }); - var mockSecondPage = { - resources: [], - html: getResponseHtml({ + var mockSecondPage = makePage({ start: PAGE_SIZE, displayed: 1, total: PAGE_SIZE + 1 - }) - }; + }); - var mockEmptyPage = { - resources: [], - html: getResponseHtml({ + var mockEmptyPage = makePage({ start: 0, displayed: 0, total: 0 - }) - }; + }); - var respondWithMockPage = function(requests) { + var respondWithMockPage = function(requests, response_override) { var requestIndex = requests.length - 1; var request = requests[requestIndex]; var url = new URI(request.url); var queryParameters = url.query(true); // Returns an object with each query parameter stored as a value var page = queryParameters.page_number; var response = page === "0" ? mockFirstPage : mockSecondPage; + if (typeof response_override !== 'undefined') { + response = response_override; + } AjaxHelpers.respondWithJson(requests, response, requestIndex); }; - var MockPagingView = PagedContainer.extend({ + var MockPagingView = LibraryContainer.extend({ view: 'container_preview', el: $("
"), - model: new XBlockInfo({}, {parse: true}) + model: new XBlockInfo({}, {parse: true}), + page_size: PAGE_SIZE, + page_reload_callback: function() {} }); - describe("Paging Container", function() { - var pagingContainer; + describe("Library Container", function() { + var LibraryContainer; beforeEach(function () { var feedbackTpl = readFixtures('system-feedback.underscore'); setFixtures($(" % endfor -
+