diff --git a/site/plugins/admin/app/Controllers/EntriesController.php b/site/plugins/admin/app/Controllers/EntriesController.php index 9c51d2c0..a363437f 100644 --- a/site/plugins/admin/app/Controllers/EntriesController.php +++ b/site/plugins/admin/app/Controllers/EntriesController.php @@ -69,6 +69,30 @@ class EntriesController extends Controller $parts = [0 => '']; } + // Init Fieldsets + $fieldsets = []; + + // Get fieldsets files + $fieldsets_list = Filesystem::listContents(PATH['site'] . '/fieldsets/'); + + // If there is any fieldset file then go... + if (count($fieldsets_list) > 0) { + foreach ($fieldsets_list as $fieldset) { + 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']) && + isset($fieldset_content['sections']['main']['fields']['title'])) { + if (isset($fieldset_content['hide']) && $fieldset_content['hide'] == true) { + continue; + } + $fieldsets[$fieldset['basename']] = $fieldset_content; + } + } + } + } + return $this->view->render( $response, 'plugins/admin/views/templates/content/entries/index.html', @@ -76,6 +100,7 @@ class EntriesController extends Controller 'entries_list' => $this->entries->fetch($this->getEntryID($query), ['order_by' => ['field' => 'published_at', 'direction' => 'desc']]), 'id_current' => $this->getEntryID($query), 'menu_item' => 'entries', + 'fieldsets' => $fieldsets, 'parts' => $parts, 'i' => count($parts), 'last' => Arr::last($parts), @@ -88,9 +113,9 @@ class EntriesController extends Controller ], 'buttons' => [ 'create' => [ - 'link' => $this->router->pathFor('admin.entries.add') . '?id=' . $this->getEntryID($query), + 'link' => 'javascript:;', 'title' => __('admin_create_new_entry'), - 'attributes' => ['class' => 'float-right btn'] + 'attributes' => ['class' => 'float-right btn', 'data-toggle' => 'modal', 'data-target' => '#selectEntryTypeModal'] ] ] ] @@ -117,40 +142,19 @@ class EntriesController extends Controller $parts = [0 => '']; } - // Init Fieldsets - $fieldsets = []; + $type = isset($query['type']) ? $query['type']: ''; - // Get fieldsets files - $fieldsets_list = Filesystem::listContents(PATH['site'] . '/fieldsets/'); - - // If there is any fieldset file then go... - if (count($fieldsets_list) > 0) { - foreach ($fieldsets_list as $fieldset) { - 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']) && - isset($fieldset_content['sections']['main']['fields']['title'])) { - if (isset($fieldset_content['hide']) && $fieldset_content['hide'] == true) { - continue; - } - $fieldsets[$fieldset['basename']] = $fieldset_content['title']; - } - } - } - } return $this->view->render( $response, 'plugins/admin/views/templates/content/entries/add.html', [ 'entries_list' => $this->entries->fetch($this->getEntryID($query), ['order_by' => ['field' => 'title', 'direction' => 'asc']]), 'menu_item' => 'entries', - 'fieldsets' => $fieldsets, 'current_id' => $this->getEntryID($query), 'parts' => $parts, 'i' => count($parts), 'last' => Arr::last($parts), + 'type' => $type, 'links' => [ 'entries' => [ 'link' => $this->router->pathFor('admin.entries.index'), diff --git a/site/plugins/admin/assets/scss/admin-light.scss b/site/plugins/admin/assets/scss/admin-light.scss index 393ed6b5..2a97a321 100644 --- a/site/plugins/admin/assets/scss/admin-light.scss +++ b/site/plugins/admin/assets/scss/admin-light.scss @@ -785,3 +785,14 @@ ul.messenger-theme-flat .messenger-message-slot.messenger-first.messenger-last . .bootstrap-datetimepicker-widget table th { border-color: #ced4da; } + +.fieldset-selector { + > li { + > a { + &:hover { + color: $navbar-item-text-color; + background: $navbar-background-color; + } + } + } +} diff --git a/site/plugins/admin/assets/scss/objects/form-control.scss b/site/plugins/admin/assets/scss/objects/form-control.scss index 326d46c3..c2ecd098 100644 --- a/site/plugins/admin/assets/scss/objects/form-control.scss +++ b/site/plugins/admin/assets/scss/objects/form-control.scss @@ -533,3 +533,30 @@ textarea.form-control.code-editor { outline: none!important; box-shadow: none!important; } + +.fieldset-selector { + list-style: none; + margin: 0; + padding: 0; + + > li { + display: inline-block; + text-align: center; + margin: 0; + padding: 0; + + > a { + display: block; + padding: 18px; + + &:hover { + color: #b7b9bd; + background: #3b404b; + } + } + } +} + +.fieldset-thumbnail { + font-size: 42px; +} diff --git a/site/plugins/admin/lang/en_US.yaml b/site/plugins/admin/lang/en_US.yaml index 1c70da6c..adf877bd 100755 --- a/site/plugins/admin/lang/en_US.yaml +++ b/site/plugins/admin/lang/en_US.yaml @@ -25,6 +25,7 @@ admin_profile: "Profile" admin_view_site: "View Site" admin_snippets: "Snippets" admin_not_installed: "Not Installed" +admin_select_entry_type: "Select Entry Type" admin_off: "Off" admin_on: "On" admin_add: "Add" diff --git a/site/plugins/admin/views/templates/content/entries/add.html b/site/plugins/admin/views/templates/content/entries/add.html index e43241c2..c6008e2c 100644 --- a/site/plugins/admin/views/templates/content/entries/add.html +++ b/site/plugins/admin/views/templates/content/entries/add.html @@ -4,6 +4,7 @@
{{ csrf() }} +
@@ -16,29 +17,26 @@ {{ tr('admin_help_text_for_entry_name') }}
-
- - - {{ tr('admin_help_text_for_entry_type') }} -
-
- - -
-
- - +
+
+
+ + +
+
+
+
+ + +
+
diff --git a/site/plugins/admin/views/templates/content/entries/index.html b/site/plugins/admin/views/templates/content/entries/index.html index c9bb9b2d..a08c08d9 100644 --- a/site/plugins/admin/views/templates/content/entries/index.html +++ b/site/plugins/admin/views/templates/content/entries/index.html @@ -96,4 +96,29 @@ {{ tr('admin_create_new_entry') }}
{% endif %} + + {% endblock %}