fix: 6 integration audit fixes — ticket filter, admin nav, FK scope, debounce, error messages
- Fix AISession.ticket_id → psa_ticket_id in list_sessions filter query - Add Gallery nav item (LayoutGrid icon) to AdminSidebar navItems array - Remove ForeignKey from FileUpload.session_id (Python model) + migration b8d2f4a6c091 to drop DB constraint, allowing column to reference either session type - Add 400ms debounce on AI session search input in SessionHistoryPage (aiSearchInput state + useRef timeout pattern) - Show friendly 503 error message in RichTextInput upload error handler (both initial upload and retry paths) - Add overflow-x-auto to FlowPilotAnalyticsPage tab bar container Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
FolderTree,
|
||||
ClipboardList,
|
||||
MessageSquareText,
|
||||
LayoutGrid,
|
||||
ArrowLeft,
|
||||
} from 'lucide-react'
|
||||
import { cn } from '@/lib/utils'
|
||||
@@ -25,6 +26,7 @@ const navItems = [
|
||||
{ path: '/admin/categories', label: 'Categories', icon: FolderTree },
|
||||
{ path: '/admin/survey-invites', label: 'Survey Invites', icon: ClipboardList },
|
||||
{ path: '/admin/survey-responses', label: 'Survey Responses', icon: MessageSquareText },
|
||||
{ path: '/admin/gallery', label: 'Gallery', icon: LayoutGrid },
|
||||
]
|
||||
|
||||
interface AdminSidebarProps {
|
||||
|
||||
@@ -73,10 +73,13 @@ export function RichTextInput({
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
const errorMsg = err?.response?.status === 503
|
||||
? 'File uploads not available — contact your administrator'
|
||||
: err?.message || 'Upload failed'
|
||||
setPendingUploads((prev) =>
|
||||
prev.map((u) =>
|
||||
u.id === upload.id
|
||||
? { ...u, status: 'error' as const, error: err?.message || 'Upload failed' }
|
||||
? { ...u, status: 'error' as const, error: errorMsg }
|
||||
: u
|
||||
)
|
||||
)
|
||||
@@ -196,10 +199,13 @@ export function RichTextInput({
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
const errorMsg = err?.response?.status === 503
|
||||
? 'File uploads not available — contact your administrator'
|
||||
: err?.message || 'Upload failed'
|
||||
setPendingUploads((prev) =>
|
||||
prev.map((u) =>
|
||||
u.id === uploadId
|
||||
? { ...u, status: 'error' as const, error: err?.message || 'Upload failed' }
|
||||
? { ...u, status: 'error' as const, error: errorMsg }
|
||||
: u
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user