From 5ecc754c94e127d5efcad60367037af14c39475e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 13 May 2025 10:34:02 +0100 Subject: [PATCH] Stash --- modules/banner/element-web/src/config.ts | 6 ++ .../banner/element-web/tests/banner.spec.ts | 8 +- .../element-web/tests/fixture/navigation.json | 79 ++++++++++++++----- .../tests/fixture/opendesk/app1.svg | 3 + .../tests/fixture/opendesk/app10.svg | 4 + .../tests/fixture/opendesk/app11.svg | 4 + .../tests/fixture/opendesk/app2.svg | 6 ++ .../tests/fixture/opendesk/app3.svg | 4 + .../tests/fixture/opendesk/app4.svg | 4 + .../tests/fixture/opendesk/app5.svg | 4 + .../tests/fixture/opendesk/app6.svg | 7 ++ .../tests/fixture/opendesk/app7.svg | 6 ++ .../tests/fixture/opendesk/app8.svg | 4 + .../tests/fixture/opendesk/app9.svg | 5 ++ .../tests/fixture/opendesk/logofull.svg | 13 +++ .../tests/fixture/opendesk/logomark.svg | 4 + modules/banner/element-web/vite.config.ts | 4 +- modules/opendesk/element-web/src/index.ts | 2 +- .../element-web/tests/opendesk.spec.ts | 2 +- 19 files changed, 145 insertions(+), 24 deletions(-) create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app1.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app10.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app11.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app2.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app3.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app4.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app5.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app6.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app7.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app8.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/app9.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/logofull.svg create mode 100644 modules/banner/element-web/tests/fixture/opendesk/logomark.svg diff --git a/modules/banner/element-web/src/config.ts b/modules/banner/element-web/src/config.ts index 3e5966bbbc..8b6db1c122 100644 --- a/modules/banner/element-web/src/config.ts +++ b/modules/banner/element-web/src/config.ts @@ -57,6 +57,12 @@ export type StaticConfig = z.infer; const UniventionConfig = z.object({ type: z.literal("univention"), + /** + * Alternative logo URL to display in the popover menu. + * Will use the main logo url if omitted. + */ + logo_url: z.string().url().optional(), + /** * Base URL to an Intercom Service * https://docs.software-univention.de/intercom-service/latest/architecture.html#endpoints diff --git a/modules/banner/element-web/tests/banner.spec.ts b/modules/banner/element-web/tests/banner.spec.ts index 7637b688ad..4795b67a6a 100644 --- a/modules/banner/element-web/tests/banner.spec.ts +++ b/modules/banner/element-web/tests/banner.spec.ts @@ -12,9 +12,10 @@ test.describe("Banner", () => { test.use({ displayName: "Timmy", page: async ({ context, page, moduleDir }, use) => { - for (const path of ["logo.svg", "app1.png", "app2.png"]) { + for (const path of ["logo.svg", "app1.png", "app2.png", "opendesk/"]) { await context.route(`/${path}*`, async (route) => { - await route.fulfill({ path: `${moduleDir}/tests/fixture/${path}` }); + const file = new URL(route.request().url()).pathname; + await route.fulfill({ path: `${moduleDir}/tests/fixture/${file}` }); }); } await context.route("http://localhost:8080/ics/navigation.json*", async (route) => { @@ -75,10 +76,11 @@ test.describe("Banner", () => { }, }, { - logo_url: "http://localhost:8080/logo.svg", + logo_url: "http://localhost:8080/opendesk/logomark.svg", logo_link_url: "https://example.com/portal", menu: { type: "univention", + logo_url: "http://localhost:8080/opendesk/logofull.svg", ics_url: "http://localhost:8080/ics/", }, }, diff --git a/modules/banner/element-web/tests/fixture/navigation.json b/modules/banner/element-web/tests/fixture/navigation.json index 79bac98d25..7c05eca422 100644 --- a/modules/banner/element-web/tests/fixture/navigation.json +++ b/modules/banner/element-web/tests/fixture/navigation.json @@ -1,41 +1,84 @@ { "categories": [ { - "identifier": "category1", - "display_name": "Category 1", + "identifier": "applications", + "display_name": "Anwendungen", "entries": [ { "identifier": "app1", - "display_name": "App 1", - "icon_url": "http://localhost:8080/app1.png", + "display_name": "Portal", + "icon_url": "http://localhost:8080/opendesk/app1.svg", "link": "https://example.com/app1", "target": "_blank" }, { "identifier": "app2", - "display_name": "App 2", - "icon_url": "http://localhost:8080/app2.png", + "display_name": "Aufgaben", + "icon_url": "http://localhost:8080/opendesk/app2.svg", "link": "https://example.com/app2", "target": "_blank" - } - ] - }, - { - "identifier": "category2", - "display_name": "Category 2", - "entries": [ + }, { "identifier": "app3", - "display_name": "App 3", - "icon_url": "http://localhost:8080/app1.png", + "display_name": "Chat", + "icon_url": "http://localhost:8080/opendesk/app3.svg", "link": "https://example.com/app3", "target": "_blank" }, { "identifier": "app4", - "display_name": "App 4", - "icon_url": "http://localhost:8080/app2.png", - "link": "https://example.com/app4", + "display_name": "Dateien", + "icon_url": "http://localhost:8080/opendesk/app4.svg", + "link": "https://example.com/ap4", + "target": "_blank" + }, + { + "identifier": "app5", + "display_name": "E-Mail", + "icon_url": "http://localhost:8080/opendesk/app5.svg", + "link": "https://example.com/app5", + "target": "_blank" + }, + { + "identifier": "app6", + "display_name": "Kelender", + "icon_url": "http://localhost:8080/opendesk/app6.svg", + "link": "https://example.com/app6", + "target": "_blank" + }, + { + "identifier": "app7", + "display_name": "Kontakte", + "icon_url": "http://localhost:8080/opendesk/app7.svg", + "link": "https://example.com/app7", + "target": "_blank" + }, + { + "identifier": "app8", + "display_name": "Notizen", + "icon_url": "http://localhost:8080/opendesk/app8.svg", + "link": "https://example.com/app8", + "target": "_blank" + }, + { + "identifier": "app9", + "display_name": "Projekte", + "icon_url": "http://localhost:8080/opendesk/app9.svg", + "link": "https://example.com/app9", + "target": "_blank" + }, + { + "identifier": "app10", + "display_name": "Videokonferenz", + "icon_url": "http://localhost:8080/opendesk/app10.svg", + "link": "https://example.com/app10", + "target": "_blank" + }, + { + "identifier": "app11", + "display_name": "Wiki", + "icon_url": "http://localhost:8080/opendesk/app11.svg", + "link": "https://example.com/app11", "target": "_blank" } ] diff --git a/modules/banner/element-web/tests/fixture/opendesk/app1.svg b/modules/banner/element-web/tests/fixture/opendesk/app1.svg new file mode 100644 index 0000000000..758e28621f --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app1.svg @@ -0,0 +1,3 @@ + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app10.svg b/modules/banner/element-web/tests/fixture/opendesk/app10.svg new file mode 100644 index 0000000000..147057229c --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app10.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app11.svg b/modules/banner/element-web/tests/fixture/opendesk/app11.svg new file mode 100644 index 0000000000..d853d42473 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app11.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app2.svg b/modules/banner/element-web/tests/fixture/opendesk/app2.svg new file mode 100644 index 0000000000..a537b52199 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app3.svg b/modules/banner/element-web/tests/fixture/opendesk/app3.svg new file mode 100644 index 0000000000..90f21f0667 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app4.svg b/modules/banner/element-web/tests/fixture/opendesk/app4.svg new file mode 100644 index 0000000000..6c78f1bf58 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app5.svg b/modules/banner/element-web/tests/fixture/opendesk/app5.svg new file mode 100644 index 0000000000..90d15399f3 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app6.svg b/modules/banner/element-web/tests/fixture/opendesk/app6.svg new file mode 100644 index 0000000000..dbdba6b547 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app6.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app7.svg b/modules/banner/element-web/tests/fixture/opendesk/app7.svg new file mode 100644 index 0000000000..e88e54cbfe --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app7.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app8.svg b/modules/banner/element-web/tests/fixture/opendesk/app8.svg new file mode 100644 index 0000000000..1658f680ec --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app8.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/app9.svg b/modules/banner/element-web/tests/fixture/opendesk/app9.svg new file mode 100644 index 0000000000..590bc7dc27 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/app9.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/logofull.svg b/modules/banner/element-web/tests/fixture/opendesk/logofull.svg new file mode 100644 index 0000000000..eaadffcfe3 --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/logofull.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/modules/banner/element-web/tests/fixture/opendesk/logomark.svg b/modules/banner/element-web/tests/fixture/opendesk/logomark.svg new file mode 100644 index 0000000000..d23f0ec64c --- /dev/null +++ b/modules/banner/element-web/tests/fixture/opendesk/logomark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/banner/element-web/vite.config.ts b/modules/banner/element-web/vite.config.ts index 48d989a42c..79d308a798 100644 --- a/modules/banner/element-web/vite.config.ts +++ b/modules/banner/element-web/vite.config.ts @@ -40,6 +40,8 @@ export default defineConfig({ }), ], define: { - process: { env: {} }, + // Use production mode for the build as it is tested against production builds of Element Web, + // this is required for React JSX versions to be compatible. + process: { env: { NODE_ENV: "production" } }, }, }); diff --git a/modules/opendesk/element-web/src/index.ts b/modules/opendesk/element-web/src/index.ts index d88e7f774d..f8f9ab289e 100644 --- a/modules/opendesk/element-web/src/index.ts +++ b/modules/opendesk/element-web/src/index.ts @@ -41,7 +41,7 @@ declare global { } class OpendeskModule implements Module { - public static readonly moduleApiVersion = "^0.1.1"; + public static readonly moduleApiVersion = "^0.2.0"; public constructor(private api: Api) {} diff --git a/modules/opendesk/element-web/tests/opendesk.spec.ts b/modules/opendesk/element-web/tests/opendesk.spec.ts index a182535d49..5c7a79e926 100644 --- a/modules/opendesk/element-web/tests/opendesk.spec.ts +++ b/modules/opendesk/element-web/tests/opendesk.spec.ts @@ -87,7 +87,7 @@ test.use({ }, "net.nordeck.element_web.module.widget_toggles": { config: { - types: [], + types: ["jitsi"], }, }, "net.nordeck.element_web.module.widget_lifecycle": {