diff --git a/blueprints/admin/pages/modular_new.yaml b/blueprints/admin/pages/modular_new.yaml index 966b5cbd..14b12ab4 100644 --- a/blueprints/admin/pages/modular_new.yaml +++ b/blueprints/admin/pages/modular_new.yaml @@ -26,11 +26,9 @@ form: required: true route: - type: select - label: PLUGIN_ADMIN.PAGE + type: parents + label: PLUGIN_ADMIN.PARENT classes: fancy - data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes' - data-default@: '\Grav\Plugin\Admin\Admin::rawRoute' validate: required: true diff --git a/blueprints/admin/pages/modular_raw.yaml b/blueprints/admin/pages/modular_raw.yaml index 11086667..5e7af1e6 100644 --- a/blueprints/admin/pages/modular_raw.yaml +++ b/blueprints/admin/pages/modular_raw.yaml @@ -75,13 +75,9 @@ form: required: true route: - type: select + type: parents label: PLUGIN_ADMIN.PARENT classes: fancy - data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes' - data-default@: '\Grav\Plugin\Admin\Admin::rawRoute' - options: - '': PLUGIN_ADMIN.DEFAULT_OPTION_SELECT validate: required: true diff --git a/blueprints/admin/pages/move.yaml b/blueprints/admin/pages/move.yaml index 3f9eda1f..89fa414d 100644 --- a/blueprints/admin/pages/move.yaml +++ b/blueprints/admin/pages/move.yaml @@ -2,10 +2,6 @@ form: validation: loose fields: route: - type: select + type: parents label: PLUGIN_ADMIN.PARENT classes: fancy - data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes' - data-default@: '\Grav\Plugin\Admin\Admin::rawRoute' - options: - '/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT diff --git a/blueprints/admin/pages/new.yaml b/blueprints/admin/pages/new.yaml index 78c7cecb..2e921282 100644 --- a/blueprints/admin/pages/new.yaml +++ b/blueprints/admin/pages/new.yaml @@ -28,13 +28,9 @@ form: required: true route: - type: select - label: PLUGIN_ADMIN.PARENT_PAGE + type: parents + label: PLUGIN_ADMIN.PARENT classes: fancy - data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes' - data-default@: '\Grav\Plugin\Admin\Admin::getLastPageRoute' - options: - '/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT validate: required: true diff --git a/blueprints/admin/pages/new_folder.yaml b/blueprints/admin/pages/new_folder.yaml index 44d53fc8..5fbcac4f 100644 --- a/blueprints/admin/pages/new_folder.yaml +++ b/blueprints/admin/pages/new_folder.yaml @@ -21,13 +21,9 @@ form: required: true route: - type: select - label: PLUGIN_ADMIN.PARENT_PAGE + type: parents + label: PLUGIN_ADMIN.PARENT classes: fancy - data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes' - data-default@: '\Grav\Plugin\Admin\Admin::getLastPageRoute' - options: - '/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT validate: required: true diff --git a/blueprints/admin/pages/raw.yaml b/blueprints/admin/pages/raw.yaml index f61cf95f..e1d1502e 100644 --- a/blueprints/admin/pages/raw.yaml +++ b/blueprints/admin/pages/raw.yaml @@ -75,13 +75,11 @@ form: required: true route: - type: select + type: parents label: PLUGIN_ADMIN.PARENT classes: fancy - data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes' - data-default@: '\Grav\Plugin\Admin\Admin::rawRoute' - options: - '/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT + validate: + required: true name: type: select diff --git a/classes/admincontroller.php b/classes/admincontroller.php index 5b73aec6..7514d07e 100644 --- a/classes/admincontroller.php +++ b/classes/admincontroller.php @@ -1361,8 +1361,8 @@ class AdminController extends AdminBaseController } $this->admin->json_response = [ - 'status' => 'error', - 'message' => $this->admin->translate('PLUGIN_ADMIN.NO_CHILD_TYPE') + 'status' => 'success', + 'child_type' => 'default' ]; return true; diff --git a/themes/grav/templates/forms/fields/pages/pages.html.twig b/themes/grav/templates/forms/fields/pages/pages.html.twig index 9f6c62c2..148eb143 100644 --- a/themes/grav/templates/forms/fields/pages/pages.html.twig +++ b/themes/grav/templates/forms/fields/pages/pages.html.twig @@ -1,6 +1,10 @@ {% 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 %} {% for key, value in field.options %} @@ -13,20 +17,24 @@ {% set depth = depth +1 %} {% endif %} - {% set indent = depth == 0 ? '' : repeat('-', depth) ~ ' ' %} + {% set indent = depth == 0 ? '' : repeat('—-', depth) ~ '▸ ' %} {% 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()) %} + + {% endif %} {% endif %} - {% if page.children|length > 0 and (field.show_modular or not page.modular()) %} - {{ _self.options(field, page, value, depth + 1) }} + {% 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()) %} + {{ _self.options(globals, page, depth + 1) }} + {% endif %} {% endif %} {% endfor %} {% endmacro %} @@ -39,6 +47,7 @@ {% endblock %} {% block input %} +