From 2cd4adc85bb6c79552c993ebc897a028fedad9df Mon Sep 17 00:00:00 2001 From: Schalli Date: Thu, 17 Sep 2026 12:39:25 +0200 Subject: [PATCH] feat(desktop): Windows-Installer auf Deutsch mit Tessera-Grafik und -Symbol; CHANGELOG, Handbuch - bundle.windows.nsis in tauri.conf.json: Deutsch ohne Sprachauswahl, Tessera-Icon, Kopf-/Seitenbild, currentUser (kein Admin noetig) - icons/nsis-header.bmp (150x57), icons/nsis-sidebar.bmp (164x314) ergaenzt - CHANGELOG: vier neue Desktop-App-Stichpunkte (Beta-Hinweis, Installer, Download-Links, Kontextmenue) - anleitung-anwender.md: Installationsassistent-Satz, Tray-Eintrag erklaert - anleitung-entwicklung.md: Ort der nsis-Konfiguration, Pruefweg per CI - Schema-Pruefung (node) und cargo check gruen Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 4 ++++ apps/desktop/src-tauri/icons/nsis-header.bmp | Bin 0 -> 25818 bytes apps/desktop/src-tauri/icons/nsis-sidebar.bmp | Bin 0 -> 154542 bytes apps/desktop/src-tauri/tauri.conf.json | 12 +++++++++++- docs/anleitung-anwender.md | 4 ++-- docs/anleitung-entwicklung.md | 7 ++++++- 6 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 apps/desktop/src-tauri/icons/nsis-header.bmp create mode 100644 apps/desktop/src-tauri/icons/nsis-sidebar.bmp diff --git a/CHANGELOG.md b/CHANGELOG.md index e1f3d97..eb5478d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ Diese Liste beschreibt in einfachen Worten, was sich von Version zu Version an T - Kalenderquellen: Adressfeld zeigt je Typ ein Beispiel; bei Exchange EWS Hinweis auf `/EWS/Exchange.asmx` - Kalender-Widget: Plakette am Tag in der Farbe des Kalenders; mehrere Kalender am selben Tag zeigen je einen kleinen Kreis - Tessera-Bildmarke: die gedrehte Kachel übernimmt die persönliche Akzentfarbe +- Desktop-App: Hinweis auf einen neuen Beta-Stand nennt den Stand (Commit-Kürzel) statt der unveränderten Versionsnummer +- Desktop-App: Windows-Installer auf Deutsch mit Tessera-Grafik und -Symbol ### Entfernt @@ -33,6 +35,8 @@ Diese Liste beschreibt in einfachen Worten, was sich von Version zu Version an T - Anmeldung: nach der Anmeldung geht es zur ursprünglich aufgerufenen Seite weiter statt immer zum Dashboard (z. B. beim Link „Update herunterladen“ aus der Desktop-App) - Anmeldung: eine nicht mehr gültige Sitzung (z. B. nach Neuanlage der Datenbank) zeigte ein leeres Portal mit „?“-Avatar und „Keine Module“ – jetzt Abmeldung und Anmeldeseite - Einstellungen → Widgets: Lade- und Leerhinweis waren nur auf Englisch +- Desktop-App: Download-Links auf der Anmeldeseite werden in der App nicht mehr angeboten +- Desktop-App: Rechtsklick zeigte das Browser-Kontextmenü (Zurück, Aktualisieren, Drucken …) – in der App ausgeblendet, in Eingabefeldern bleibt es erhalten ## 1.1.0 – 2026-09-16 diff --git a/apps/desktop/src-tauri/icons/nsis-header.bmp b/apps/desktop/src-tauri/icons/nsis-header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9ca95c50fee7e55926dff859a8f3345fb86c113f GIT binary patch literal 25818 zcmeI4UuYCZ9LM*xq^YS9jlJ91z039TPouV%T$)O}#M1->H6mJQ`(mZlTB9-62kjqf zM8WuAXbl%Nf=L7g@elY?8o>wcV<|oq`ck0}ZKXA0O|(Lbv|PV?IrsMdY<4F%cgf0c znOkNjdo!2$?Dsdn-_Go|Zn(2uif?aXzZjoW_%z|;l4R^9=|bY~@q=f(KVuRlNB4k4 z03F{0#L)R>h!_$>#~UI?kAxFHo^(h$BpptF50DN?htq!*J_iF@j{gGbaOygA{rXqY zjqggLgQeX)rJo6G+~z{ zG2~|G`t3<+_c2x_n4a-cK;>ux4cWp-4EY$kMxUa06<@ir%kz@=m1`JBZK#nL@-ZyF z{7qgJXuKTI5Sp`=A~ED(2ydfo^E<|F&UYToS-UvIkb@zdMpj+J$BoHMP9}xPTwh0X zXw*WA#E^qwNpy&dfa>#AG`vw2ZqXACQOH$EN&gTr%rSyCd>wHhNB1*UyKX~EZ#2?3 z5IGS~eFHc|p~9H`deA5_G(fQE468E{#oOm-;m-=vZblU&j{Y+b{qko=B$C!zd(%PGLy#p~!K}zS1T?lh2ldA;pI?4kIy~J{vf>y6pdz zn<2&c4%Z=L)hsId_O|pm)r^nFUjAx8fkaa`VmKoiDt>?Q)$4KX88D8=Ui|tN z!$6w45yKhCaMxZ{mgn|-na*%5Hv5NPJPnO$QY3~2V7Q_=(syQ6|6tOb!j|?%;iiT@ z>eR-=j5SfJ$FpGThtmCjQ-X$vG1uKE3)gSdJXOO+48=0cT$>2LbaCzS&kg}&VgVwS zA@&V4etf_isHk1ro_%ei$L)@^&ieU*=FmKhJ2Y@>#$qpgf5+VvPS+u=O*9NRIrB7I zBMgjHE1LC%!0=QNa3D%BT_emGtEhbG{599_f6w}9R0}N5UYxi8i&r9T1_36rv_?2* zZboxwx>g@d3=8s+PlkDBYxVJsCCe7JZ*n)UOsxM$RFUD7(pr6?00C3*Gc&lqhM~_0 zJVS-_%#3J;z(~)o<)KrJwypqqdWO{b3^j{N&vJ`&6bm4{tW6}|sj!LOsgSjM98?Gw z2cD|-Zj*x|-feP_-fiL__=0~b%>g^#wi82QDA+7K7mjP8`-F5zIxO@xM?%f)0n#Dq LkaRfxJs|xLo>MY| literal 0 HcmV?d00001 diff --git a/apps/desktop/src-tauri/icons/nsis-sidebar.bmp b/apps/desktop/src-tauri/icons/nsis-sidebar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..42a1b98da4ae098b061dbd99cb0bba5965d22c49 GIT binary patch literal 154542 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 Y5P$##AOHafKmY;|fB*y_P%Hxf2ev%|5dZ)H literal 0 HcmV?d00001 diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index b8f99b1..bab1b77 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -37,6 +37,16 @@ "icons/128x128@2x.png", "icons/icon.png", "icons/icon.ico" - ] + ], + "windows": { + "nsis": { + "languages": ["German"], + "displayLanguageSelector": false, + "installerIcon": "icons/icon.ico", + "headerImage": "icons/nsis-header.bmp", + "sidebarImage": "icons/nsis-sidebar.bmp", + "installMode": "currentUser" + } + } } } diff --git a/docs/anleitung-anwender.md b/docs/anleitung-anwender.md index bac0701..cb0dc28 100644 --- a/docs/anleitung-anwender.md +++ b/docs/anleitung-anwender.md @@ -175,7 +175,7 @@ Sie finden die Desktop-App an zwei Stellen, beide ohne Zugang zu Gitea: ### Installation unter Windows -Führen Sie die heruntergeladene Datei `Tessera-Setup-X.Y.Z.exe` aus. Windows zeigt dabei die Meldung „Der Computer wurde durch Windows geschützt": Klicken Sie auf „Weitere Informationen" und danach auf „Trotzdem ausführen". Der Grund dafür: Die App ist für den internen Gebrauch nicht signiert, das Paket stammt aber unmittelbar aus Ihrem eigenen Tessera-Server. Danach erscheint „Tessera" im Startmenü. Eine neuere Version installieren Sie einfach über die bestehende — die bereits eingetragene Server-Adresse bleibt dabei erhalten. +Führen Sie die heruntergeladene Datei `Tessera-Setup-X.Y.Z.exe` aus. Windows zeigt dabei die Meldung „Der Computer wurde durch Windows geschützt": Klicken Sie auf „Weitere Informationen" und danach auf „Trotzdem ausführen". Der Installationsassistent führt auf Deutsch durch die Installation; sie erfolgt für den angemeldeten Benutzer und benötigt keine Administratorrechte. Der Grund für die Windows-Meldung: Die App ist für den internen Gebrauch nicht signiert, das Paket stammt aber unmittelbar aus Ihrem eigenen Tessera-Server. Danach erscheint „Tessera" im Startmenü. Eine neuere Version installieren Sie einfach über die bestehende — die bereits eingetragene Server-Adresse bleibt dabei erhalten. ### Installation unter Linux @@ -190,7 +190,7 @@ Beim ersten Start fragt die App nach der Adresse, unter der Sie Tessera auch im Schließen Sie das Fenster über das X, legt sich Tessera lediglich in den Infobereich Ihrer Taskleiste, statt sich zu beenden. Ein Linksklick auf das Symbol dort öffnet das Fenster wieder. Ein Rechtsklick zeigt ein Menü mit: - **Öffnen** -- **Update herunterladen** +- **Update herunterladen** — wird aktiv, sobald eine neue Version vorliegt (auf dem Beta-Kanal: „Neuen Beta-Stand herunterladen") - **Mit Windows starten** (unter Linux: **Beim Anmelden starten**) — mit Häkchen - **Beenden** diff --git a/docs/anleitung-entwicklung.md b/docs/anleitung-entwicklung.md index a593d18..932552d 100644 --- a/docs/anleitung-entwicklung.md +++ b/docs/anleitung-entwicklung.md @@ -163,7 +163,12 @@ Docker-Stack (`docker compose build api` genügt für die API allein), liefert aus dem Ubuntu-Paket `nsis` — siehe `docs/ci-cd-setup.md`, Abschnitt 4). Lokal genügt für Rust-Änderungen `cargo check`/`cargo clippy` in `apps/desktop/src-tauri`; einen Windows-Installer lokal zu bauen ist nicht -vorgesehen. +vorgesehen. Sprache, Symbol und Bilder des Installers stehen in +`apps/desktop/src-tauri/tauri.conf.json` unter `bundle.windows.nsis` +(Deutsch ohne Sprachauswahl, `icons/nsis-header.bmp` 150×57 und +`icons/nsis-sidebar.bmp` 164×314 als 24-Bit-BMP); Änderungen daran lassen +sich nur über den CI-Bau auf einem Windows-Rechner prüfen, lokal validiert +`cargo check` lediglich die Schlüssel. ## Architektur im Überblick