From 04b25ba59d48ea3ab1d34d9f05ede33fc7ad7fbc Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Wed, 28 Aug 2024 13:10:25 +0200 Subject: feat: Implement Vue UI for public page menu This adds a Vue implementation of the public page menu, that is the menu that can be added using `PublicTemplateResponse::setHeaderActions`. Co-authored-by: Ferdinand Thiessen Co-authored-by: Louis Signed-off-by: Ferdinand Thiessen --- .../PublicPageMenu/PublicPageMenuCustomEntry.vue | 36 ++++++ .../PublicPageMenu/PublicPageMenuEntry.vue | 49 ++++++++ .../PublicPageMenuExternalDialog.vue | 90 ++++++++++++++ .../PublicPageMenu/PublicPageMenuExternalEntry.vue | 36 ++++++ .../PublicPageMenu/PublicPageMenuLinkEntry.vue | 51 ++++++++ core/src/public-page-menu.ts | 15 +++ core/src/views/PublicPageMenu.vue | 131 +++++++++++++++++++++ 7 files changed, 408 insertions(+) create mode 100644 core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue create mode 100644 core/src/components/PublicPageMenu/PublicPageMenuEntry.vue create mode 100644 core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue create mode 100644 core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue create mode 100644 core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue create mode 100644 core/src/public-page-menu.ts create mode 100644 core/src/views/PublicPageMenu.vue (limited to 'core/src') diff --git a/core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue b/core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue new file mode 100644 index 00000000000..f3c57a12042 --- /dev/null +++ b/core/src/components/PublicPageMenu/PublicPageMenuCustomEntry.vue @@ -0,0 +1,36 @@ + + + + diff --git a/core/src/components/PublicPageMenu/PublicPageMenuEntry.vue b/core/src/components/PublicPageMenu/PublicPageMenuEntry.vue new file mode 100644 index 00000000000..a5a1913ac2b --- /dev/null +++ b/core/src/components/PublicPageMenu/PublicPageMenuEntry.vue @@ -0,0 +1,49 @@ + + + + + + diff --git a/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue b/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue new file mode 100644 index 00000000000..992ea631600 --- /dev/null +++ b/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue @@ -0,0 +1,90 @@ + + + + diff --git a/core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue b/core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue new file mode 100644 index 00000000000..a4451a38bbe --- /dev/null +++ b/core/src/components/PublicPageMenu/PublicPageMenuExternalEntry.vue @@ -0,0 +1,36 @@ + + + + diff --git a/core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue b/core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue new file mode 100644 index 00000000000..54645e9ce48 --- /dev/null +++ b/core/src/components/PublicPageMenu/PublicPageMenuLinkEntry.vue @@ -0,0 +1,51 @@ + + + + diff --git a/core/src/public-page-menu.ts b/core/src/public-page-menu.ts new file mode 100644 index 00000000000..b290d1d03e9 --- /dev/null +++ b/core/src/public-page-menu.ts @@ -0,0 +1,15 @@ +/** + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { getCSPNonce } from '@nextcloud/auth' +import Vue from 'vue' + +import PublicPageMenu from './views/PublicPageMenu.vue' + +__webpack_nonce__ = getCSPNonce() + +const View = Vue.extend(PublicPageMenu) +const instance = new View() +instance.$mount('#public-page-menu') diff --git a/core/src/views/PublicPageMenu.vue b/core/src/views/PublicPageMenu.vue new file mode 100644 index 00000000000..a9ff78a7c5f --- /dev/null +++ b/core/src/views/PublicPageMenu.vue @@ -0,0 +1,131 @@ + + + + + + -- cgit v1.2.3