From 914f93b896a71a87b07ac269a836ad16fd1fabf2 Mon Sep 17 00:00:00 2001 From: Martin Brennan Date: Thu, 2 May 2024 11:36:46 +1000 Subject: [PATCH] DEV: Add more structure for admin plugin config nav (#26707) * Simplify config nav link generation to always inject the Settings tab * Auto-redirect to the first non-settings config link (if there is one) when the user lands on /admin/plugins/:plugin_id * Add `extras` to admin plugin serializer so plugins can add more data on first load * Add PikadayCalendar page object for system specs, extracted from the CalendarDateTimePicker to make it more generic. --- .../admin-plugin-config-metadata.gjs | 22 +++++ .../components/admin-plugin-config-page.gjs | 57 ++---------- .../admin-plugin-config-top-nav.gjs | 36 ++++++++ .../admin/addon/models/admin-plugin.js | 1 + .../addon/routes/admin-plugins-show-index.js | 20 +++++ .../services/admin-plugin-nav-manager.js | 39 +++++++- .../app/lib/sidebar/admin-sidebar.js | 2 +- .../admin-plugin-config-area-test.js | 10 +-- app/serializers/admin_plugin_serializer.rb | 2 +- .../components/calendar_date_time_picker.rb | 14 +-- .../components/pikaday_calendar.rb | 88 +++++++++++++++++++ 11 files changed, 221 insertions(+), 70 deletions(-) create mode 100644 app/assets/javascripts/admin/addon/components/admin-plugin-config-metadata.gjs create mode 100644 app/assets/javascripts/admin/addon/components/admin-plugin-config-top-nav.gjs create mode 100644 app/assets/javascripts/admin/addon/routes/admin-plugins-show-index.js create mode 100644 spec/system/page_objects/components/pikaday_calendar.rb diff --git a/app/assets/javascripts/admin/addon/components/admin-plugin-config-metadata.gjs b/app/assets/javascripts/admin/addon/components/admin-plugin-config-metadata.gjs new file mode 100644 index 00000000000..c27dcd4d555 --- /dev/null +++ b/app/assets/javascripts/admin/addon/components/admin-plugin-config-metadata.gjs @@ -0,0 +1,22 @@ +import i18n from "discourse-common/helpers/i18n"; + +const AdminPluginConfigMetadata = ; + +export default AdminPluginConfigMetadata; diff --git a/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs b/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs index d40cb9833b1..608d6e12b0c 100644 --- a/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs +++ b/app/assets/javascripts/admin/addon/components/admin-plugin-config-page.gjs @@ -1,11 +1,10 @@ import Component from "@glimmer/component"; import { inject as service } from "@ember/service"; -import HorizontalOverflowNav from "discourse/components/horizontal-overflow-nav"; -import NavItem from "discourse/components/nav-item"; -import i18n from "discourse-common/helpers/i18n"; import AdminPluginConfigArea from "./admin-plugin-config-area"; +import AdminPluginConfigMetadata from "./admin-plugin-config-metadata"; +import AdminPluginConfigTopNav from "./admin-plugin-config-top-nav"; -export default class extends Component { +export default class AdminPluginConfigPage extends Component { @service currentUser; @service adminPluginNavManager; @@ -21,58 +20,14 @@ export default class extends Component { return classes.join(" "); } - linkText(navLink) { - if (navLink.label) { - return i18n(navLink.label); - } else { - return navLink.text; - } - } -