Update system-logs.tsx

This commit is contained in:
MacRimi
2025-10-18 10:11:43 +02:00
parent b50cb78fa6
commit d844c330e9

View File

@@ -121,7 +121,7 @@ export function SystemLogs() {
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false) const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false)
const [dateFilter, setDateFilter] = useState("now") const [dateFilter, setDateFilter] = useState("30") // Changed from "now" to "30" to load all recent logs by default
const [customDays, setCustomDays] = useState("1") const [customDays, setCustomDays] = useState("1")
const getApiUrl = (endpoint: string) => { const getApiUrl = (endpoint: string) => {
@@ -132,12 +132,14 @@ export function SystemLogs() {
} }
useEffect(() => { useEffect(() => {
// Initial fetch might be redundant if dateFilter is not "now" anymore, but keeping for now
// if (dateFilter === "now") {
fetchAllData() fetchAllData()
// }
}, []) }, [])
useEffect(() => { useEffect(() => {
console.log("[v0] Date filter changed:", dateFilter, "Custom days:", customDays) console.log("[v0] Date filter changed:", dateFilter, "Custom days:", customDays)
if (dateFilter !== "now") {
setLoading(true) setLoading(true)
fetchSystemLogs() fetchSystemLogs()
.then((newLogs) => { .then((newLogs) => {
@@ -150,14 +152,10 @@ export function SystemLogs() {
console.error("[v0] Error loading logs:", err) console.error("[v0] Error loading logs:", err)
setLoading(false) setLoading(false)
}) })
} else {
fetchAllData()
}
}, [dateFilter, customDays]) }, [dateFilter, customDays])
useEffect(() => { useEffect(() => {
console.log("[v0] Level or service filter changed:", levelFilter, serviceFilter) console.log("[v0] Level or service filter changed:", levelFilter, serviceFilter)
if (levelFilter !== "all" || serviceFilter !== "all") {
setLoading(true) setLoading(true)
fetchSystemLogs() fetchSystemLogs()
.then((newLogs) => { .then((newLogs) => {
@@ -176,10 +174,6 @@ export function SystemLogs() {
console.error("[v0] Error loading logs:", err) console.error("[v0] Error loading logs:", err)
setLoading(false) setLoading(false)
}) })
} else if (dateFilter === "now") {
// Only reload all data if we're on "now" and all filters are cleared
fetchAllData()
}
}, [levelFilter, serviceFilter]) }, [levelFilter, serviceFilter])
const fetchAllData = async () => { const fetchAllData = async () => {
@@ -223,11 +217,9 @@ export function SystemLogs() {
let apiUrl = getApiUrl("/api/logs") let apiUrl = getApiUrl("/api/logs")
const params = new URLSearchParams() const params = new URLSearchParams()
if (dateFilter !== "now") {
const daysAgo = dateFilter === "custom" ? Number.parseInt(customDays) : Number.parseInt(dateFilter) const daysAgo = dateFilter === "custom" ? Number.parseInt(customDays) : Number.parseInt(dateFilter)
params.append("since_days", daysAgo.toString()) params.append("since_days", daysAgo.toString())
console.log("[v0] Fetching logs since_days:", daysAgo) console.log("[v0] Fetching logs since_days:", daysAgo)
}
if (levelFilter !== "all") { if (levelFilter !== "all") {
const priorityMap: Record<string, string> = { const priorityMap: Record<string, string> = {
@@ -290,7 +282,7 @@ export function SystemLogs() {
try { try {
// Generate filename based on active filters // Generate filename based on active filters
const filters = [] const filters = []
if (dateFilter !== "now") { if (dateFilter !== "30") {
const days = dateFilter === "custom" ? customDays : dateFilter const days = dateFilter === "custom" ? customDays : dateFilter
filters.push(`${days}days`) filters.push(`${days}days`)
} }
@@ -313,7 +305,7 @@ export function SystemLogs() {
`Total Entries: ${filteredCombinedLogs.length.toLocaleString()}`, `Total Entries: ${filteredCombinedLogs.length.toLocaleString()}`,
``, ``,
`Filters Applied:`, `Filters Applied:`,
`- Date Range: ${dateFilter === "now" ? "Current logs" : dateFilter === "custom" ? `${customDays} days ago` : `${dateFilter} days ago`}`, `- Date Range: ${dateFilter === "custom" ? `${customDays} days ago` : `${dateFilter} days ago`}`,
`- Level: ${levelFilter === "all" ? "All Levels" : levelFilter}`, `- Level: ${levelFilter === "all" ? "All Levels" : levelFilter}`,
`- Service: ${serviceFilter === "all" ? "All Services" : serviceFilter}`, `- Service: ${serviceFilter === "all" ? "All Services" : serviceFilter}`,
`- Search: ${searchTerm || "None"}`, `- Search: ${searchTerm || "None"}`,
@@ -808,12 +800,12 @@ export function SystemLogs() {
<SelectValue placeholder="Time range" /> <SelectValue placeholder="Time range" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectItem value="now">Current logs</SelectItem>
<SelectItem value="1">1 day ago</SelectItem> <SelectItem value="1">1 day ago</SelectItem>
<SelectItem value="3">3 days ago</SelectItem> <SelectItem value="3">3 days ago</SelectItem>
<SelectItem value="7">1 week ago</SelectItem> <SelectItem value="7">1 week ago</SelectItem>
<SelectItem value="14">2 weeks ago</SelectItem> <SelectItem value="14">2 weeks ago</SelectItem>
<SelectItem value="30">1 month ago</SelectItem> <SelectItem value="30">1 month ago</SelectItem>
<SelectItem value="90">3 months ago</SelectItem>
<SelectItem value="custom">Custom days</SelectItem> <SelectItem value="custom">Custom days</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
@@ -891,12 +883,14 @@ export function SystemLogs() {
</div> </div>
<div className="flex-1 min-w-0 overflow-hidden"> <div className="flex-1 min-w-0 overflow-hidden">
<div className="flex items-center justify-between mb-1 gap-2"> <div className="flex flex-col gap-1 mb-1">
<div className="text-sm font-medium text-foreground truncate">{log.service}</div> <div className="flex items-center justify-between gap-2">
<div className="text-xs text-muted-foreground font-mono whitespace-nowrap ml-2 flex-shrink-0"> <div className="text-sm font-medium text-foreground truncate flex-1 min-w-0">
{log.timestamp} {log.service}
</div> </div>
</div> </div>
<div className="text-xs text-muted-foreground font-mono truncate">{log.timestamp}</div>
</div>
<div className="text-sm text-foreground mb-1 line-clamp-2 break-words overflow-hidden"> <div className="text-sm text-foreground mb-1 line-clamp-2 break-words overflow-hidden">
{log.message} {log.message}
</div> </div>