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": [