Files
servicedesk/CONTRIBUTING.md
Kacper 03c6ec7cae v1.4.0
Co nowego:
- Wsparcie Active Directory dla LDAP (obok LLDAP/OpenLDAP), przełącznik typu
  katalogu w Admin > Integracje.
- Wyszukiwarka klientów dla operatora (Operator > Klienci).
- Stronicowanie kolejki operatora (50/stronę) i dashboardu klienta (20/stronę).
- Globalna wyszukiwarka zgłoszeń (Ctrl+K/Cmd+K) z operatorami w stylu Gmaila
  (od:, temat:, treść:, numer:), plus przycisk "Szukaj" w panelu bocznym.
- Ostatnio przeglądane zgłoszenia w panelu bocznym operatora.
- Przeprojektowany pasek nawigacji: suwak Klient/Operator/Administrator
  zamiast rozwijanego menu, bogatsze menu profilu (nazwa/e-mail/role),
  dynamiczne tytuły kart przeglądarki na każdej podstronie.
- Narzędzie do jednorazowego importu historii zgłoszeń z Heska 3.x
  (scripts/hesk-import/).
- Poprawka: paginacja pokazywała surowe klucze tłumaczeń zamiast tekstu
  (brakujący lang/pl/pagination.php).

Zaktualizowana dokumentacja: README, CLAUDE.md, install.md, ARCHITECTURE.md,
CHANGELOG.md, wiki/*.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 00:58:35 +02:00

2.5 KiB

Contributing

Internal helpdesk project for a single production deployment — this guide covers the practical local workflow, not an open-source contribution process.

Local setup

See install.md for full environment setup (Docker Compose or bare-metal). For day-to-day development the app container mounts ./src directly, so PHP/Blade/route changes apply immediately — no rebuild or restart needed. CSS/JS changes need a Vite build (see the "Local/dev notes" section of README.md); Node isn't installed on the host or in the app image, so build through a throwaway node:22 container as documented there.

Before opening a PR / merging

  1. Run the test suite — see TESTING.md for details:
    docker compose exec app php artisan test
    
  2. Run Pint (Laravel's code-style fixer, default preset, no project overrides):
    docker compose exec app ./vendor/bin/pint
    
  3. If you changed anything under resources/, rebuild the frontend bundle and commit the result if public/build/ is tracked, or confirm the deploy step will rebuild it (see install.md).
  4. If you touched the data model, add/update a migration rather than editing an existing one that has already shipped, and update ARCHITECTURE.md if the change affects the ticket lifecycle or role/permission model.

Commit messages

Short, imperative summary line (e.g. Add SLA breach email toggle); add a body only when the why isn't obvious from the diff.

Code organization

Follow the existing structure rather than introducing new patterns:

  • app/Livewire/{Client,Operator,Admin,Auth}/ — one component per screen/area, gated by the matching route middleware (role:client, role:operator, role:admin).
  • app/Services/TicketService.php — ticket lifecycle logic (create/transition/ notify) lives here, not in Livewire components.
  • app/Models/ — one Eloquent model per table; keep query scopes and display/ formatting helpers (labels, style/color helpers) on the model as done for Ticket (statusLabel(), slaInfo(), etc.) rather than duplicating them in views.
  • database/migrations/ — one migration per table group, representing final shape (not an incremental history to replay for intuition).
  • routes/web.php / routes/api.php — keep role/ability gating at the route group level, matching the existing pattern.

See ARCHITECTURE.md for how these pieces fit together.