Files
deskhub/chrome-erweiterung/README.md
T
2026-10-25 20:21:12 +00:00

4.6 KiB

DeskHub für Chrome (Erweiterung)

DeskHub in der Browserleiste: Zähler und Benachrichtigungen für neue Tickets, Suche, Ticket anlegen und Tickets mit einem Klick im Browser öffnen. Sie läuft in Chrome, Edge und Brave (Manifest V3) auf Windows, Mac und Linux und ist die einfachste Lösung für Mitarbeiter ohne Windows-Programm.

Funktionen

  • Zähler am Symbol: Jede Minute fragt die Erweiterung den Server nach Neuem (neue nicht zugewiesene Tickets und Aktualisierungen bei deinen Tickets). Die Zahl am Symbol zählt, was seit dem letzten Öffnen dazugekommen ist; ein Klick auf das Symbol setzt sie zurück.
  • Benachrichtigungen: Bei Neuem meldet Chrome es (im Popup unten abschaltbar).
  • Übersicht: Meine offenen, überfällige und nicht zugewiesene Tickets sowie die als Nächstes fälligen Tickets.
  • Suche: In Betreff, Nummer, Name und Text, über alle Status.
  • Neu: Ticket anlegen (Anfrager, Betreff, Beschreibung, Abteilung, Priorität, optional Kunden benachrichtigen). Das Recht „Ticket anlegen“ ist Voraussetzung, sonst fehlt der Reiter.
  • Rechtsklick auf Text oder Seite → „Als DeskHub-Ticket anlegen“: Öffnet das Formular mit dem markierten Text und der Adresse der Seite.
  • Ticket im Browser öffnen: Ein Klick auf ein Ticket öffnet es in der Weboberfläche. Dafür erzeugt der Server eine einmalige Anmelde-Adresse (wie in den Apps), du musst dich dort nicht erneut anmelden.

Installieren

  1. In Chrome chrome://extensions öffnen und Entwicklermodus einschalten.
  2. Entpackte Erweiterung laden und den Ordner chrome-erweiterung wählen (oder das ZIP aus release/ vorher entpacken).
  3. Das DeskHub-Symbol in der Leiste anheften, anklicken und anmelden: Server-Adresse (zum Beispiel support.example.de), E-Mail und Passwort. Ist dein Konto mit einem Authenticator geschützt, fragt die Erweiterung danach den 6-stelligen Code.

Chrome fragt dabei einmal nach der Erlaubnis, auf deinen DeskHub-Server zuzugreifen. Die Erlaubnis gilt nur für diese eine Adresse, nicht für andere Webseiten, und wird beim Abmelden wieder zurückgegeben.

Sicherheit und Datenschutz

  • Verbindung nur über HTTPS (http nur für localhost zum Testen). Die Erweiterung folgt keinen Weiterleitungen und sendet keine Cookies.
  • Das Anmelde-Token liegt nur in chrome.storage.local dieser Erweiterung (nicht in sync, nicht im Seitencode). Abmelden sperrt das Token auf dem Server.
  • Rechte: storage, alarms, notifications, contextMenus. Zugriff auf Webseiten gibt es erst nach deiner Zustimmung bei der Anmeldung, und nur für deinen Server.
  • Die Oberfläche baut alles mit DOM-Aufrufen auf (kein innerHTML mit Serverdaten); die Inhaltsrichtlinie der Erweiterung erlaubt nur eigene Skripte und Verbindungen über HTTPS.
  • Texte, die du anlegst, werden als Text gesendet (Sonderzeichen maskiert); der Server bereinigt sie zusätzlich.

Grenzen

  • Die Erweiterung fragt jede Minute ab (Chrome erlaubt für Erweiterungen nicht öfter). Ist Chrome geschlossen, gibt es keine Meldungen. Für Meldungen auch bei geschlossenem Browser nutzt die Android-App oder das Windows-Programm.
  • Antworten auf Tickets, Zuweisen, Status ändern und Notizen gehen nicht in der Erweiterung: Dafür öffnet ein Klick das Ticket in der Weboberfläche.
  • Die Oberfläche ist deutsch.
  • Sie ist (noch) nicht im Chrome Web Store. Das ZIP lässt sich dort als nicht gelistete Erweiterung hochladen, dafür braucht es ein Entwicklerkonto bei Google.

Entwickeln und testen

node --test test/core.test.mjs        # Kern und Hintergrunddienst mit nachgebautem Browser und Server

Gegen einen echten DeskHub-Server (Testinstallation, nicht Produktion):

DESKHUB_URL=http://127.0.0.1:8181 DESKHUB_EMAIL=… DESKHUB_PASSWORD=… node --test test/integration.test.mjs

Der Integrationstest meldet an, ruft Stammdaten, Übersicht und Suche ab, legt ein Ticket an, prüft die Aktivitätszählung, öffnet ein Ticket per einmaliger Adresse und meldet ab (danach muss das alte Token abgelehnt werden). Ohne DESKHUB_URL wird er übersprungen.

Packen für die Weitergabe: node pack.mjs erzeugt ../release/deskhub-chrome-erweiterung-<Version>.zip mit nur den Laufzeitdateien.

Aufbau

Datei Aufgabe
manifest.json Rechte, Hintergrunddienst, Inhaltsrichtlinie
background.js Abfrage jede Minute, Zähler, Benachrichtigungen, Rechtsklick-Menü
popup.html/js/css Oberfläche (Anmeldung, Übersicht, Suche, Neu)
lib/core.js Serveradresse, Anmeldung, API-Aufrufe, Sicherheitsprüfungen
test/ Tests