From a4ed010c12622aa52ee71053aae88b9f3d2da70f Mon Sep 17 00:00:00 2001 From: PianoNic <79938743+Pianonic@users.noreply.github.com> Date: Tue, 10 Nov 2026 14:10:03 +0100 Subject: [PATCH] Show the providers' real logos on the web --- src/Schuly.Frontend/public/providers/odaorg.webp | Bin 0 -> 6410 bytes .../public/providers/schulnetz.webp | Bin 0 -> 7176 bytes .../src/app/pages/settings/accounts-card.ts | 2 +- .../src/app/pages/settings/link-dialog.ts | 2 +- .../src/app/shared/provider-icon.ts | 12 +++++++++++- 5 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 src/Schuly.Frontend/public/providers/odaorg.webp create mode 100644 src/Schuly.Frontend/public/providers/schulnetz.webp diff --git a/src/Schuly.Frontend/public/providers/odaorg.webp b/src/Schuly.Frontend/public/providers/odaorg.webp new file mode 100644 index 0000000000000000000000000000000000000000..b7f44ff7f8e9012c3e7dfe8eec79f48bbf35071a GIT binary patch literal 6410 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
- +

{{ group.name }}

@if (group.provider?.description; as description) { diff --git a/src/Schuly.Frontend/src/app/pages/settings/link-dialog.ts b/src/Schuly.Frontend/src/app/pages/settings/link-dialog.ts index b8ee5b88..6d8dd28a 100644 --- a/src/Schuly.Frontend/src/app/pages/settings/link-dialog.ts +++ b/src/Schuly.Frontend/src/app/pages/settings/link-dialog.ts @@ -104,7 +104,7 @@ type Mode = { kind: 'add' } | { kind: 'reauth'; account: LinkedAccountDto }; [attr.data-autofocus]="$first ? '' : null" (click)="pick(provider)" > - + {{ provider.displayName }} @if (provider.description) { diff --git a/src/Schuly.Frontend/src/app/shared/provider-icon.ts b/src/Schuly.Frontend/src/app/shared/provider-icon.ts index ed9f6235..13f4c741 100644 --- a/src/Schuly.Frontend/src/app/shared/provider-icon.ts +++ b/src/Schuly.Frontend/src/app/shared/provider-icon.ts @@ -3,6 +3,13 @@ import { NgIcon, provideIcons } from '@ng-icons/core'; import { LinkIconDto } from '../core/linking-api'; import { providerIconName, providerIcons } from '../core/provider-icons'; +/** The real logos of the built-in providers, the same ones the app bundles. */ +const bundledLogos: Record = { + schulnetz: '/providers/schulnetz.webp', + odaorg: '/providers/odaorg.webp', + microsoft: '/sso-icons/microsoft.svg', +}; + /** A provider's icon: its Lucide name through ng-icons, or the host-served sanitized SVG through an img. Always decorative: the name is printed beside it. */ @Component({ selector: 'app-provider-icon', @@ -19,6 +26,9 @@ import { providerIconName, providerIcons } from '../core/provider-icons'; }) export class ProviderIcon { readonly icon = input(null); - protected readonly svgUrl = computed(() => this.icon()?.svgUrl || null); + readonly providerId = input(null); + protected readonly svgUrl = computed( + () => bundledLogos[this.providerId() ?? ''] ?? (this.icon()?.svgUrl || null), + ); protected readonly name = computed(() => providerIconName(this.icon()?.lucide)); }