feat: Leads-Aktionsbuttons icon-only + WOID des Akquise-Tickets

- Maps/Website/Repo nur noch Icon (title/aria-label bleiben)
- WOID je Lead als klickbarer Chip -> /tickets?woid= (Lead->Kunde->Akquise-Ticket, live in useLeads gejoint)
- useWorkorders: woid server-seitig filterbar (macht den bisher wirkungslosen WOID-Filter nutzbar)
- TicketsPage: ?woid= Deep-Link liest Param, filtert ueber alle Status

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 4.8 committed 2026-07-16 18:40:40 +00:00
1 parent 4c305fcd46
commit fe3e39bd04
4 files changed
+93 -9

No files matched your search

+10
View File
@@ -11,6 +11,7 @@ function buildFiltersKey(filters = {}) {
status: filters.status ?? null,
type: filters.type ?? null,
priority: filters.priority ?? null,
woid: filters.woid ?? null,
})
}
@@ -87,6 +88,7 @@ export function useWorkorders(filters = {}) {
filters.status,
filters.type,
filters.priority,
filters.woid,
])
const fetchWorkorders = useCallback(async () => {
@@ -102,6 +104,9 @@ export function useWorkorders(filters = {}) {
if (activeFilters.priority?.length > 0) {
filtered = filtered.filter(wo => activeFilters.priority.includes(wo.priority))
}
if (activeFilters.woid) {
filtered = filtered.filter(wo => String(wo.woid) === String(activeFilters.woid))
}
if (activeFilters.limit) {
filtered = filtered.slice(0, activeFilters.limit)
}
@@ -140,6 +145,11 @@ export function useWorkorders(filters = {}) {
queries.push(Query.equal('assignedTo', activeFilters.assignedTo))
}
// WOID-Direktsuche (z. B. Deep-Link aus den Leads: /tickets?woid=123)
if (activeFilters.woid) {
queries.push(Query.equal('woid', [String(activeFilters.woid)]))
}
// Debug: Zeige Collection ID
if (import.meta.env.DEV) {
console.log('📋 Fetching workorders:')