v 0.1
This commit is contained in:
92
src/ui/configuration_window.py
Normal file
92
src/ui/configuration_window.py
Normal file
@ -0,0 +1,92 @@
|
||||
import dearpygui.dearpygui as dpg
|
||||
from src.ui.scanner_window import create_scanner_window
|
||||
from src.core.models.models import Session
|
||||
from src.utils.logger import get_logger
|
||||
|
||||
logger = get_logger("config_window")
|
||||
|
||||
def create_configuration_window(db, session: Session):
|
||||
"""Окно конфигурации сессии"""
|
||||
with dpg.window(
|
||||
tag="config_window",
|
||||
label=f"Session: {session.name}",
|
||||
no_collapse=True,
|
||||
no_resize=True,
|
||||
no_close=True,
|
||||
no_title_bar=True,
|
||||
no_scrollbar=True,
|
||||
no_move=True,
|
||||
no_scroll_with_mouse=True
|
||||
):
|
||||
# Главная горизонтальная группа для разделения на панели
|
||||
with dpg.group(horizontal=True):
|
||||
# Боковая панель навигации
|
||||
with dpg.child_window(
|
||||
tag="sidebar",
|
||||
width=270,
|
||||
height=-1,
|
||||
border=False
|
||||
):
|
||||
dpg.add_text("Меню", color=(200, 200, 200))
|
||||
dpg.add_separator()
|
||||
|
||||
dpg.add_button(
|
||||
label="Сканирование",
|
||||
callback=lambda: show_scanner_window(db, session),
|
||||
width=-1,
|
||||
height=50
|
||||
)
|
||||
dpg.add_spacer(height=10)
|
||||
|
||||
dpg.add_button(
|
||||
label="Эксплуатация",
|
||||
callback=lambda: logger.info("Attacks selected"),
|
||||
width=-1,
|
||||
height=50
|
||||
)
|
||||
dpg.add_spacer(height=10)
|
||||
|
||||
dpg.add_button(
|
||||
label="Генерация отчета",
|
||||
callback=lambda: logger.info("Reporting selected"),
|
||||
width=-1,
|
||||
height=50
|
||||
)
|
||||
dpg.add_spacer(height=10)
|
||||
|
||||
dpg.add_button(
|
||||
label="Лог приложения",
|
||||
callback=lambda: logger.info("Log selected"),
|
||||
width=-1,
|
||||
height=50
|
||||
)
|
||||
|
||||
dpg.add_spacer(height=30)
|
||||
dpg.add_text(f"Сессия: {session.name}", color=(150, 150, 150))
|
||||
created_at = session.created_at.strftime(
|
||||
"""%Y-%m-%d
|
||||
%H:%M"""
|
||||
) if session.created_at else "Unknown"
|
||||
dpg.add_text(f"Дата создания: {created_at}", color=(150, 150, 150))
|
||||
|
||||
# Основная область контента (контейнер)
|
||||
with dpg.child_window(
|
||||
tag="content_area",
|
||||
width=-1,
|
||||
height=-1,
|
||||
border=False
|
||||
):
|
||||
# Начальное содержимое
|
||||
dpg.add_text("Выберите подмодуль", tag="initial_content")
|
||||
|
||||
# Установить окно конфигурации как основное
|
||||
dpg.set_primary_window("config_window", True)
|
||||
|
||||
def show_scanner_window(db, session):
|
||||
"""Показать окно сканирования"""
|
||||
# Очистить контентную область
|
||||
if dpg.does_item_exist("content_area"):
|
||||
dpg.delete_item("content_area", children_only=True)
|
||||
|
||||
# Создать окно сканирования внутри контентной области
|
||||
create_scanner_window(db, session, parent="content_area")
|
Reference in New Issue
Block a user