added default host selection

This commit is contained in:
Natan Keddem
2023-11-12 21:14:30 -05:00
parent f4722af3db
commit b6753be56d
3 changed files with 21 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
from nicegui import ui
from bale import elements as el
import bale.logo as logo
from bale.tabs import Tab
from bale.tabs.manage import Manage
from bale.tabs.history import History
from bale.tabs.automation import Automation
@@ -43,6 +44,13 @@ class Content:
self._tab_panels = (
ui.tab_panels(self._tabs, value="Manage", on_change=lambda e: self._tab_changed(e), animated=False).classes("w-full h-full").bind_visibility_from(self._header)
)
ui.timer(0.1, self.select_default, once=True)
async def select_default(self):
tab = Tab(spinner=None)
default = tab.common.get("default", "")
if default != "":
await self.host_selected(default)
async def _tab_changed(self, e):
if e.value == "Manage":

View File

@@ -107,6 +107,9 @@ class Drawer(object):
result = await host_dialog
if result == "save":
if name != "" and name != host_input.value:
default = Tab(spinner=None).common.get("default", "")
if default == name:
Tab(spinner=None).common["default"] = ""
for row in self._table.rows:
if name == row["name"]:
self._table.remove_rows(row)

View File

@@ -13,6 +13,14 @@ logger = logging.getLogger(__name__)
class Manage(Tab):
def _build(self):
def set_default(value) -> None:
if value is True:
self.common.update({"default": self.host})
el.notify(f"Default host is now {self.host}.", type="info")
else:
self.common.update({"default": ""})
el.notify("Default host is now unset.", type="info")
with el.WColumn() as col:
col.tailwind.height("full")
self._confirm = el.WRow()
@@ -27,7 +35,8 @@ class Manage(Tab):
el.SmButton(text="Browse", on_click=self._browse)
el.SmButton(text="Find", on_click=self._find)
with ui.row().classes("items-center"):
self._auto = ui.checkbox("Auto", on_change=lambda e: self.common.update({"auto": e.value}))
self._default = ui.checkbox("Default", value=True if self.common.get("default", "") == self.host else False, on_change=lambda e: set_default(e.value))
self._default.props("left-label keep-color color=primary")
self._auto.props("left-label keep-color color=primary")
self._auto.tailwind.text_color("primary")
self._auto.value = self.common.get("auto", False)