UNPKG

apostrophe

Version:

Apostrophe is a user-friendly content management system. You'll need more than this core module. See apostrophenow.org to get started.

98 lines (92 loc) 4.19 kB
{# options: propagate: include the "apply to subpages" checkbox noWorkflow: don't present the "can publish" option even if workflow is on for the project as a whole which: if present, an array which may contain "view" and "edit". If not present, both types of permissions are presented #} {% include "formMacros.html" %} {% macro permissionsEditor(options) %} {% set selectiveOptions = { propagate: options.propagate } %} {% if workflow and not options.noWorkflow %} {% set selectiveOptions = { propagate: options.propagate, extras: [ { name: 'publish', type: 'boolean', label: 'Can publish' } ] } %} {% endif %} {% if (not options.which) or aposContains(options.which, 'view') %} {# Toggles open apos-view-permissions #} <fieldset class="apos-fieldset apos-fieldset-select"> {# I'm commenting this out for now, as it's a decent design pattern #} {# <div data-show-view-permissions class="apos-select-wrapper apos-inline-input apos-accordion-toggle"> <span class="apos-ui-container apos-ui-inline-btn apos-ui-inline-btn--left"> <div class="apos-ui-btn"> <i class="icon icon-plus"></i> </div> </span> {{ __('Who can see this?') }} </div> #} <div data-view-permissions class="apos-view-permissions apos-page-settings-toggle-content"> <label class="apos-modal-form-title">{{ __('Who can see this?') }}</label> <fieldset class="apos-fieldset apos-fieldset-select apos-fieldset-login-required" data-name="{{ loginRequired }}"> {{ formSelect('loginRequired', 'Permitted', [ { value: '', label: 'Public' }, { value: 'public', label: 'Public' }, { value: 'loginRequired', label: 'Login Required' }, { value: 'certainPeople', label: 'Certain People' } ] )}} <span class="apos-propagate"><input type="checkbox" name="loginRequiredPropagate" /><label>{{ __('Apply to Subpages') }}</label></span> </fieldset> {# js shows this class when "Certain People" is chosen #} <div class="apos-view-certain-people"> {{ formSelective('viewGroupIds', 'Groups', selectiveOptions, { placeholder: "Type a group's name" }) }} {{ formSelective('viewPersonIds', 'Individuals', selectiveOptions, { placeholder: "Type a person's name" }) }} </div> <p class="apos-view-permissions-hint">{{ __('Admins can always see everything.') }}</p> </div> </fieldset> {% endif %} {% if (not options.which) or aposContains(options.which, 'edit') %} {# This outer div is for hiding the entirety of edit permissions via JS. -Tom #} <div data-edit-permissions-container> {# Toggles open data-edit-permissions #} <fieldset class="apos-fieldset apos-fieldset-select"> {# <div data-show-edit-permissions class="apos-select-wrapper apos-inline-input apos-accordion-toggle"> <span class="apos-ui-container apos-ui-inline-btn apos-ui-inline-btn--left"> <div class="apos-ui-btn"> <i class="icon icon-plus"></i> </div> </span> {{ __('Who can edit this?') }} </div> #} <div data-edit-permissions class="apos-edit-permissions apos-page-settings-toggle-content"> <label class="apos-modal-form-title">{{ __('Who can edit this?') }}</label> {{ formSelective('editGroupIds', 'Groups', selectiveOptions, { placeholder: "Type a group's name" }) }} {{ formSelective('editPersonIds', 'Individuals', selectiveOptions, { placeholder: "Type a person's name" }) }} {# This won't be true for some site somewhere, give it a class #} <p class="apos-edit-permissions-hint">{{ __('Admins can always edit everything.') }}</p> </div> </div> </div> {% endif %} {% endmacro %}