NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Tickets for Laravel

Š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
TypZ pohľadu druhého konca
relates_torelates_to (symetrické; uložené raz, nižší kľúč prvý)
duplicatesduplicated_by
blocksblocked_by
parent_ofchild_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 kryptomien

Odoslaní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.