mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-03 11:55:52 +01:00
Added new parents field with more options
This commit is contained in:
@@ -26,11 +26,9 @@ form:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
route:
|
route:
|
||||||
type: select
|
type: parents
|
||||||
label: PLUGIN_ADMIN.PAGE
|
label: PLUGIN_ADMIN.PARENT
|
||||||
classes: fancy
|
classes: fancy
|
||||||
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
|
|
||||||
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
|
|
||||||
validate:
|
validate:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -75,13 +75,9 @@ form:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
route:
|
route:
|
||||||
type: select
|
type: parents
|
||||||
label: PLUGIN_ADMIN.PARENT
|
label: PLUGIN_ADMIN.PARENT
|
||||||
classes: fancy
|
classes: fancy
|
||||||
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
|
|
||||||
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
|
|
||||||
options:
|
|
||||||
'': PLUGIN_ADMIN.DEFAULT_OPTION_SELECT
|
|
||||||
validate:
|
validate:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ form:
|
|||||||
validation: loose
|
validation: loose
|
||||||
fields:
|
fields:
|
||||||
route:
|
route:
|
||||||
type: select
|
type: parents
|
||||||
label: PLUGIN_ADMIN.PARENT
|
label: PLUGIN_ADMIN.PARENT
|
||||||
classes: fancy
|
classes: fancy
|
||||||
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
|
|
||||||
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
|
|
||||||
options:
|
|
||||||
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
|
|
||||||
|
|||||||
@@ -28,13 +28,9 @@ form:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
route:
|
route:
|
||||||
type: select
|
type: parents
|
||||||
label: PLUGIN_ADMIN.PARENT_PAGE
|
label: PLUGIN_ADMIN.PARENT
|
||||||
classes: fancy
|
classes: fancy
|
||||||
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
|
|
||||||
data-default@: '\Grav\Plugin\Admin\Admin::getLastPageRoute'
|
|
||||||
options:
|
|
||||||
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
|
|
||||||
validate:
|
validate:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,9 @@ form:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
route:
|
route:
|
||||||
type: select
|
type: parents
|
||||||
label: PLUGIN_ADMIN.PARENT_PAGE
|
label: PLUGIN_ADMIN.PARENT
|
||||||
classes: fancy
|
classes: fancy
|
||||||
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
|
|
||||||
data-default@: '\Grav\Plugin\Admin\Admin::getLastPageRoute'
|
|
||||||
options:
|
|
||||||
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
|
|
||||||
validate:
|
validate:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -75,13 +75,11 @@ form:
|
|||||||
required: true
|
required: true
|
||||||
|
|
||||||
route:
|
route:
|
||||||
type: select
|
type: parents
|
||||||
label: PLUGIN_ADMIN.PARENT
|
label: PLUGIN_ADMIN.PARENT
|
||||||
classes: fancy
|
classes: fancy
|
||||||
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
|
validate:
|
||||||
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
|
required: true
|
||||||
options:
|
|
||||||
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
|
|
||||||
|
|
||||||
name:
|
name:
|
||||||
type: select
|
type: select
|
||||||
|
|||||||
@@ -1361,8 +1361,8 @@ class AdminController extends AdminBaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->admin->json_response = [
|
$this->admin->json_response = [
|
||||||
'status' => 'error',
|
'status' => 'success',
|
||||||
'message' => $this->admin->translate('PLUGIN_ADMIN.NO_CHILD_TYPE')
|
'child_type' => 'default'
|
||||||
];
|
];
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
{% extends "forms/field.html.twig" %}
|
{% extends "forms/field.html.twig" %}
|
||||||
|
|
||||||
{% macro options(field, pages, value, depth) %}
|
{% macro options(globals, pages, depth) %}
|
||||||
|
|
||||||
|
{% set field = globals.field %}
|
||||||
|
{% set value = globals.value %}
|
||||||
|
{% set current_page = globals.admin.page %}
|
||||||
|
|
||||||
{% if field.options and depth == 0 %}
|
{% if field.options and depth == 0 %}
|
||||||
{% for key, value in field.options %}
|
{% for key, value in field.options %}
|
||||||
@@ -13,20 +17,24 @@
|
|||||||
{% set depth = depth +1 %}
|
{% set depth = depth +1 %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% set indent = depth == 0 ? '' : repeat('-', depth) ~ ' ' %}
|
{% set indent = depth == 0 ? '' : repeat('—-', depth) ~ '▸ ' %}
|
||||||
|
|
||||||
{% for page in pages.children %}
|
{% for page in pages.children %}
|
||||||
{% if page.routable() or field.show_all %}
|
{% if page.routable() or field.show_all %}
|
||||||
|
{% if not (field.show_self is same as(false) and page.rawRoute() == current_page.rawRoute()) %}
|
||||||
<option {% if page.route == value or (field.multiple and page.route in value) %}selected="selected"{% endif %} value="{{ page.route }}">
|
<option {% if page.route == value or (field.multiple and page.route in value) %}selected="selected"{% endif %} value="{{ page.route }}">
|
||||||
{% if field.show_fullpath %}
|
{% if field.show_fullpath %}
|
||||||
{{ page.route }}
|
{{ page.route }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{indent}} {{ page.menu }}
|
{{indent|raw}} {{ page.menu }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</option>
|
</option>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% if field.limit_levels is not defined or (depth+1 < field.limit_levels) %}
|
||||||
{% if page.children|length > 0 and (field.show_modular or not page.modular()) %}
|
{% if page.children|length > 0 and (field.show_modular or not page.modular()) %}
|
||||||
{{ _self.options(field, page, value, depth + 1) }}
|
{{ _self.options(globals, page, depth + 1) }}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
@@ -39,6 +47,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block input %}
|
{% block input %}
|
||||||
|
|
||||||
<div class="form-select-wrapper {{ field.size }}">
|
<div class="form-select-wrapper {{ field.size }}">
|
||||||
<select class="{{ field.classes }}" name="{{ (scope ~ field.name)|fieldName ~ (field.multiple ? '[]' : '') }}"
|
<select class="{{ field.classes }}" name="{{ (scope ~ field.name)|fieldName ~ (field.multiple ? '[]' : '') }}"
|
||||||
{% if field.autofocus in ['on', 'true', 1] %}autofocus="autofocus"{% endif %}
|
{% if field.autofocus in ['on', 'true', 1] %}autofocus="autofocus"{% endif %}
|
||||||
@@ -47,7 +56,12 @@
|
|||||||
{% if field.multiple in ['on', 'true', 1] %}multiple="multiple"{% endif %}
|
{% if field.multiple in ['on', 'true', 1] %}multiple="multiple"{% endif %}
|
||||||
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
|
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
|
||||||
>
|
>
|
||||||
{{ _self.options(field,pages,value, 0) }}
|
{% if field.start_route %}
|
||||||
|
{% set field = field|merge({show_root: false}) %}
|
||||||
|
{{ _self.options(_context, pages.find(field.start_route), 0) }}
|
||||||
|
{% else %}
|
||||||
|
{{ _self.options(_context, pages, 0) }}
|
||||||
|
{% endif %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{% extends "forms/fields/pages/pages.html.twig" %}
|
||||||
|
|
||||||
|
{% block input %}
|
||||||
|
{% set value = admin.page.parent.rawRoute %}
|
||||||
|
{% set defaults = {show_root:true, show_all: true, show_self: false} %}
|
||||||
|
{% set field = field|merge(defaults) %}
|
||||||
|
{{ parent() }}
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user