Files
tickte-system/src/lib/ticketRoutes.js
T

29 lines
1.2 KiB
JavaScript

/* Adressen der Ticketseite: /tickets/<woid oder $id> mit dem Reiter Details (ohne Zusatz)
oder Arbeitsblaetter. Alle Links auf Tickets entstehen hier. */
// Reiter der Ticketseite; "details" hat keinen eigenen Pfadteil
export const TICKET_TABS = ['details', 'arbeitsblaetter']
// Das Ticket wird ueber seine woid adressiert, sonst ueber die $id (nie ueber die Kurznummer)
export function ticketRef(ticket) {
return String(ticket?.woid ?? '').trim() || String(ticket?.$id ?? '')
}
export function ticketPath(ref, tab) {
const id = String(ref ?? '').trim()
if (!id) return '/tickets'
return '/tickets/' + encodeURIComponent(id) + (tab === 'arbeitsblaetter' ? '/arbeitsblaetter' : '')
}
// Reiter aus der Adresse: fehlt er, gilt "details", ein unbekannter Wert ergibt null
export function resolveTicketTab(tab) {
if (tab === undefined) return 'details'
return TICKET_TABS.includes(tab) ? tab : null
}
// Zurueck zur Liste mit dem gemerkten Suchteil (nur "?..." mit Inhalt, sonst kein Fremdtext in der Adresse)
export function listBackPath(locationState) {
const search = locationState?.listSearch
return typeof search === 'string' && search.startsWith('?') && search.length > 1 ? '/tickets' + search : '/tickets'
}