114 lines
3.2 KiB
Python
114 lines
3.2 KiB
Python
from aiogram.filters.callback_data import CallbackData
|
||
from aiogram.types import InlineKeyboardMarkup
|
||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||
|
||
from keyboards.admin.panel_kb import AdminPanelCallback, build_admin_back_btn
|
||
|
||
|
||
class AdminServerEditorCallback(CallbackData, prefix="admin_servers"):
|
||
action: str
|
||
data: str
|
||
|
||
|
||
def build_clusters_editor_kb(servers: dict) -> InlineKeyboardMarkup:
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
for cluster_name in servers:
|
||
builder.button(
|
||
text=f"⚙️ {cluster_name}",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="clusters_manage",
|
||
data=cluster_name
|
||
).pack()
|
||
)
|
||
|
||
builder.button(
|
||
text="➕ Добавить кластер",
|
||
callback_data=AdminPanelCallback(action="clusters_add").pack()
|
||
)
|
||
builder.row(
|
||
build_admin_back_btn()
|
||
)
|
||
builder.adjust(1)
|
||
return builder.as_markup()
|
||
|
||
|
||
def build_manage_cluster_kb(cluster_servers, cluster_name) -> InlineKeyboardMarkup:
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
for server in cluster_servers:
|
||
builder.button(
|
||
text=f"🌍 {server['server_name']}",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="servers_manage",
|
||
data=server["server_name"]
|
||
).pack()
|
||
)
|
||
|
||
builder.button(
|
||
text="➕ Добавить сервер",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="servers_add",
|
||
data=cluster_name
|
||
).pack()
|
||
)
|
||
builder.button(
|
||
text="🌐 Доступность серверов",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="servers_availability",
|
||
data=cluster_name
|
||
).pack()
|
||
)
|
||
builder.button(
|
||
text="💾 Создать бэкап кластера",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="clusters_backup",
|
||
data=cluster_name
|
||
).pack()
|
||
)
|
||
builder.row(
|
||
build_admin_back_btn("servers")
|
||
)
|
||
builder.adjust(1)
|
||
return builder.as_markup()
|
||
|
||
|
||
def build_manage_server_kb(server_name: str, cluster_name: str) -> InlineKeyboardMarkup:
|
||
builder = InlineKeyboardBuilder()
|
||
builder.button(
|
||
text="🗑️ Удалить",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="servers_delete",
|
||
data=server_name
|
||
).pack()
|
||
)
|
||
builder.button(
|
||
text="🔙 Назад",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="clusters_manage",
|
||
data=cluster_name
|
||
).pack()
|
||
)
|
||
builder.adjust(1)
|
||
return builder.as_markup()
|
||
|
||
|
||
def build_delete_server_kb(server_name: str) -> InlineKeyboardMarkup:
|
||
builder = InlineKeyboardBuilder()
|
||
builder.button(
|
||
text="✅ Да",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="servers_delete_confirm",
|
||
data=server_name
|
||
).pack()
|
||
)
|
||
builder.button(
|
||
text="🔙 Назад",
|
||
callback_data=AdminServerEditorCallback(
|
||
action="servers_manage",
|
||
data=server_name
|
||
).pack()
|
||
)
|
||
builder.adjust(1)
|
||
return builder.as_markup()
|