fix: add requiresApiKey to API endpoints and simplify cluster name persistence
- Added requiresApiKey: true to register_file, unregister_file, merge_groups, update_trace_profile_group - Added API key header injection in httpCall - Simplified setClusterResults to just cache data (names now come from database) - Removed localStorage custom name logic (backend handles persistence)
This commit is contained in:
47
src/store.ts
47
src/store.ts
@@ -369,51 +369,14 @@ export function getClusterResults(fileUuid: string): any[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function setClusterResults(fileUuid: string, results: any[]) {
|
export function setClusterResults(fileUuid: string, results: any[]) {
|
||||||
console.log('[setClusterResults] Called with', results.length, 'groups')
|
|
||||||
if (results.length > 0) {
|
|
||||||
console.log('[setClusterResults] First group trace_ids:', results[0]?.trace_ids)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 直接從 localStorage 讀取自定義名稱,不受 clusterResultsCache 刪除影響
|
|
||||||
let existingNames: Record<string, string> = {}
|
|
||||||
try {
|
|
||||||
const saved = localStorage.getItem('momentry_cluster_results')
|
|
||||||
if (saved) {
|
|
||||||
const savedCache = JSON.parse(saved)
|
|
||||||
const existing = savedCache[fileUuid] || []
|
|
||||||
for (const r of existing) {
|
|
||||||
// Use cluster_id as key (can be integer or string like "Person_0")
|
|
||||||
const key = r.cluster_id ?? r.name
|
|
||||||
if (key && r.name && !r.name.startsWith('Person_') && !r.name.startsWith('Trace ') && !r.name.startsWith('Face Trace ')) {
|
|
||||||
existingNames[String(key)] = r.name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log('[setClusterResults] Loaded custom names from localStorage:', existingNames)
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.error('[setClusterResults] Failed to read from localStorage:', e)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create new objects to trigger Vue reactivity
|
// Create new objects to trigger Vue reactivity
|
||||||
const newResults = results.map(r => {
|
const newResults = results.map(r => ({
|
||||||
const newR = { ...r, trace_ids: [...(r.trace_ids || [])] }
|
...r,
|
||||||
// Apply custom names - try matching by cluster_id first, then by original name
|
trace_ids: [...(r.trace_ids || [])]
|
||||||
const cidKey = String(r.cluster_id ?? '')
|
}))
|
||||||
const nameKey = r.name || ''
|
|
||||||
const customName = existingNames[cidKey] || existingNames[nameKey]
|
|
||||||
if (customName) {
|
|
||||||
newR.name = customName
|
|
||||||
console.log('[setClusterResults] Applied custom name:', customName, 'for cluster:', r.cluster_id, '(name:', r.name, ')')
|
|
||||||
}
|
|
||||||
return newR
|
|
||||||
})
|
|
||||||
|
|
||||||
clusterResultsCache.value = { ...clusterResultsCache.value, [fileUuid]: newResults }
|
clusterResultsCache.value = { ...clusterResultsCache.value, [fileUuid]: newResults }
|
||||||
console.log('[setClusterResults] Updated cache for', fileUuid, ':', newResults.length, 'groups')
|
// Save to localStorage for basic persistence (names now come from database)
|
||||||
if (newResults.length > 0) {
|
|
||||||
console.log('[setClusterResults] First group after update:', newResults[0])
|
|
||||||
}
|
|
||||||
// Save to localStorage for persistence across page refreshes
|
|
||||||
try {
|
try {
|
||||||
localStorage.setItem('momentry_cluster_results', JSON.stringify(clusterResultsCache.value))
|
localStorage.setItem('momentry_cluster_results', JSON.stringify(clusterResultsCache.value))
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
|
|||||||
Reference in New Issue
Block a user