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

56 lines
2.5 KiB
Markdown

# 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](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](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](TESTING.md) for details:
```bash
docker compose exec app php artisan test
```
2. **Run Pint** (Laravel's code-style fixer, default preset, no project overrides):
```bash
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](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](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](ARCHITECTURE.md) for how these pieces fit together.