From d44037338c632a0a47203e6fd05ca2b0f0a4f18b Mon Sep 17 00:00:00 2001 From: Awilum Date: Thu, 21 Nov 2019 23:07:32 +0300 Subject: [PATCH] feat(admin-plugin): add ability to hide fieldsets from entries type select #304 Logic: if hide property is true then hide fieldsets from entries type select. if hide property is false then show fieldsets from entries type select. if hide property is is not exists then show fieldsets from entries type select. --- .../app/Controllers/EntriesController.php | 3 ++ .../app/Controllers/FieldsetsController.php | 1 + site/plugins/admin/lang/en_US.yaml | 2 ++ .../templates/extends/fieldsets/add.html | 30 ++++++++++++++++--- .../templates/extends/fieldsets/index.html | 18 +++++------ 5 files changed, 40 insertions(+), 14 deletions(-) diff --git a/site/plugins/admin/app/Controllers/EntriesController.php b/site/plugins/admin/app/Controllers/EntriesController.php index 6ec2c087..35d0c32a 100644 --- a/site/plugins/admin/app/Controllers/EntriesController.php +++ b/site/plugins/admin/app/Controllers/EntriesController.php @@ -129,6 +129,9 @@ class EntriesController extends Controller if ($fieldset['type'] == 'file' && $fieldset['extension'] == 'yaml') { $fieldset_content = $this->parser->decode(Filesystem::read($fieldset['path']), 'yaml'); if (isset($fieldset_content['sections']) && isset($fieldset_content['sections']['main']) && isset($fieldset_content['sections']['main']['fields'])) { + if (isset($fieldset_content['hide']) && $fieldset_content['hide'] == true) { + continue; + } $fieldsets[$fieldset['basename']] = $fieldset_content['title']; } } diff --git a/site/plugins/admin/app/Controllers/FieldsetsController.php b/site/plugins/admin/app/Controllers/FieldsetsController.php index 7a3a52c8..01c2f089 100644 --- a/site/plugins/admin/app/Controllers/FieldsetsController.php +++ b/site/plugins/admin/app/Controllers/FieldsetsController.php @@ -79,6 +79,7 @@ class FieldsetsController extends Controller $data = ['title' => $data['title'], 'default_field' => 'title', 'icon' => $data['icon'], + 'hide' => (bool) $data['hide'], 'sections' => [ 'main' => [ 'title' => 'Main', diff --git a/site/plugins/admin/lang/en_US.yaml b/site/plugins/admin/lang/en_US.yaml index b3638bd8..82cf54ff 100755 --- a/site/plugins/admin/lang/en_US.yaml +++ b/site/plugins/admin/lang/en_US.yaml @@ -299,3 +299,5 @@ admin_help_text_for_settings_errors_display_label: "Display errors." admin_help_text_for_settings_errors_display_datails_label: "Display errors details." admin_help_text_for_settings_errors_whoops_editor_label: "Whoops editor." admin_help_text_for_settings_errors_whoops_page_title_label: "Whoops page title." +admin_help_text_for_fieldsets_hide: "Hide fieldsets from entries type select." +admin_hide: "Hide" diff --git a/site/plugins/admin/views/templates/extends/fieldsets/add.html b/site/plugins/admin/views/templates/extends/fieldsets/add.html index a69d49bb..f9c90edd 100644 --- a/site/plugins/admin/views/templates/extends/fieldsets/add.html +++ b/site/plugins/admin/views/templates/extends/fieldsets/add.html @@ -15,11 +15,33 @@ {{ tr('admin_help_text_for_fieldsets_name') }} -
- - - {{ tr('admin_help_text_for_fieldsets_icon', {':link': 'fontawesome'})|raw }} +
+ +
+
+
+
+
+ + + {{ tr('admin_help_text_for_fieldsets_icon', {':link': 'fontawesome'})|raw }} +
+
+
+
+ + + {{ tr('admin_help_text_for_fieldsets_hide') }} +
+
+
+
+
+
diff --git a/site/plugins/admin/views/templates/extends/fieldsets/index.html b/site/plugins/admin/views/templates/extends/fieldsets/index.html index dcdefd9d..7ef12df4 100644 --- a/site/plugins/admin/views/templates/extends/fieldsets/index.html +++ b/site/plugins/admin/views/templates/extends/fieldsets/index.html @@ -5,21 +5,19 @@ {% for id, title in fieldsets_list %} + {% set fieldset_path = PATH_FIELDSETS ~ '/' ~ id ~ '.yaml' %} + {% if filesystem_has(fieldset_path) %} + {% set fieldset = parser_decode(filesystem_read(fieldset_path), 'yaml') %} + {% endif %} - -
- {% set fieldset_path = PATH_FIELDSETS ~ '/' ~ id ~ '.yaml' %} - {% if filesystem_has(fieldset_path) %} - {% set fieldset = parser_decode(filesystem_read(fieldset_path), 'yaml') %} - {% if fieldset.icon %} - - {% else %} - - {% endif %} + + {% if fieldset.icon %} + {% else %} {% endif %} + {{ title }}