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
HTML
{# 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 %}