Subticket Manager: Verwendung
Subtickets in osTicket verwenden: Subticket anlegen, Ticket per Ticketnummer mit einem Parent verknüpfen, trennen, Panel, Badge, Queue-Indikator, Übersichtsseite und Berechtigungen.
Subticket Manager: Verwendung
Das Plugin arbeitet im Staff-Bereich von osTicket. Die Bedienoberfläche ist das Panel in der Ticket-Ansicht. Die Beschriftungen im Panel sind englisch.
Das Panel in der Ticket-Ansicht
Bei jedem Ticket fügt das Plugin ein Panel über den Ticket-Tabs ein. Es enthält:
| Bereich | Inhalt |
|---|---|
| Badge Parent Ticket | Erscheint nur, wenn das Ticket mindestens ein Child hat, mit der Anzahl, zum Beispiel „Parent Ticket (3 Sub-Tickets)“. Das Badge wird unter die Ticket-Überschrift verschoben |
| Abschnitt Parent Ticket | Hat das Ticket einen Parent: Link mit Nummer und Betreff, Status und die Schaltfläche Unlink from Parent. Sonst „No parent ticket“ und die Schaltfläche Link to Parent |
| Abschnitt Child Tickets | Liste der Children mit Nummer, Betreff, Status und je einer Schaltfläche Unlink, sonst „No child tickets“. Darunter immer die Schaltfläche Create Subticket |
Die Children sind nach Erstellungsdatum aufsteigend sortiert.
Subticket anlegen
- Öffne das Parent-Ticket.
- Klicke im Abschnitt Child Tickets auf Create Subticket.
- osTicket öffnet das Formular für ein neues Ticket (
tickets.php?a=open&subticket_parent=<ID des Parents>). Das Formular ist nicht vorausgefüllt. - Fülle das Formular aus und lege das Ticket an.
- Nach dem Anlegen setzt das Plugin das neue Ticket automatisch als Child des Parents.
Das Plugin merkt sich die Parent-ID in der Session, sobald du die Adresse mit
subticket_parentaufrufst, und löscht sie erst, wenn in dieser Session ein Ticket angelegt wurde. Brichst du das Formular ab und legst später ein anderes Ticket an, wird dieses ebenfalls mit dem Parent verknüpft. Rufe in dem Fall das Formular über Create Subticket erneut auf oder trenne die Verknüpfung wieder.
Bestehendes Ticket verknüpfen
- Öffne das Ticket, das ein Child werden soll.
- Klicke im Abschnitt Parent Ticket auf Link to Parent.
- Gib im Dialog die Ticketnummer des Parents ein (nur Ziffern, höchstens zehn). Das Plugin schlägt die Eingabe in der Spalte
numbernach, die interne Ticket-ID funktioniert nicht. - Bestätige. Nach der Erfolgsmeldung lädt die Seite nach einer Sekunde neu.
Das Plugin lehnt die Verknüpfung ab, wenn:
- die Ticketnummer nicht existiert,
- ein Ticket mit sich selbst verknüpft werden soll,
- eine Schleife entstünde (der gewählte Parent ist schon ein Nachfahre des Tickets, geprüft bis zu zehn Ebenen),
- du als Agent keinen Zugriff auf die Abteilung des Child-Tickets hast. Administratoren sind davon ausgenommen.
Bei Ablehnung zeigt das Panel die Meldung Failed to link tickets. Den genauen Grund nennt es nicht.
Verknüpfung lösen
- Vom Child aus: Klicke im Abschnitt Parent Ticket auf Unlink from Parent und bestätige „Remove parent relationship?“.
- Vom Parent aus: Klicke in der Liste Child Tickets neben einem Child auf Unlink und bestätige „Remove this child ticket?“.
Das Trennen setzt nur ticket_pid des Childs auf NULL. Das Ticket selbst wird nicht gelöscht. Auch hier ist der Zugriff auf die Abteilung des Child-Tickets nötig.
Queue-Indikator
In der Ticket-Warteschlange zeigen Parent-Tickets ein Code-Fork-Icon mit der Anzahl der Children, der Tooltip lautet „N Sub-Ticket(s)“. Dafür gibt es zwei Mechanismen:
- JavaScript:
queue-indicator.jssammelt die Ticket-IDs der sichtbaren Zeilen, fragt sie gebündelt überajax-subticket.php?action=batch_parent_statusab und hängt das Icon an die Zelle mit dem Ticket-Link. Das Skript wirkt nur auf Seiten, deren Pfadtickets.phpenthält. - Queue-Dekoration: Die Klasse
ParentTicketDecoration(„Parent Ticket Icon“) ist eine Unterklasse vonQueueColumnAnnotation. Damit stellt das Plugin osTicket eine Dekoration für Queue-Spalten bereit, die dasselbe Icon serverseitig rendert.
Übersichtsseite
Die Seite scp/subtickets.php erreichst du über den Staff-Navigationspunkt Applications → Subtickets oder über die Kachel auf scp/apps.php. Die Seite trägt die Überschrift „Ticket Hierarchies“ und zeigt eine Tabelle mit den Spalten Parent-Ticket, Betreff, Status, Anzahl und Child-Tickets.
- Die Liste ist nach Parent und Erstellungsdatum der Children sortiert und auf 100 Child-Tickets begrenzt.
- Die Seite ist eine reine Anzeige. Sie hat keine Suche, keinen Filter, keine Baumansicht und keine Funktionen zum Verknüpfen oder Trennen.
- Die Seite zeigt alle Beziehungen im System, unabhängig von den Abteilungen des angemeldeten Agents.
- Die Überschrift ist englisch, Einleitungstext und Tabellenköpfe sind fest auf Deutsch im Code hinterlegt.
Berechtigungen
Das Plugin legt keine eigenen Rollen-Berechtigungen an. Es unterscheidet nur zwischen angemeldetem Staff und allen anderen.
| Aktion | Voraussetzung |
|---|---|
| Panel sehen, Übersichtsseite öffnen, Children abfragen, Queue-Indikator | Angemeldeter Agent |
| Verknüpfen, Trennen | Angemeldeter Agent mit Zugriff auf die Abteilung des Child-Tickets (Administratoren immer), gültiges CSRF-Token |
| Subticket per AJAX anlegen | Angemeldeter Agent mit Zugriff auf die Abteilung des Parent-Tickets, gültiges CSRF-Token |
Bis zu 100 AJAX-Anfragen pro Minute und Session sind erlaubt, danach sperrt das Plugin die Session für 60 Sekunden (Details unter AJAX-API).
Was das Plugin nicht macht
- Es schließt Parent-Tickets nicht automatisch, auch nicht, wenn alle Children geschlossen sind.
- Es gibt keine Baumansicht, keine Batch-Operationen und keine Suche auf der Übersichtsseite.
- Es verschiebt, schließt oder weist keine Tickets zu. Das Plugin ändert nur die Spalte
ticket_pid(und legt über die AJAX-Schnittstelle auf Wunsch neue Tickets an).