diff --git a/CHANGELOG.md b/CHANGELOG.md index 289f953a..76ee1c09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ 1. [](#improved) * Improved delete button UI [#1769](https://github.com/getgrav/grav-plugin-admin/issues/1769) + * Ability to configure display of 3rd party dashboard widgets [#1766](https://github.com/getgrav/grav-plugin-admin/issues/1766) 1. [](#bugfix) * Fixed administrator user creation when `Flex Users` is enabled * Fixed minor button alignment in FF [#1760](https://github.com/getgrav/grav-plugin-admin/issues/1760) diff --git a/admin.php b/admin.php index c15ba240..b04f6927 100644 --- a/admin.php +++ b/admin.php @@ -376,11 +376,27 @@ class AdminPlugin extends Plugin */ public function onAdminDashboard() { - $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = ['template' => 'dashboard-maintenance']; - $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = ['template' => 'dashboard-statistics']; - $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = ['template' => 'dashboard-notifications']; - $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = ['template' => 'dashboard-feed']; - $this->grav['twig']->plugins_hooked_dashboard_widgets_main[] = ['template' => 'dashboard-pages']; + $lang = $this->grav['language']; + $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = [ + 'name' => $lang->translate('PLUGIN_ADMIN.MAINTENANCE'), + 'template' => 'dashboard-maintenance', + ]; + $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = [ + 'name' => $lang->translate('PLUGIN_ADMIN.STATISTICS'), + 'template' => 'dashboard-statistics', + ]; + $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = [ + 'name' => $lang->translate('PLUGIN_ADMIN.NOTIFICATIONS'), + 'template' => 'dashboard-notifications', + ]; + $this->grav['twig']->plugins_hooked_dashboard_widgets_top[] = [ + 'name' => $lang->translate('PLUGIN_ADMIN.NEWS_FEED'), + 'template' => 'dashboard-feed', + ]; + $this->grav['twig']->plugins_hooked_dashboard_widgets_main[] = [ + 'name' => $lang->translate('PLUGIN_ADMIN.LATEST_PAGE_UPDATES'), + 'template' => 'dashboard-pages', + ]; } @@ -393,12 +409,13 @@ class AdminPlugin extends Plugin */ public function onAdminTools(Event $event) { + $lang = $this->grav['language']; $event['tools'] = array_merge($event['tools'], [ - 'backups' => [['admin.maintenance', 'admin.super'], $this->grav['language']->translate('PLUGIN_ADMIN.BACKUPS')], - 'scheduler' => [['admin.super'], $this->grav['language']->translate('PLUGIN_ADMIN.SCHEDULER')], - 'logs' => [['admin.super'], $this->grav['language']->translate('PLUGIN_ADMIN.LOGS')], - 'reports' => [['admin.super'], $this->grav['language']->translate('PLUGIN_ADMIN.REPORTS')], - 'direct-install' => [['admin.super'], $this->grav['language']->translate('PLUGIN_ADMIN.DIRECT_INSTALL')], + 'backups' => [['admin.maintenance', 'admin.super'], $lang->translate('PLUGIN_ADMIN.BACKUPS')], + 'scheduler' => [['admin.super'], $lang->translate('PLUGIN_ADMIN.SCHEDULER')], + 'logs' => [['admin.super'], $lang->translate('PLUGIN_ADMIN.LOGS')], + 'reports' => [['admin.super'], $lang->translate('PLUGIN_ADMIN.REPORTS')], + 'direct-install' => [['admin.super'], $lang->translate('PLUGIN_ADMIN.DIRECT_INSTALL')], ]); return $event; @@ -613,13 +630,12 @@ class AdminPlugin extends Plugin return $bc <=> $ac; }); + // Gather Plugin-hooked dashboard items + $this->grav->fireEvent('onAdminDashboard'); + switch ($this->template) { case 'dashboard': $twig->twig_vars['popularity'] = $this->popularity; - - // Gather Plugin-hooked dashboard items - $this->grav->fireEvent('onAdminDashboard'); - break; } diff --git a/admin.yaml b/admin.yaml index 56b39778..0db92caf 100644 --- a/admin.yaml +++ b/admin.yaml @@ -13,7 +13,7 @@ sidebar: size: auto dashboard: days_of_stats: 7 -widgets: +widgets_display: dashboard-maintenance: true dashboard-statistics: true dashboard-notifications: true diff --git a/blueprints.yaml b/blueprints.yaml index 5b8e5ae0..67a0114f 100644 --- a/blueprints.yaml +++ b/blueprints.yaml @@ -361,65 +361,11 @@ form: title: Dashboard underline: true - widgets.dashboard-maintenance: - type: toggle - label: Maintenance Widget - highlight: 1 - default: 1 - options: - 1: PLUGIN_ADMIN.ENABLED - 0: PLUGIN_ADMIN.DISABLED + widgets_display: + type: widgets + label: Widget Display Status validate: - type: bool - help: Display dashboard maintenance widget - - widgets.dashboard-statistics: - type: toggle - label: Statistics Widget - highlight: 1 - default: 1 - options: - 1: PLUGIN_ADMIN.ENABLED - 0: PLUGIN_ADMIN.DISABLED - validate: - type: bool - help: Display dashboard statistics widget - - widgets.dashboard-notifications: - type: toggle - label: Notifications Feed Widget - highlight: 1 - default: 1 - options: - 1: PLUGIN_ADMIN.ENABLED - 0: PLUGIN_ADMIN.DISABLED - validate: - type: bool - help: Display dashboard notifications feed widget - - widgets.dashboard-feed: - type: toggle - label: News Feed Widget - highlight: 1 - default: 1 - options: - 1: PLUGIN_ADMIN.ENABLED - 0: PLUGIN_ADMIN.DISABLED - validate: - type: bool - help: Display dashboard news feed widget - - widgets.dashboard-pages: - type: toggle - label: Latest Pages Widget - highlight: 1 - default: 1 - options: - 1: PLUGIN_ADMIN.ENABLED - 0: PLUGIN_ADMIN.DISABLED - validate: - type: bool - help: Display dashboard latest pages widget + type: array Notifications: type: section diff --git a/themes/grav/templates/dashboard.html.twig b/themes/grav/templates/dashboard.html.twig index a797b217..d9990f49 100644 --- a/themes/grav/templates/dashboard.html.twig +++ b/themes/grav/templates/dashboard.html.twig @@ -37,7 +37,7 @@