From 8965b702285af9d77e2b51d4d46a6056ba7608b3 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Wed, 22 May 2024 16:20:34 +0200 Subject: [PATCH 1/3] fix(INavigationManager): Fix psalm alias not set in the right place Signed-off-by: provokateurin --- lib/public/INavigationManager.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/public/INavigationManager.php b/lib/public/INavigationManager.php index 5440230e44cc3..eaef1cb35ec57 100644 --- a/lib/public/INavigationManager.php +++ b/lib/public/INavigationManager.php @@ -10,13 +10,11 @@ namespace OCP; -/** - * @psalm-type NavigationEntry = array{id: string, order: int, href: string, name: string, app?: string, icon?: string, classes?: string, type?: string} - */ - /** * Manages the ownCloud navigation * @since 6.0.0 + * + * @psalm-type NavigationEntry = array{id: string, order: int, href: string, name: string, app?: string, icon?: string, classes?: string, type?: string} */ interface INavigationManager { /** From 0a7fcde9069ff05cffe22e2ad6831d866103d12c Mon Sep 17 00:00:00 2001 From: provokateurin Date: Thu, 30 May 2024 16:59:04 +0200 Subject: [PATCH 2/3] fix(NavigationManager): Make entry order always an integer Signed-off-by: provokateurin --- core/ResponseDefinitions.php | 2 +- core/openapi.json | 11 ++--------- lib/private/NavigationManager.php | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/core/ResponseDefinitions.php b/core/ResponseDefinitions.php index f186f52c33572..af16545c26793 100644 --- a/core/ResponseDefinitions.php +++ b/core/ResponseDefinitions.php @@ -26,7 +26,7 @@ * * @psalm-type CoreNavigationEntry = array{ * id: string, - * order: int|string, + * order: int, * href: string, * icon: string, * type: string, diff --git a/core/openapi.json b/core/openapi.json index a20691046fa7a..0cfb9cb5a4693 100644 --- a/core/openapi.json +++ b/core/openapi.json @@ -232,15 +232,8 @@ "type": "string" }, "order": { - "oneOf": [ - { - "type": "integer", - "format": "int64" - }, - { - "type": "string" - } - ] + "type": "integer", + "format": "int64" }, "href": { "type": "string" diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php index 05a3a9c85fed3..5d71c83e77a3c 100644 --- a/lib/private/NavigationManager.php +++ b/lib/private/NavigationManager.php @@ -95,7 +95,7 @@ public function add($entry) { // This is the default app that will always be shown first $entry['default'] = ($entry['app'] ?? false) === $this->defaultApp; // Set order from user defined app order - $entry['order'] = $this->customAppOrder[$id]['order'] ?? $entry['order'] ?? 100; + $entry['order'] = (int)($this->customAppOrder[$id]['order'] ?? $entry['order'] ?? 100); } $this->entries[$id] = $entry; From 0d202e201b3c63376cab7980ae476e25c1003c28 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Wed, 22 May 2024 16:21:12 +0200 Subject: [PATCH 3/3] fix(core): Fix NavigationEntry typing Signed-off-by: provokateurin --- core/ResponseDefinitions.php | 4 +++- core/openapi.json | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/ResponseDefinitions.php b/core/ResponseDefinitions.php index af16545c26793..f7e046003a076 100644 --- a/core/ResponseDefinitions.php +++ b/core/ResponseDefinitions.php @@ -26,11 +26,13 @@ * * @psalm-type CoreNavigationEntry = array{ * id: string, - * order: int, + * order?: int, * href: string, * icon: string, * type: string, * name: string, + * app?: string, + * default?: bool, * active: bool, * classes: string, * unread: int, diff --git a/core/openapi.json b/core/openapi.json index 0cfb9cb5a4693..68901630d198a 100644 --- a/core/openapi.json +++ b/core/openapi.json @@ -218,7 +218,6 @@ "type": "object", "required": [ "id", - "order", "href", "icon", "type", @@ -247,6 +246,12 @@ "name": { "type": "string" }, + "app": { + "type": "string" + }, + "default": { + "type": "boolean" + }, "active": { "type": "boolean" },