/* Adressen der Ticketseite: /tickets/ 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' }