From f5de0bbf43b2c4727a77fa008f8a74b43c96f262 Mon Sep 17 00:00:00 2001 From: muzaffaryousaf Date: Mon, 27 Apr 2015 11:33:08 +0500 Subject: [PATCH] Enable unit preview by default. TNL-1261 --- .../views/pages/container_subviews_spec.js | 20 +---- cms/static/js/views/pages/container.js | 4 +- .../js/views/pages/container_subviews.js | 17 ++--- cms/templates/container.html | 6 +- .../js/mock/mock-container-page.underscore | 6 +- cms/templates/ux/reference/container.html | 2 +- .../test/acceptance/pages/studio/container.py | 2 +- lms/djangoapps/courseware/access.py | 11 ++- .../courseware/tests/test_access.py | 74 +++++++++++++++---- lms/djangoapps/courseware/views.py | 6 +- lms/envs/common.py | 3 + 11 files changed, 93 insertions(+), 58 deletions(-) diff --git a/cms/static/js/spec/views/pages/container_subviews_spec.js b/cms/static/js/spec/views/pages/container_subviews_spec.js index 8ac10470ed..4f666fce77 100644 --- a/cms/static/js/spec/views/pages/container_subviews_spec.js +++ b/cms/static/js/spec/views/pages/container_subviews_spec.js @@ -78,15 +78,16 @@ define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_hel respondWithJson(json); }; - describe("PreviewActionController", function () { + describe("ViewLiveButtonController", function () { var viewPublishedCss = '.button-view', - previewCss = '.button-preview', visibilityNoteCss = '.note-visibility'; it('renders correctly for unscheduled unit', function () { renderContainerPage(this, mockContainerXBlockHtml); expect(containerPage.$(viewPublishedCss)).toHaveClass(disabledCss); - expect(containerPage.$(previewCss)).not.toHaveClass(disabledCss); + expect(containerPage.$(viewPublishedCss).attr('title')).toBe("Open the courseware in the LMS"); + expect(containerPage.$('.button-preview')).not.toHaveClass(disabledCss); + expect(containerPage.$('.button-preview').attr('title')).toBe("Preview the courseware in the LMS"); }); it('updates when publish state changes', function () { @@ -98,19 +99,6 @@ define(["jquery", "underscore", "underscore.string", "js/common_helpers/ajax_hel expect(containerPage.$(viewPublishedCss)).toHaveClass(disabledCss); }); - it('updates when has_changes attribute changes', function () { - renderContainerPage(this, mockContainerXBlockHtml); - fetch({has_changes: true}); - expect(containerPage.$(previewCss)).not.toHaveClass(disabledCss); - - fetch({published: true, has_changes: false}); - expect(containerPage.$(previewCss)).toHaveClass(disabledCss); - - // If published is false, preview is always enabled. - fetch({published: false, has_changes: false}); - expect(containerPage.$(previewCss)).not.toHaveClass(disabledCss); - }); - it('updates when has_content_group_components attribute changes', function () { renderContainerPage(this, mockContainerXBlockHtml); fetch({has_content_group_components: false}); diff --git a/cms/static/js/views/pages/container.js b/cms/static/js/views/pages/container.js index 2b071c2d99..595a3f95e7 100644 --- a/cms/static/js/views/pages/container.js +++ b/cms/static/js/views/pages/container.js @@ -68,11 +68,11 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views }); this.publishHistory.render(); - this.previewActions = new ContainerSubviews.PreviewActionController({ + this.viewLiveActions = new ContainerSubviews.ViewLiveButtonController({ el: this.$('.nav-actions'), model: this.model }); - this.previewActions.render(); + this.viewLiveActions.render(); this.unitOutlineView = new UnitOutlineView({ el: this.$('.wrapper-unit-overview'), diff --git a/cms/static/js/views/pages/container_subviews.js b/cms/static/js/views/pages/container_subviews.js index 441a4d6860..378e100da4 100644 --- a/cms/static/js/views/pages/container_subviews.js +++ b/cms/static/js/views/pages/container_subviews.js @@ -50,28 +50,21 @@ define(["jquery", "underscore", "gettext", "js/views/baseview", "js/views/utils/ }); /** - * A controller for updating the "View Live" and "Preview" buttons. + * A controller for updating the "View Live" button. */ - var PreviewActionController = ContainerStateListenerView.extend({ + var ViewLiveButtonController = ContainerStateListenerView.extend({ shouldRefresh: function(model) { - return ViewUtils.hasChangedAttributes(model, ['has_changes', 'published']); + return ViewUtils.hasChangedAttributes(model, ['published']); }, render: function() { - var previewAction = this.$el.find('.button-preview'), - viewLiveAction = this.$el.find('.button-view'); + var viewLiveAction = this.$el.find('.button-view'); if (this.model.get('published')) { viewLiveAction.removeClass(disabledCss).attr('aria-disabled', false); } else { viewLiveAction.addClass(disabledCss).attr('aria-disabled', true); } - if (this.model.get('has_changes') || !this.model.get('published')) { - previewAction.removeClass(disabledCss).attr('aria-disabled', false); - } - else { - previewAction.addClass(disabledCss).attr('aria-disabled', true); - } } }); @@ -256,7 +249,7 @@ define(["jquery", "underscore", "gettext", "js/views/baseview", "js/views/utils/ return { 'MessageView': MessageView, - 'PreviewActionController': PreviewActionController, + 'ViewLiveButtonController': ViewLiveButtonController, 'Publisher': Publisher, 'PublishHistory': PublishHistory }; diff --git a/cms/templates/container.html b/cms/templates/container.html index 3fd47ab52c..b93ada88c9 100644 --- a/cms/templates/container.html +++ b/cms/templates/container.html @@ -69,13 +69,13 @@ from django.utils.translation import ugettext as _