diff --git a/themes/grav/templates/forms/fields/array/array.html.twig b/themes/grav/templates/forms/fields/array/array.html.twig index 66441ec0..7bf5c98b 100644 --- a/themes/grav/templates/forms/fields/array/array.html.twig +++ b/themes/grav/templates/forms/fields/array/array.html.twig @@ -1,13 +1,5 @@ {% extends "forms/field.html.twig" %} -{% block global_attributes %} - data-grav-array-name="{{ (scope ~ field.name)|fieldName }}" - data-grav-array-keyname="{{ field.placeholder_key|e|tu }}" - data-grav-array-valuename="{{ field.placeholder_value|e|tu }}" - data-grav-array-textarea="{{ field.value_type == 'textarea' }}" - {{ parent() }} -{% endblock %} - {% macro renderer(key, text, field, scope) %} {% if text is not iterable %} @@ -20,26 +12,26 @@ {% endif %} + data-grav-array-type="key" + type="text" value="{{ key }}" + {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %} + placeholder="{{ field.placeholder_key|e|tu }}" /> {% endif %} {% if field.value_type == 'textarea' %} + data-grav-array-type="value" + name="{{ ((scope ~ field.name)|fieldName) ~ '[' ~ key ~ ']' }}" + placeholder="{{ field.placeholder_value|e|tu }}" + {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}>{{ text }} {% else %} + data-grav-array-type="value" + type="text" + name="{{ ((scope ~ field.name)|fieldName) ~ '[' ~ key ~ ']' }}" + placeholder="{{ field.placeholder_value|e|tu }}" + {% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %} + value={% if text == 'true' %}true{% elseif text == 'false' %}false{% else %}"{{ text|join(', ')|e }}"{% endif %} /> {% endif %} @@ -48,8 +40,17 @@ {% endif %} {% endmacro %} +{% import _self as array_field %} + +{% block global_attributes %} + data-grav-array-name="{{ (scope ~ field.name)|fieldName }}" + data-grav-array-keyname="{{ field.placeholder_key|e|tu }}" + data-grav-array-valuename="{{ field.placeholder_value|e|tu }}" + data-grav-array-textarea="{{ field.value_type == 'textarea' }}" + {{ parent() }} +{% endblock %} + {% block input %} - {% import _self as array_field %}
{% if value|length %} {% for key, text in value -%} diff --git a/themes/grav/templates/forms/fields/file/file.html.twig b/themes/grav/templates/forms/fields/file/file.html.twig index 1b0bcd8b..c78fab2f 100644 --- a/themes/grav/templates/forms/fields/file/file.html.twig +++ b/themes/grav/templates/forms/fields/file/file.html.twig @@ -1,9 +1,4 @@ {% extends "forms/field.html.twig" %} -{% set defaults = config.plugins.form %} -{% set files = defaults.files|merge(field|default([])) %} -{% set limit = not field.multiple ? 1 : files.limit %} - - {% macro bytesToSize(bytes) -%} {% spaceless %} @@ -43,20 +38,26 @@ {% set real_path = global.admin.getPagePathFromToken(path) %} {% set remove = global.file_url_remove ? global.file_url_remove : (global.base_url_relative ~ '/media.json') %} {% set remove = uri.addNonce( - remove ~ - '/route' ~ config.system.param_sep ~ base64_encode(global.base_path ~ '/' ~ real_path) ~ - '/task' ~ config.system.param_sep ~ 'removeFileFromBlueprint' ~ - '/proute' ~ config.system.param_sep ~ base64_encode(route) ~ - '/blueprint' ~ config.system.param_sep ~ blueprint ~ - '/type' ~ config.system.param_sep ~ type ~ - '/field' ~ config.system.param_sep ~ files.name ~ - '/path' ~ config.system.param_sep ~ base64_encode(value.path), 'admin-form', 'admin-nonce') %} + remove ~ + '/route' ~ config.system.param_sep ~ base64_encode(global.base_path ~ '/' ~ real_path) ~ + '/task' ~ config.system.param_sep ~ 'removeFileFromBlueprint' ~ + '/proute' ~ config.system.param_sep ~ base64_encode(route) ~ + '/blueprint' ~ config.system.param_sep ~ blueprint ~ + '/type' ~ config.system.param_sep ~ type ~ + '/field' ~ config.system.param_sep ~ files.name ~ + '/path' ~ config.system.param_sep ~ base64_encode(value.path), 'admin-form', 'admin-nonce') %} {% set file = value|merge({remove: remove, path: (uri.rootUrl == '/' ? '/' : uri.rootUrl ~ '/' ~ real_path) }) %} {% endif %} {% endmacro %} +{% import _self as macro %} + +{% set defaults = config.plugins.form %} +{% set files = defaults.files|merge(field|default([])) %} +{% set limit = not field.multiple ? 1 : files.limit %} + {% block input %} {% set upload_limit = config.system.media.upload_limit / 1024 / 1024 %} {% set page_can_upload = exists or (type == 'page' and not exists and not (field.destination starts with '@self' or field.destination starts with 'self@')) %} @@ -78,7 +79,7 @@ /> {% for path, file in value %} - {{ _self.preview(path, file, _context) }} + {{ macro.preview(path, file, _context) }} {% endfor %} {% include 'forms/fields/hidden/hidden.html.twig' with {field: {name: '_json.' ~ field.name}, value:value|raw|json_encode} %}
diff --git a/themes/grav/templates/forms/fields/multilevel/multilevel.html.twig b/themes/grav/templates/forms/fields/multilevel/multilevel.html.twig index 6faeab79..fa3c6a6a 100644 --- a/themes/grav/templates/forms/fields/multilevel/multilevel.html.twig +++ b/themes/grav/templates/forms/fields/multilevel/multilevel.html.twig @@ -1,12 +1,5 @@ {% extends "forms/field.html.twig" %} -{% block global_attributes %} - data-grav-array-name="{{ (scope ~ field.name)|fieldName }}" - data-grav-array-keyname="{{ field.placeholder_key|e|tu }}" - data-grav-array-valuename="{{ field.placeholder_value|e|tu }}" - {{ parent() }} -{% endblock %} - {% macro renderer(key, content, field, scope, level, parent_key, up_level) %} {% macro field(value, key, level, globalvars, disable_name, hidden) %} {% set name = 'data[' ~ globalvars.field.name|replace({'.': ']['}) ~ ']' ~ key %} @@ -86,12 +79,21 @@ {% endmacro %} +{% import _self as macro %} + +{% block global_attributes %} + data-grav-array-name="{{ (scope ~ field.name)|fieldName }}" + data-grav-array-keyname="{{ field.placeholder_key|e|tu }}" + data-grav-array-valuename="{{ field.placeholder_value|e|tu }}" + {{ parent() }} +{% endblock %} + {% block input %}
{% if value|length %} {% for key, content in value -%}
- {{ _self.renderer(key, content, field, scope, 0, '[' ~ key ~ ']', true) }} + {{ macro.renderer(key, content, field, scope, 0, '[' ~ key ~ ']', true) }}
{% endfor %} {%- else -%} diff --git a/themes/grav/templates/forms/fields/pages/pages.html.twig b/themes/grav/templates/forms/fields/pages/pages.html.twig index 4ba41cf3..ea31356a 100644 --- a/themes/grav/templates/forms/fields/pages/pages.html.twig +++ b/themes/grav/templates/forms/fields/pages/pages.html.twig @@ -14,6 +14,8 @@ {% endfor %} {% endmacro %} +{% import _self as macro %} + {% block global_attributes %} data-grav-selectize="{{ (field.selectize is defined ? field.selectize : {})|json_encode|e('html_attr') }}" data-grav-field="select" @@ -43,7 +45,7 @@ {% if field.show_root %} {% endif %} - {{ _self.page_options(_context, page_list) }} + {{ macro.page_options(_context, page_list) }}
{% endblock %} diff --git a/themes/grav/templates/forms/fields/permissions/permissions.html.twig b/themes/grav/templates/forms/fields/permissions/permissions.html.twig index e7f6214b..b53a6840 100644 --- a/themes/grav/templates/forms/fields/permissions/permissions.html.twig +++ b/themes/grav/templates/forms/fields/permissions/permissions.html.twig @@ -1,5 +1,12 @@ {% extends "forms/field.html.twig" %} +{% macro spanToggle(input, length) %} + {% set space = repeat('  ', (length - input|length) / 2) %} + {{ (space ~ input ~ space)|raw }} +{% endmacro %} + +{% import _self as macro %} + {% set value = (value is null ? field.default : value) %} {% set value = (value is same as(false) ? 0 : value) %} @@ -8,11 +15,6 @@ data-grav-default="{{ field.default|json_encode()|e('html_attr') }}" {% endblock %} -{% macro spanToggle(input, length) %} - {% set space = repeat('  ', (length - input|length) / 2) %} - {{ (space ~ input ~ space)|raw }} -{% endmacro %} - {% block input %}
{% set permissions = admin.getPermissions %} @@ -56,7 +58,7 @@ {% if field.validate.required in ['on', 'true', 1] %}required="required"{% endif %} /> - + {% endfor %}
diff --git a/themes/grav/templates/forms/fields/toggle/toggle.html.twig b/themes/grav/templates/forms/fields/toggle/toggle.html.twig index 50965469..a37a6008 100644 --- a/themes/grav/templates/forms/fields/toggle/toggle.html.twig +++ b/themes/grav/templates/forms/fields/toggle/toggle.html.twig @@ -1,5 +1,12 @@ {% extends "forms/field.html.twig" %} +{% macro spanToggle(input, length) %} + {% set space = repeat('  ', (length - input|length) / 2) %} + {{ (space ~ input ~ space)|raw }} +{% endmacro %} + +{% import _self as macro %} + {% set value = (value is null ? field.default : value) %} {% set value = (value is same as(false) ? 0 : value) %} @@ -15,11 +22,6 @@ data-grav-field-name="{{ (scope ~ field.name)|fieldName }}" {% endblock %} -{% macro spanToggle(input, length) %} - {% set space = repeat('  ', (length - input|length) / 2) %} - {{ (space ~ input ~ space)|raw }} -{% endmacro %} - {% block input %}
@@ -54,7 +56,7 @@ {% endif %} {% if field.validate.required in ['on', 'true', 1] %}required="required"{% endif %} /> - + {% endfor %}
{% endblock %} diff --git a/themes/grav/templates/pages.html.twig b/themes/grav/templates/pages.html.twig index 0ca53f0d..472d1b92 100644 --- a/themes/grav/templates/pages.html.twig +++ b/themes/grav/templates/pages.html.twig @@ -4,6 +4,85 @@ {{ (repeat('  ', (length - input|length) / 2) ~ input ~ repeat('  ', (length - input|length) / 2))|raw }} {% endmacro %} +{% macro loop(page, depth, twig_vars) %} + {% set config = twig_vars['config'] %} + {% set separator = config.system.param_sep %} + {% set display_field = config.plugins.admin.pages_list_display_field %} + {% set base_url = twig_vars['base_url_relative'] %} + {% set base_url_relative_frontend = twig_vars['base_url_relative_frontend'] %} + {% set base_url_simple = twig_vars['base_url_simple'] %} + {% set admin_route = twig_vars['admin_route'] %} + {% set admin_lang = twig_vars['admin_lang'] %} + {% set warn = twig_vars['warn'] %} + {% set uri = twig_vars['uri'] %} + + {% if page.header.admin.children_display_order == 'collection' and page.header.content.order.by %} + {% if page.header.content.order.custom %} + {% set pcol = page.children().order(page.header.content.order.by, page.header.content.order.dir|default('asc'), page.header.content.order.custom) %} + {% else %} + {% set pcol = page.children().order(page.header.content.order.by, page.header.content.order.dir|default('asc')) %} + {% endif %} + {% else %} + {% set pcol = page.children() %} + {% endif %} + + {% for p in pcol %} + {% set description = (not p.page ? "PLUGIN_ADMIN.FOLDER"|tu ~ ' • ' : "PLUGIN_ADMIN.PAGE"|tu ~ ' • ') ~ + (p.modular ? "PLUGIN_ADMIN.MODULAR"|tu ~ ' • ' : '') ~ + (p.routable ? "PLUGIN_ADMIN.ROUTABLE"|tu ~ ' • ' : "PLUGIN_ADMIN.NON_ROUTABLE"|tu ~ ' • ') ~ + (p.visible ? "PLUGIN_ADMIN.VISIBLE"|tu ~ ' • ' : "PLUGIN_ADMIN.NON_VISIBLE"|tu ~ ' • ') ~ + (p.published ? "PLUGIN_ADMIN.PUBLISHED"|tu ~ ' • ' : "PLUGIN_ADMIN.NON_PUBLISHED"|tu ~ ' • ') %} + + {% set page_url = getPageUrl(p) %} + +
  • +
    + 0 ? 'data-toggle="children"' : ''}}> + + +
    +
    + + {% set page_label = attribute(p.header, display_field)|defined(attribute(p, display_field))|defined(p.title) %} + {{ page_label|e }} + + {% if p.language %} + {{p.language}} + {% endif %} + {% if p.home %} + + {% endif %} +
    +

    {{ p.header.routes.default ?: p.route }} {{ p.template() }}

    +
    + + {% if config.plugins.admin.frontend_preview_target != 'inline' %} + {% set preview_target = config.plugins.admin.frontend_preview_target %} + {% set preview_html = (base_url_relative_frontend|rtrim('/') ~ (p.home ? '' : p.route)) ?: '/' %} + {% set preview_link = p.routable ? ' ' : '' %} + {% else %} + {% set preview_html = (base_url|rtrim('/') ~ '/preview' ~ (p.home ? '' : p.route)) ?: '/' %} + {% set preview_link = p.routable ? ' ' : '' %} + {% endif %} + {{ preview_link|raw }} + {% if warn %} + + {% else %} + + {% endif %} + +
    + {% if p.children().count > 0 %} + + {% endif %} +
  • + {% endfor %} +{% endmacro %} + +{% import _self as macro %} + {% if admin.route %} {% set context = admin.page(true) %} {% endif %} @@ -50,84 +129,6 @@ {% set preview_link = context.routable ? ' ' : '' %} {% endif %} -{% macro loop(page, depth, twig_vars) %} - {% set config = twig_vars['config'] %} - {% set separator = config.system.param_sep %} - {% set display_field = config.plugins.admin.pages_list_display_field %} - {% set base_url = twig_vars['base_url_relative'] %} - {% set base_url_relative_frontend = twig_vars['base_url_relative_frontend'] %} - {% set base_url_simple = twig_vars['base_url_simple'] %} - {% set admin_route = twig_vars['admin_route'] %} - {% set admin_lang = twig_vars['admin_lang'] %} - {% set warn = twig_vars['warn'] %} - {% set uri = twig_vars['uri'] %} - - {% if page.header.admin.children_display_order == 'collection' and page.header.content.order.by %} - {% if page.header.content.order.custom %} - {% set pcol = page.children().order(page.header.content.order.by, page.header.content.order.dir|default('asc'), page.header.content.order.custom) %} - {% else %} - {% set pcol = page.children().order(page.header.content.order.by, page.header.content.order.dir|default('asc')) %} - {% endif %} - {% else %} - {% set pcol = page.children() %} - {% endif %} - - {% for p in pcol %} - {% set description = (not p.page ? "PLUGIN_ADMIN.FOLDER"|tu ~ ' • ' : "PLUGIN_ADMIN.PAGE"|tu ~ ' • ') ~ - (p.modular ? "PLUGIN_ADMIN.MODULAR"|tu ~ ' • ' : '') ~ - (p.routable ? "PLUGIN_ADMIN.ROUTABLE"|tu ~ ' • ' : "PLUGIN_ADMIN.NON_ROUTABLE"|tu ~ ' • ') ~ - (p.visible ? "PLUGIN_ADMIN.VISIBLE"|tu ~ ' • ' : "PLUGIN_ADMIN.NON_VISIBLE"|tu ~ ' • ') ~ - (p.published ? "PLUGIN_ADMIN.PUBLISHED"|tu ~ ' • ' : "PLUGIN_ADMIN.NON_PUBLISHED"|tu ~ ' • ') %} - - {% set page_url = getPageUrl(p) %} - -
  • -
    - 0 ? 'data-toggle="children"' : ''}}> - - -
    -
    - - {% set page_label = attribute(p.header, display_field)|defined(attribute(p, display_field))|defined(p.title) %} - {{ page_label|e }} - - {% if p.language %} - {{p.language}} - {% endif %} - {% if p.home %} - - {% endif %} -
    -

    {{ p.header.routes.default ?: p.route }} {{ p.template() }}

    -
    - - {% if config.plugins.admin.frontend_preview_target != 'inline' %} - {% set preview_target = config.plugins.admin.frontend_preview_target %} - {% set preview_html = (base_url_relative_frontend|rtrim('/') ~ (p.home ? '' : p.route)) ?: '/' %} - {% set preview_link = p.routable ? ' ' : '' %} - {% else %} - {% set preview_html = (base_url|rtrim('/') ~ '/preview' ~ (p.home ? '' : p.route)) ?: '/' %} - {% set preview_link = p.routable ? ' ' : '' %} - {% endif %} - {{ preview_link|raw }} - {% if warn %} - - {% else %} - - {% endif %} - -
    - {% if p.children().count > 0 %} - - {% endif %} -
  • - {% endfor %} -{% endmacro %} - - {% block titlebar %}
    {% if mode == 'list' %} @@ -301,8 +302,8 @@ {% set normalText = "PLUGIN_ADMIN.NORMAL"|tu %} {% set expertText = "PLUGIN_ADMIN.EXPERT"|tu %} {% set maxLen = max([normalText|length, expertText|length]) %} - {% set normalText = _self.spanToggle(normalText, maxLen) %} - {% set expertText = _self.spanToggle(expertText, maxLen) %} + {% set normalText = macro.spanToggle(normalText, maxLen) %} + {% set expertText = macro.spanToggle(expertText, maxLen) %}
    @@ -337,7 +338,7 @@
      - {{ _self.loop(pages, 0, _context) }} + {{ macro.loop(pages, 0, _context) }}
    {% include 'partials/page-legend.html.twig' %}
    diff --git a/themes/grav/templates/partials/media-list-wrapper__sidebar.html.twig b/themes/grav/templates/partials/media-list-wrapper__sidebar.html.twig index 61f15f63..fb176976 100644 --- a/themes/grav/templates/partials/media-list-wrapper__sidebar.html.twig +++ b/themes/grav/templates/partials/media-list-wrapper__sidebar.html.twig @@ -1,12 +1,3 @@ -
    -
    {{ "PLUGIN_ADMIN.PAGES"|tu|e }}
    -
    -
      - {{ _self.loop(pages, 0, _context) }} -
    -
    -
    - {% macro loop(page, depth, twig_vars) %} {% set separator = twig_vars['config'].system.param_sep %} {% set base_url = twig_vars['base_url_relative'] %} @@ -37,10 +28,21 @@
    {% if p.children().count > 0 %} - + {% endif %} {% endfor %} -{% endmacro %} \ No newline at end of file +{% endmacro %} + +{% import _self as macro %} + +
    +
    {{ "PLUGIN_ADMIN.PAGES"|tu|e }}
    +
    +
      + {{ macro.loop(pages, 0, _context) }} +
    +
    +