mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-18 03:26:17 +00:00
Update AppImage
This commit is contained in:
@@ -428,6 +428,11 @@ export function SystemLogs() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const safeToLowerCase = (value: any): string => {
|
||||||
|
if (value === null || value === undefined) return ""
|
||||||
|
return String(value).toLowerCase()
|
||||||
|
}
|
||||||
|
|
||||||
const logsOnly: CombinedLogEntry[] = logs
|
const logsOnly: CombinedLogEntry[] = logs
|
||||||
.map((log) => ({ ...log, isEvent: false, sortTimestamp: new Date(log.timestamp).getTime() }))
|
.map((log) => ({ ...log, isEvent: false, sortTimestamp: new Date(log.timestamp).getTime() }))
|
||||||
.sort((a, b) => b.sortTimestamp - a.sortTimestamp)
|
.sort((a, b) => b.sortTimestamp - a.sortTimestamp)
|
||||||
@@ -445,22 +450,26 @@ export function SystemLogs() {
|
|||||||
}))
|
}))
|
||||||
.sort((a, b) => b.sortTimestamp - a.sortTimestamp)
|
.sort((a, b) => b.sortTimestamp - a.sortTimestamp)
|
||||||
|
|
||||||
// Filter logs only
|
|
||||||
const filteredLogsOnly = logsOnly.filter((log) => {
|
const filteredLogsOnly = logsOnly.filter((log) => {
|
||||||
|
const message = log.message || ""
|
||||||
|
const service = log.service || ""
|
||||||
|
const searchTermLower = safeToLowerCase(searchTerm)
|
||||||
|
|
||||||
const matchesSearch =
|
const matchesSearch =
|
||||||
log.message.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
safeToLowerCase(message).includes(searchTermLower) || safeToLowerCase(service).includes(searchTermLower)
|
||||||
log.service.toLowerCase().includes(searchTerm.toLowerCase())
|
|
||||||
const matchesLevel = levelFilter === "all" || log.level === levelFilter
|
const matchesLevel = levelFilter === "all" || log.level === levelFilter
|
||||||
const matchesService = serviceFilter === "all" || log.service === serviceFilter
|
const matchesService = serviceFilter === "all" || log.service === serviceFilter
|
||||||
|
|
||||||
return matchesSearch && matchesLevel && matchesService
|
return matchesSearch && matchesLevel && matchesService
|
||||||
})
|
})
|
||||||
|
|
||||||
// Filter events only
|
|
||||||
const filteredEventsOnly = eventsOnly.filter((event) => {
|
const filteredEventsOnly = eventsOnly.filter((event) => {
|
||||||
|
const message = event.message || ""
|
||||||
|
const service = event.service || ""
|
||||||
|
const searchTermLower = safeToLowerCase(searchTerm)
|
||||||
|
|
||||||
const matchesSearch =
|
const matchesSearch =
|
||||||
event.message.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
safeToLowerCase(message).includes(searchTermLower) || safeToLowerCase(service).includes(searchTermLower)
|
||||||
event.service.toLowerCase().includes(searchTerm.toLowerCase())
|
|
||||||
const matchesLevel = levelFilter === "all" || event.level === levelFilter
|
const matchesLevel = levelFilter === "all" || event.level === levelFilter
|
||||||
const matchesService = serviceFilter === "all" || event.service === serviceFilter
|
const matchesService = serviceFilter === "all" || event.service === serviceFilter
|
||||||
|
|
||||||
@@ -484,11 +493,13 @@ export function SystemLogs() {
|
|||||||
})),
|
})),
|
||||||
].sort((a, b) => b.sortTimestamp - a.sortTimestamp) // Sort by timestamp descending
|
].sort((a, b) => b.sortTimestamp - a.sortTimestamp) // Sort by timestamp descending
|
||||||
|
|
||||||
// Filter combined logs
|
|
||||||
const filteredCombinedLogs = combinedLogs.filter((log) => {
|
const filteredCombinedLogs = combinedLogs.filter((log) => {
|
||||||
|
const message = log.message || ""
|
||||||
|
const service = log.service || ""
|
||||||
|
const searchTermLower = safeToLowerCase(searchTerm)
|
||||||
|
|
||||||
const matchesSearch =
|
const matchesSearch =
|
||||||
log.message.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
safeToLowerCase(message).includes(searchTermLower) || safeToLowerCase(service).includes(searchTermLower)
|
||||||
log.service.toLowerCase().includes(searchTerm.toLowerCase())
|
|
||||||
const matchesLevel = levelFilter === "all" || log.level === levelFilter
|
const matchesLevel = levelFilter === "all" || log.level === levelFilter
|
||||||
const matchesService = serviceFilter === "all" || log.service === serviceFilter
|
const matchesService = serviceFilter === "all" || log.service === serviceFilter
|
||||||
|
|
||||||
@@ -555,7 +566,9 @@ export function SystemLogs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getNotificationTypeColor = (type: string) => {
|
const getNotificationTypeColor = (type: string) => {
|
||||||
switch (type.toLowerCase()) {
|
if (!type) return "bg-gray-500/10 text-gray-500 border-gray-500/20"
|
||||||
|
|
||||||
|
switch (safeToLowerCase(type)) {
|
||||||
case "error":
|
case "error":
|
||||||
return "bg-red-500/10 text-red-500 border-red-500/20"
|
return "bg-red-500/10 text-red-500 border-red-500/20"
|
||||||
case "warning":
|
case "warning":
|
||||||
@@ -571,7 +584,9 @@ export function SystemLogs() {
|
|||||||
|
|
||||||
// ADDED: New function for notification source colors
|
// ADDED: New function for notification source colors
|
||||||
const getNotificationSourceColor = (source: string) => {
|
const getNotificationSourceColor = (source: string) => {
|
||||||
switch (source.toLowerCase()) {
|
if (!source) return "bg-gray-500/10 text-gray-500 border-gray-500/20"
|
||||||
|
|
||||||
|
switch (safeToLowerCase(source)) {
|
||||||
case "task-log":
|
case "task-log":
|
||||||
return "bg-purple-500/10 text-purple-500 border-purple-500/20"
|
return "bg-purple-500/10 text-purple-500 border-purple-500/20"
|
||||||
case "journal":
|
case "journal":
|
||||||
|
|||||||
Reference in New Issue
Block a user