Štítky a prepojenia
Štítky sú označenia len pre agentov, globálne alebo pre projekt:
Tickets::tags()->create('printer', color: '#f24e29', project: $helpdesk);
Tickets::tags()->findOrCreate('vip');
Tickets::tags()->rename($tag, 'printers');
Tickets::tags()->recolor($tag, null);
Tickets::tags()->delete($tag); // returns the trashed tag
Tickets::tags()->find('printer', $helpdesk); // by id or slug: the project's, else the global one
Tickets::tags()->all($helpdesk); // global + the project's, by name
Tickets::for($ticket)->tags()->attach(['printer', 'vip'])->detach('spam');
Tickets::for($ticket)->tags()->sync(['printer']);
Tickets::for($ticket)->tags()->all();- Názov má 1–64 znakov (orezaný) a musí sa dať previesť na slug; farba je #rrggbb (uložená malými písmenami) alebo null — inak InvalidTagException.
- Štítok sa pripája podľa názvu (pri tickets.tags.free_form sa vytvorí za behu, inak InvalidTagException) alebo ako TicketTag. Projekt štítka musí byť projekt tiketu, alebo globálny. Názov sa najprv priradí živému štítku — projektovému, potom globálnemu.
- Zmazanie štítka ho odoberie zo všetkých tiketov: každý živý tiket zapíše interný záznam untagged a spustí TicketUntagged.
- Názvy sú v rámci rozsahu trvalé: vytvorenie názvu zmazaného štítka obnoví jeho riadok (rovnaké id aj slug) — prázdny, takže označenie jedného tiketu nikdy potichu neoznačí iné. Premenovanie na existujúci názov sa odmietne; slug nasleduje premenovanie.
- Pripojenie, odpojenie aj synchronizácia sú idempotentné a zapíšu jednu internú aktivitu na volanie ({added, removed}); TicketTagged / TicketUntagged sa spustia s názvami. Zápisy štítkov sa radia na lock:tags, takže súbežné findOrCreate('printer') vytvorí jeden štítok.
Prepojenia
use RoundlyConsulting\Tickets\Enums\LinkType;
Tickets::for($ticket)->by($agent)->links()->add('TCK-9', LinkType::Blocks);
Tickets::for($ticket)->links()->remove($other, LinkType::Blocks);
Tickets::for($ticket)->links()->all(); // list<TicketLinkView>: ticket, type, label, direction| Typ | Z pohľadu druhého konca |
|---|---|
relates_to | relates_to (symetrické; uložené raz, nižší kľúč prvý) |
duplicates | duplicated_by |
blocks | blocked_by |
parent_of | child_of |
S InvalidTicketLinkException sa odmietne: prepojenie na seba; prepojenie blocks / parent_of, ktoré uzavrie cyklus (prehľadávanie do hĺbky obmedzené tickets.links.max_depth); druhý rodič; prepojenie medzi projektmi pri vypnutom tickets.links.cross_project; odobratie prepojenia, ktorého tento tiket nie je súčasťou. Pridanie duplicitného prepojenia nič nespraví. Prepojenia na soft-deleted tiket sú skryté a nedajú sa odobrať.
remove() vezme prepojenie, ktoré tento tiket drží ako odchádzajúce, inak prichádzajúce. duplicates môže viesť oboma smermi (A duplikuje B aj B duplikuje A, dva riadky): remove() volajte z toho konca, ktorého prepojenie má zaniknúť. DELETE …/links/{link} v API odstráni presne riadok, ktorý uvedie.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.