diff --git a/module/webui/app.py b/module/webui/app.py index b181e71..0f9cbc1 100644 --- a/module/webui/app.py +++ b/module/webui/app.py @@ -71,6 +71,7 @@ from module.webui.utils import ( parse_pin_value, raise_exception, re_fullmatch, + to_pin_value, ) from module.webui.widgets import ( BinarySwitchButton, @@ -496,11 +497,10 @@ class AlasGUI(Frame): valid.append(k) for set_key, set_value in config_updater.save_callback(k, v): - logger.info([set_key, set_value, pin["_".join(set_key.split("."))]]) modified[set_key] = set_value deep_set(config, set_key, set_value) valid.append(set_key) - pin["_".join(set_key.split("."))] = set_value + pin["_".join(set_key.split("."))] = to_pin_value(set_value) else: modified.pop(k) invalid.append(k) diff --git a/module/webui/utils.py b/module/webui/utils.py index 0ac6b86..da869e8 100644 --- a/module/webui/utils.py +++ b/module/webui/utils.py @@ -11,9 +11,7 @@ from typing import Callable, Generator, List import pywebio from pywebio.input import PASSWORD, input from pywebio.output import PopupSize, popup, put_html, toast -from pywebio.session import eval_js -from pywebio.session import info as session_info -from pywebio.session import register_thread, run_js +from pywebio.session import eval_js, info as session_info, register_thread, run_js from rich.console import Console from rich.terminal_theme import TerminalTheme @@ -427,6 +425,18 @@ def parse_pin_value(val, valuetype: str = None): return v +def to_pin_value(val): + """ + Convert bool to checkbox + """ + if val is True: + return [True] + elif val is False: + return [] + else: + return val + + def login(password): if get_localstorage("password") == str(password): return True