- Triggers (Admin > Wyzwalacze): event-driven rules that fire immediately on
  a ticket lifecycle event (created/updated/status/priority/assignee/team/
  category changed, new reply), with AND-conditions and ordered actions
  (set status/priority/team/assignee, send e-mail). Ships its own dedicated,
  freely add/edit/delete-able e-mail templates, kept separate from the fixed
  system templates.
- Ticket watching: operators can star/"Obserwuj" any ticket to follow it
  regardless of assignment/team.
- Real-time notification bell (private per-user broadcast channel, 30s
  fallback poll) with an opt-in in-tab browser push notification.
- Per-user notification preferences (/settings/notifications): scope
  (mine/unassigned/watched/all) and e-mail toggle per event category.
- Admin > Integracje: new tab for LDAP/AD + BookStack config, split out of
  Konfiguracja.
- Operator queue: Podkategoria/Zespół/Utworzono columns (off by default).
- Obserwuj button moved next to the auto-refresh countdown; trigger
  condition builder shows subcategory/zgłaszający as name dropdowns instead
  of raw IDs; /settings/notifications got a back link, full-width push
  card, and a bordered table container; admin panel tab and operator queue
  view now persist across a plain page refresh.
- Docs: README/ARCHITECTURE/wiki updated for all of the above.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-22 23:43:01 +02:00
parent 0b06687ea1
commit ab90abcaa3
47 changed files with 2480 additions and 139 deletions

View File

