feat(gui): Add Log Management panel with manual whitelisting
This commit is contained in:
73
gui_2.py
73
gui_2.py
@@ -181,6 +181,7 @@ class App:
|
||||
"Discussion Hub": True,
|
||||
"Operations Hub": True,
|
||||
"Theme": True,
|
||||
"Log Management": False,
|
||||
"Diagnostics": False,
|
||||
}
|
||||
saved = self.config.get("gui", {}).get("show_windows", {})
|
||||
@@ -1407,6 +1408,9 @@ class App:
|
||||
imgui.end_tab_bar()
|
||||
imgui.end()
|
||||
|
||||
if self.show_windows.get("Log Management", False):
|
||||
self._render_log_management()
|
||||
|
||||
if self.show_windows["Diagnostics"]:
|
||||
exp, self.show_windows["Diagnostics"] = imgui.begin("Diagnostics", self.show_windows["Diagnostics"])
|
||||
if exp:
|
||||
@@ -1712,6 +1716,75 @@ class App:
|
||||
if ch:
|
||||
self.ui_agent_tools[t_name] = val
|
||||
|
||||
def _render_log_management(self):
|
||||
exp, self.show_windows["Log Management"] = imgui.begin("Log Management", self.show_windows["Log Management"])
|
||||
if not exp:
|
||||
imgui.end()
|
||||
return
|
||||
|
||||
registry = LogRegistry("logs/log_registry.toml")
|
||||
sessions = registry.data
|
||||
|
||||
if imgui.begin_table("sessions_table", 7, imgui.TableFlags_.borders | imgui.TableFlags_.row_bg | imgui.TableFlags_.resizable):
|
||||
imgui.table_setup_column("Session ID")
|
||||
imgui.table_setup_column("Start Time")
|
||||
imgui.table_setup_column("Star")
|
||||
imgui.table_setup_column("Reason")
|
||||
imgui.table_setup_column("Size (KB)")
|
||||
imgui.table_setup_column("Msgs")
|
||||
imgui.table_setup_column("Actions")
|
||||
imgui.table_headers_row()
|
||||
|
||||
for session_id, s_data in sessions.items():
|
||||
imgui.table_next_row()
|
||||
imgui.table_next_column()
|
||||
imgui.text(session_id)
|
||||
|
||||
imgui.table_next_column()
|
||||
imgui.text(s_data.get("start_time", ""))
|
||||
|
||||
imgui.table_next_column()
|
||||
whitelisted = s_data.get("whitelisted", False)
|
||||
if whitelisted:
|
||||
imgui.text_colored(vec4(255, 215, 0), "YES")
|
||||
else:
|
||||
imgui.text("NO")
|
||||
|
||||
metadata = s_data.get("metadata") or {}
|
||||
|
||||
imgui.table_next_column()
|
||||
imgui.text(metadata.get("reason", ""))
|
||||
|
||||
imgui.table_next_column()
|
||||
imgui.text(str(metadata.get("size_kb", "")))
|
||||
|
||||
imgui.table_next_column()
|
||||
imgui.text(str(metadata.get("message_count", "")))
|
||||
|
||||
imgui.table_next_column()
|
||||
if whitelisted:
|
||||
if imgui.button(f"Unstar##{session_id}"):
|
||||
registry.update_session_metadata(
|
||||
session_id,
|
||||
message_count=metadata.get("message_count"),
|
||||
errors=metadata.get("errors"),
|
||||
size_kb=metadata.get("size_kb"),
|
||||
whitelisted=False,
|
||||
reason=metadata.get("reason")
|
||||
)
|
||||
else:
|
||||
if imgui.button(f"Star##{session_id}"):
|
||||
registry.update_session_metadata(
|
||||
session_id,
|
||||
message_count=metadata.get("message_count"),
|
||||
errors=metadata.get("errors"),
|
||||
size_kb=metadata.get("size_kb"),
|
||||
whitelisted=True,
|
||||
reason="Manually whitelisted"
|
||||
)
|
||||
imgui.end_table()
|
||||
imgui.end()
|
||||
|
||||
def _render_files_panel(self):
|
||||
imgui.text("Base Dir")
|
||||
ch, self.ui_files_base_dir = imgui.input_text("##f_base", self.ui_files_base_dir)
|
||||
|
||||
Reference in New Issue
Block a user