Tickets: Standardansicht zeigt alle Arten, auch Akquise-Tickets

Bisher startete die Liste mit dem Art-Filter "Auftraege", der Akquise-Tickets
ausschliesst. Neue Kunden bekommen ein Akquise-Ticket, das dann unter Tickets
nicht zu finden war. Standard ist jetzt "Alle Arten"; "Auftraege (ohne Akquise)"
bleibt als Filter waehlbar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-06 15:42:02 +00:00
1 parent fa1ce2c4cb
commit 5d8130e8ef
5 files changed
+16 -8

No files matched your search

+10 -2
View File
@@ -8,7 +8,7 @@ const { TYPE_FILTERS } = await loadModule('src/lib/ticketStatus.js')
test('Reiter und Art-Auswahl nach Spec', () => {
assert.deepEqual(LIST_TABS.map((t) => [t.id, t.label]), [['aktiv', 'Aktiv'], ['open', 'Offen'], ['working', 'In Arbeit'], ['waiting', 'Wartet auf Kunde'], ['review', 'Prüfung'], ['done', 'Erledigt'], ['cancelled', 'Storniert'], ['alle', 'Alle']])
assert.deepEqual(TYPE_FILTERS.map((f) => f.label), ['Aufträge', 'Webpage', 'Migration', 'Projekt', 'Akquise', 'Aufträge und Akquise'])
assert.deepEqual(TYPE_FILTERS.map((f) => f.label), ['Alle Arten', 'Aufträge (ohne Akquise)', 'Webpage', 'Migration', 'Projekt', 'Akquise'])
})
test('parse: Standard, gültige und ungültige Werte', () => {
@@ -31,7 +31,7 @@ test('Filteränderung setzt limit zurück, Mehr laden +10 bis 500', () => {
})
test('listFilters und countFilters', () => {
assert.deepEqual(listFilters(LIST_DEFAULTS), { status: ['Open', 'Occupied', 'Assigned', 'Added Info', 'In Kontakt', 'Awaiting', 'Halted', 'In Test'], type: [], excludeType: 'Akquise', priority: [], search: undefined, limit: 10 })
assert.deepEqual(listFilters(LIST_DEFAULTS), { status: ['Open', 'Occupied', 'Assigned', 'Added Info', 'In Kontakt', 'Awaiting', 'Halted', 'In Test'], type: [], excludeType: undefined, priority: [], search: undefined, limit: 10 })
assert.deepEqual(listFilters({ ...LIST_DEFAULTS, tab: 'alle', typeId: 'Akquise', urgentOnly: true, search: 'abc' }), { status: [], type: ['Akquise'], excludeType: undefined, priority: [3, 4], search: 'abc', limit: 10 })
assert.deepEqual(listFilters({ ...LIST_DEFAULTS, tab: 'done' }).status, ['Closed', 'Zugesagt'])
const s = { ...LIST_DEFAULTS, typeId: 'Webpage', urgentOnly: true, search: 'zzz', limit: 80 }
@@ -39,6 +39,14 @@ test('listFilters und countFilters', () => {
for (const t of LIST_TABS) assert.deepEqual(countFilters(s, t.id).status, listFilters({ ...s, tab: t.id }).status, t.id)
})
test('Standardansicht zeigt alle Arten, auch Akquise', () => {
assert.equal(LIST_DEFAULTS.typeId, 'all')
assert.equal(parse('').typeId, 'all')
assert.equal(ser({ ...LIST_DEFAULTS }).get('art'), null)
assert.equal(parse(ser({ ...LIST_DEFAULTS, typeId: 'orders' })).typeId, 'orders')
assert.deepEqual(listFilters({ ...LIST_DEFAULTS, typeId: 'orders' }).excludeType, 'Akquise')
})
test('woid-Umleitung hat Vorrang', () => {
assert.equal(woidRedirectTarget('?woid=100131'), '/tickets/100131')
assert.equal(woidRedirectTarget('?woid=%20100131%20&status=done&q=x'), '/tickets/100131')