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:
1 parent
4c305fcd46
commit
fe3e39bd04
4 files changed
+93
-9
No files matched your search
@@ -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:')
|
||||
|
||||
Reference in new issue
Block a user