@@ -1,9 +1,9 @@
# Przewodnik — Administrator
Panel administratora (`/admin`) to jedno miejsce do konfiguracji całego systemu:
struktura zgłoszeń (kategorie, pola, statusy, priorytety, SLA), użytkownicy i
zespoły, treści (szablony, szybkie akcje, e-maile), wygląd/branding oraz
integracje (LDAP, SMTP, API).
struktura zgłoszeń (kategorie, pola, statusy, priorytety, SLA), automatyzacje
(reguły SLA, wyzwalacze), użytkownicy i zespoły, treści (szablony, szybkie
akcje, e-maile), wygląd/branding oraz integracje (LDAP, SMTP, BookStack, API).
Domyślnie każde konto ląduje po zalogowaniu w panelu Klienta; przełącz się do
panelu Administratora przez menu profilu (prawy górny róg).
@@ -77,6 +77,28 @@ tego samego zgłoszenia, dopóki klient znów nie napisze albo zgłoszenie nie
zostanie zamknięte i otwarte ponownie — więc bezpiecznie zostawić kilka
aktywnych reguł naraz, bez ryzyka zapętlenia się co 15 minut.
## Wyzwalacze
W odróżnieniu od Automatyzacji SLA (działa po czasie ciszy klienta), wyzwalacze
reagują **natychmiast** na zdarzenie w zgłoszeniu: utworzenie, dowolna zmiana
pola, zmiana statusu/priorytetu/przypisania/zespołu/kategorii, nowa wiadomość
publiczna. Każdy wyzwalacz ma:
- **Zdarzenie**, na które reaguje.
- **Warunki** (opcjonalne, wszystkie muszą być spełnione naraz — ORAZ) na polu
statusu, priorytetu, zespołu, podkategorii, zgłaszającego, tematu lub treści.
- **Akcje** wykonywane po kolei — ustaw status/priorytet/zespół/operatora, albo
wyślij powiadomienie e-mail do zgłaszającego lub przypisanego operatora.
Akcja „Wyślij powiadomienie e-mail” korzysta z **własnych szablonów wyzwalaczy**
(sekcja „Szablony e-mail wyzwalaczy” na tej samej zakładce) — w pełni
dodawalnych/edytowalnych/usuwalnych przez administratora, celowo osobnych od
stałych szablonów opisanych niżej (te są przypisane 1:1 do zdarzeń systemowych
i nie da się ich usunąć ani dodać nowego). Wyzwalacz może zmienić to samo pole,
które sam sprawdza w warunku — zabezpieczenie przed zapętleniem: akcja, która
tylko potwierdzałaby już ustawioną wartość, nic nie robi, a licznik głębokości
zatrzymuje prawdziwy cykl między dwoma wyzwalaczami.
## Szybkie akcje odpowiedzi
Przyciski w widoku zgłoszenia operatora, które **wysyłają odpowiedź i od razu
@@ -98,6 +120,9 @@ więcej informacji”, „Restart usuwa problem”.
placeholderami: `{numer}`, `{imie}`, `{temat}`, `{status}`, `{kategoria}`,
`{priorytet}`, `{zespol}`, `{operator}`, `{link}`. Każdy szablon opakowuje się
automatycznie we wspólny layout (nagłówek z nazwą firmy + stopka — patrz niżej).
Te szablony są przypisane **na stałe** do zdarzeń systemowych (nie da się ich
dodać/usunąć/przepiąć na inne zdarzenie) — dla wyzwalaczy (zakładka
Wyzwalacze) służy osobny, w pełni dowolny zestaw szablonów, opisany wyżej.
- **Stopka e-mail** i **layout HTML** — stopka jest edytowalna (z przyciskiem
„Resetuj” do wartości domyślnej); sam layout nie jest edytowalny z poziomu UI.
- **Powiadomienia** — lista zdarzeń (zgłoszenie utworzone, zmiana statusu/
@@ -113,7 +138,15 @@ więcej informacji”, „Restart usuwa problem”.
tylko do jednej przypisanej osoby. **Ten sam przełącznik kontroluje zarówno
e-mail, jak i powiadomienie w dzwoneczku w aplikacji** — nie ma osobnego
ustawienia dla powiadomień w apce, a dzwoneczek pokazuje tylko nieprzeczytane
(znikają po kliknięciu/oznaczeniu).
(znikają po kliknięciu/oznaczeniu) i aktualizuje się na żywo.
- **Preferencje powiadomień per operator/admin** (`/settings/notifications`,
menu profilu → „Powiadomienia”) — każdy sam wybiera, dla nowego zgłoszenia/
aktualizacji/eskalacji, jaki zakres zgłoszeń (moje / nieprzypisane /
obserwowane / wszystkie) ma go powiadamiać dzwoneczkiem i czy dodatkowo
e-mailem, plus opcjonalne natywne powiadomienia push przeglądarki. To
ustawienie jest niezależne od globalnego przełącznika powiadomień opisanego
wyżej — dotyczy dodatkowego powiadamiania innych operatorów/adminów o
zgłoszeniach w ich zakresie, nie zastępuje go.
## Wygląd / Branding
@@ -126,14 +159,19 @@ ważne + treść HTML).
- **Ogólne** — domyślny status nowego zgłoszenia, automatyczne przypisywanie wg
kategorii, limity załączników (rozmiar/liczba/typy), czas życia sesji, strefa
czasowa.
SMTP (host, port, szyfrowanie, użytkownik/hasło, adres/nazwa nadawcy, z
przyciskiem **„Testuj połączenie”**) konfiguruje się w zakładce **E-MAIL**,
razem z layoutem/stopką wiadomości — patrz sekcja wyżej.
## Integracje
- **LDAP** — host, port, base DN, bind DN + hasło, SSL, filtr użytkownika
(`(uid={0})` domyślnie), auto-provisioning gości, ograniczenie tworzenia
kont/zgłaszania tylko przez LDAP. Przycisk **„Testuj połączenie”** sprawdza
bind bez zapisywania zmian.
- **SMTP** — host, port, szyfrowanie, użytkownik/hasło, adres/nazwa nadawcy.
Przycisk **„Testuj połączenie”** analogicznie do LDAP.
> Po świeżej instalacji (`migrate:fresh --seed`) te dwie sekcje zawierają
> Po świeżej instalacji (`migrate:fresh --seed`) LDAP i SMTP zawierają
> **przykładowe wartości** (`ldap.example.com`, `smtp.example.com`,
> `changeme-*-password`) — koniecznie podmień je na rzeczywiste dane przed
> oddaniem systemu do użytku.