diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/view-permission-indicator.js b/wagtail/wagtailadmin/static/wagtailadmin/js/view-permission-indicator.js index 52b7442a7..5e84e0840 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/js/view-permission-indicator.js +++ b/wagtail/wagtailadmin/static/wagtailadmin/js/view-permission-indicator.js @@ -2,7 +2,16 @@ $(function() { /* Interface to set view permissions from the explorer / editor */ $('a.action-set-view-permissions').click(function() { ModalWorkflow({ - 'url': this.href + 'url': this.href, + 'responses': { + 'setPermission': function(isPublic) { + if (isPublic) { + $('.view-permission-indicator').removeClass('private').addClass('public'); + } else { + $('.view-permission-indicator').removeClass('public').addClass('private'); + } + } + } }); return false; }); diff --git a/wagtail/wagtailadmin/static/wagtailadmin/scss/components/view-permission-indicator.scss b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/view-permission-indicator.scss new file mode 100644 index 000000000..8e26eaf74 --- /dev/null +++ b/wagtail/wagtailadmin/static/wagtailadmin/scss/components/view-permission-indicator.scss @@ -0,0 +1,8 @@ +.view-permission-indicator { + &.public { + .label-private { display: none; } + } + &.private { + .label-public { display: none; } + } +} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/page_view_restrictions/set_view_restrictions_done.js b/wagtail/wagtailadmin/templates/wagtailadmin/page_view_restrictions/set_view_restrictions_done.js index 3ccc7e057..dafbc7b36 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/page_view_restrictions/set_view_restrictions_done.js +++ b/wagtail/wagtailadmin/templates/wagtailadmin/page_view_restrictions/set_view_restrictions_done.js @@ -1,3 +1,4 @@ function(modal) { + modal.respond('setPermission', {% if is_public %}true{% else %}false{% endif %}); modal.close(); } diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/_editor_css.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/_editor_css.html index 2e140c89c..58d7d5f17 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/_editor_css.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/_editor_css.html @@ -7,6 +7,7 @@ {% compress css %} + {# we'll want tag-it included, for the benefit of any modals that use it, like images. #} {# TODO: a method of injecting these sorts of things on demand when the modal is spawned #} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/_view_permission_indicator.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/_view_permission_indicator.html index 030703aab..ee6a7e3b4 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/_view_permission_indicator.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/_view_permission_indicator.html @@ -5,17 +5,20 @@ {% endif %} {% with page.get_view_restrictions as has_view_restrictions %} - {% if has_view_restrictions %} - {% trans 'Private' as label %} - {% else %} - {% trans 'Public' as label %} - {% endif %} - {% if page_perms.can_set_view_restrictions %} -
- {{ label }} +
+ + {# labels are shown/hidden in CSS according to the 'private' / 'public' class on view-permission-indicator #} + {% trans 'Public' %} + {% trans 'Private' %} +
{% else %} -
{{ label }}
+ {# Read-only display, for users who don't have permission to set view restrictions #} + {% if has_view_restrictions %} +
{% trans 'Private' %}
+ {% else %} +
{% trans 'Public' %}
+ {% endif %} {% endif %} {% endwith %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html index 0f5c25f38..e9e4847dd 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/index.html @@ -1,6 +1,5 @@ {% extends "wagtailadmin/base.html" %} -{% load i18n %} -{% load wagtailadmin_tags %} +{% load i18n wagtailadmin_tags compress %} {% block titletag %}{% blocktrans with title=parent_page.title %}Exploring {{ title }}{% endblocktrans %}{% endblock %} {% block bodyclass %}menu-explorer page-explorer {% if ordering == 'ord' %}reordering{% endif %}{% endblock %} @@ -20,6 +19,12 @@ {% endblock %} +{% block extra_css %} + {% compress css %} + + {% endcompress %} +{% endblock %} + {% block extra_js %} {% comment %} modal-workflow is required by the view restrictions interface {% endcomment %} diff --git a/wagtail/wagtailadmin/views/page_view_restrictions.py b/wagtail/wagtailadmin/views/page_view_restrictions.py index 481ad9ae8..e36e9900d 100644 --- a/wagtail/wagtailadmin/views/page_view_restrictions.py +++ b/wagtail/wagtailadmin/views/page_view_restrictions.py @@ -39,7 +39,9 @@ def set_view_restrictions(request, page_id): page=page, password = form.cleaned_data['password']) return render_modal_workflow( - request, None, 'wagtailadmin/page_view_restrictions/set_view_restrictions_done.js' + request, None, 'wagtailadmin/page_view_restrictions/set_view_restrictions_done.js', { + 'is_public': (form.cleaned_data['restriction_type'] == 'none') + } ) else: # request is a GET