v1.1.3
- 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:
34
README.md
34
README.md
@@ -13,7 +13,7 @@ The app has three areas, gated by role (a user can hold more than one at once):
|
||||
|---|---|---|---|
|
||||
| Client | `/client` | `client` | Submit tickets, track status, reply, see resolution |
|
||||
| Operator | `/operator` | `operator` | Work the ticket queue, reply/resolve, see team statistics |
|
||||
| Admin | `/admin` | `admin` | Configure categories, users, teams, SLA, templates, branding, LDAP/SMTP |
|
||||
| Admin | `/admin` | `admin` | Configure categories, users, teams, SLA, templates, triggers, branding, LDAP/SMTP/BookStack |
|
||||
|
||||
Every account gets the `client` role by default (see `AssignDefaultRole` for LDAP-provisioned
|
||||
accounts), and always lands on `/client` first after login regardless of what other
|
||||
@@ -60,11 +60,28 @@ and **[wiki/admin](wiki/admin/README.md)** for role-specific how-to guides.
|
||||
subcategories, rest folded into "Inne"); CSAT average by team and by operator;
|
||||
and a daily created-vs-closed trend.
|
||||
- **Branding & config** — company name/logo/favicon/accent color, login notice,
|
||||
e-mail layout/footer, LDAP connection + user sync, SMTP connection, attachment
|
||||
limits, session lifetime, timezone — all editable from Admin > Konfiguracja.
|
||||
e-mail layout/footer, SMTP connection (Admin > E-MAIL), attachment limits,
|
||||
session lifetime, timezone (Admin > Konfiguracja), and LDAP connection + user
|
||||
sync + BookStack (Admin > Integracje).
|
||||
- **LDAP auth** — logins bind against an LDAP/LLDAP directory (`config/auth.php`,
|
||||
`config/ldap.php`); local accounts (e.g. the emergency `admin` account) fall back
|
||||
to e-mail + local password when the LDAP bind doesn't match.
|
||||
- **Triggers** (Admin > Wyzwalacze) — event-driven business rules that fire
|
||||
immediately on a ticket lifecycle event (created, any field updated, status/
|
||||
priority/assignee/team/category changed, new public reply): AND-combined
|
||||
conditions gate a sequence of actions (set status/priority/team/assignee, or
|
||||
send an e-mail using a dedicated set of freely add/edit/delete-able trigger
|
||||
e-mail templates, kept separate from the fixed per-event system templates).
|
||||
Complements the time-based SLA automation rules above rather than replacing
|
||||
them.
|
||||
- **Ticket watching** — operators can star/"Obserwuj" any ticket to follow it
|
||||
regardless of assignment/team, which feeds the "Obserwowane zgłoszenia" scope
|
||||
in their notification preferences.
|
||||
- **Per-user notification preferences** (`/settings/notifications`) — each
|
||||
operator/admin chooses, per event category (new ticket, ticket update,
|
||||
escalation), which scope of tickets (mine, unassigned, watched, all) notifies
|
||||
them via the in-app bell, and whether that also sends an e-mail; plus an
|
||||
opt-in toggle for native in-tab browser push notifications.
|
||||
- **REST API** (`/api/v1/...`, Sanctum token auth, ability-scoped: `tickets:read`,
|
||||
`tickets:write`, `dictionaries:read`, `users:read`) for tickets/messages/users/
|
||||
categories/statuses/priorities/teams — issued via admin-managed API clients.
|
||||
@@ -73,9 +90,12 @@ and **[wiki/admin](wiki/admin/README.md)** for role-specific how-to guides.
|
||||
- **In-app notifications** — a bell in the top bar (client/operator/admin areas)
|
||||
backed by Laravel's database notification channel, alongside the existing
|
||||
e-mail notifications (same per-trigger enable toggle drives both); shows
|
||||
unread notifications only — reading one removes it from the list. Includes a
|
||||
dedicated trigger notifying every operator on a team whose subcategories
|
||||
match a newly created ticket.
|
||||
unread notifications only — reading one removes it from the list. Updates
|
||||
live over WebSockets the moment a notification is created (with a 30s
|
||||
fallback poll), and can optionally raise a native browser push notification
|
||||
while the tab is open (see per-user notification preferences above).
|
||||
Includes a dedicated trigger notifying every operator on a team whose
|
||||
subcategories match a newly created ticket.
|
||||
- **Attachments** — drag-and-drop upload (in addition to the file picker) and
|
||||
inline image thumbnails in the message thread instead of a plain download link.
|
||||
- **Customer satisfaction (CSAT)** — clients rate a ticket 1–5 stars (+ optional
|
||||
@@ -93,7 +113,7 @@ and **[wiki/admin](wiki/admin/README.md)** for role-specific how-to guides.
|
||||
is being created, and in a separate sidebar panel on an existing ticket for
|
||||
both operators and clients (with a copy-link button for operators). Loads in
|
||||
after the page's first paint rather than blocking it. Configured entirely
|
||||
from Admin > Konfiguracja: connection + API token, optional SSL-verification
|
||||
from Admin > Integracje: connection + API token, optional SSL-verification
|
||||
bypass for self-signed instances, page/book search-type filter, and two
|
||||
independent per-shelf allow-lists (nothing is searched until an admin opts
|
||||
specific shelves in, separately for ticket-creation suggestions vs. the
|
||||
|
||||
Reference in New Issue
Block a user