fix: Maus-Zurück im PWA-Fenster, sprechende Player-Namen, Pfad-Etikett
Im installierten Fenster ("display": standalone) gibt es keine Zurück-/
Vorwärts-Knöpfe, und die Maus-Seitentasten werden nicht auf den Verlauf
umgelenkt — im Tab ging es, im Fenster nicht. Die App übernimmt X1/X2
jetzt selbst, aber nur im Standalone-Fenster (im Tab würde das doppelt
navigieren; beide Fälle im Test abgedeckt). Zurück läuft über _navGoBack,
schließt also erst ein offenes Now-Playing.
Backend meldet sich jetzt als NovaSonic-Backend, der Scrobble-Dienst als
NovaSonic-Scrobble. Vorher novasonic vs. NovaSonic — in Navidromes
Player-Liste (Name = "client [User-Agent]") zwei Zeilen "[node]", die
sich nur an einem Großbuchstaben unterschieden.
Pfad-Etikett wieder ohne "(Navidrome)": der Wert kommt ohnehin aus der
Subsonic-API, die Erklärung gehört in den Code und nicht ins Fenster.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
568bb5002c
commit
cb5ea26c77
6 files changed
+51
-14
No files matched your search
+19
@@ -316,6 +316,25 @@ window.addEventListener('load', () => {
|
||||
});
|
||||
|
||||
window.addEventListener('popstate', (e) => _navOnPopState(e.state));
|
||||
|
||||
// Im installierten Fenster ist "display": "standalone" — es gibt keine Zurueck-/Vorwaerts-Knoepfe,
|
||||
// und die Maustasten werden dort nicht auf den Verlauf umgelenkt: Zurueck war im Programmfenster am
|
||||
// PC also ueberhaupt nicht erreichbar, im Browser-Tab dagegen schon. Deshalb uebernehmen wir X1/X2
|
||||
// selbst — aber NUR im Standalone-Fenster, im Tab macht das der Browser und wir wuerden doppelt
|
||||
// navigieren. (Alt+Links/Rechts bleibt dem Browser ueberlassen, das kann er auch dort selbst.)
|
||||
const _imAppFenster = () => {
|
||||
try { return window.matchMedia('(display-mode: standalone)').matches || navigator.standalone === true; }
|
||||
catch { return false; }
|
||||
};
|
||||
window.addEventListener('mouseup', (e) => {
|
||||
if (!_imAppFenster()) return;
|
||||
if (e.button === 3) { e.preventDefault(); _navGoBack(); }
|
||||
else if (e.button === 4) { e.preventDefault(); try { history.forward(); } catch {} }
|
||||
});
|
||||
// Ohne das zeigt Chrome im Fenster das Kontextmenue der Seitentaste.
|
||||
window.addEventListener('auxclick', (e) => {
|
||||
if (_imAppFenster() && (e.button === 3 || e.button === 4)) e.preventDefault();
|
||||
});
|
||||
document.addEventListener('keydown', e => {
|
||||
if(e.key !== 'Backspace') return;
|
||||
const t = document.activeElement?.tagName;
|
||||
|
||||
Reference in new issue
Block a user