From f53814b2f989736ed535e9b79415ed93d0403a41 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Fri, 19 Jul 2024 08:40:31 +0200 Subject: [PATCH] feat(dashboard): Document supported API versions and features Signed-off-by: provokateurin --- apps/dashboard/appinfo/info.xml | 3 ++ .../composer/composer/autoload_classmap.php | 2 + .../composer/composer/autoload_static.php | 2 + apps/dashboard/lib/AppInfo/Application.php | 31 +++++++++++++++ apps/dashboard/lib/Capabilities.php | 38 +++++++++++++++++++ apps/dashboard/openapi.json | 19 ++++++++++ 6 files changed, 95 insertions(+) create mode 100644 apps/dashboard/lib/AppInfo/Application.php create mode 100644 apps/dashboard/lib/Capabilities.php diff --git a/apps/dashboard/appinfo/info.xml b/apps/dashboard/appinfo/info.xml index 7037a14ee42..56a6f6342c2 100644 --- a/apps/dashboard/appinfo/info.xml +++ b/apps/dashboard/appinfo/info.xml @@ -13,6 +13,9 @@ The Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking.]]> 7.10.0 + 1 + 2 + 3 agpl Julius Härtl Dashboard diff --git a/apps/dashboard/composer/composer/autoload_classmap.php b/apps/dashboard/composer/composer/autoload_classmap.php index 4a8609daeb0..334612fdda9 100644 --- a/apps/dashboard/composer/composer/autoload_classmap.php +++ b/apps/dashboard/composer/composer/autoload_classmap.php @@ -7,6 +7,8 @@ $baseDir = $vendorDir; return array( 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'OCA\\Dashboard\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Dashboard\\Capabilities' => $baseDir . '/../lib/Capabilities.php', 'OCA\\Dashboard\\Controller\\DashboardApiController' => $baseDir . '/../lib/Controller/DashboardApiController.php', 'OCA\\Dashboard\\Controller\\DashboardController' => $baseDir . '/../lib/Controller/DashboardController.php', 'OCA\\Dashboard\\ResponseDefinitions' => $baseDir . '/../lib/ResponseDefinitions.php', diff --git a/apps/dashboard/composer/composer/autoload_static.php b/apps/dashboard/composer/composer/autoload_static.php index 72f839d3315..b1c935aae0b 100644 --- a/apps/dashboard/composer/composer/autoload_static.php +++ b/apps/dashboard/composer/composer/autoload_static.php @@ -22,6 +22,8 @@ class ComposerStaticInitDashboard public static $classMap = array ( 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'OCA\\Dashboard\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Dashboard\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', 'OCA\\Dashboard\\Controller\\DashboardApiController' => __DIR__ . '/..' . '/../lib/Controller/DashboardApiController.php', 'OCA\\Dashboard\\Controller\\DashboardController' => __DIR__ . '/..' . '/../lib/Controller/DashboardController.php', 'OCA\\Dashboard\\ResponseDefinitions' => __DIR__ . '/..' . '/../lib/ResponseDefinitions.php', diff --git a/apps/dashboard/lib/AppInfo/Application.php b/apps/dashboard/lib/AppInfo/Application.php new file mode 100644 index 00000000000..cff3452c8b0 --- /dev/null +++ b/apps/dashboard/lib/AppInfo/Application.php @@ -0,0 +1,31 @@ +registerCapability(Capabilities::class); + } + + public function boot(IBootContext $context): void { + } +} diff --git a/apps/dashboard/lib/Capabilities.php b/apps/dashboard/lib/Capabilities.php new file mode 100644 index 00000000000..adcbc123648 --- /dev/null +++ b/apps/dashboard/lib/Capabilities.php @@ -0,0 +1,38 @@ + [ + 'enabled' => true, + ], + ]; + } + + public function getFeatures(): array { + return [ + 'dashboard' => [ + 'widgets-v1', + 'widget-items-v1', + 'widget-items-v2', + 'layout-v3', + 'statuses-v3', + ], + ]; + } +} diff --git a/apps/dashboard/openapi.json b/apps/dashboard/openapi.json index 3351e0a3e3c..0777ce78fb2 100644 --- a/apps/dashboard/openapi.json +++ b/apps/dashboard/openapi.json @@ -20,6 +20,25 @@ } }, "schemas": { + "Capabilities": { + "type": "object", + "required": [ + "dashboard" + ], + "properties": { + "dashboard": { + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean" + } + } + } + } + }, "OCSMeta": { "type": "object", "required": [