|
import gradio as gr |
|
from gradio.components import Component |
|
|
|
from src.webui.webui_manager import WebuiManager |
|
from src.utils import config |
|
|
|
|
|
def create_load_save_config_tab(webui_manager: WebuiManager): |
|
""" |
|
Creates a load and save config tab. |
|
""" |
|
input_components = set(webui_manager.get_components()) |
|
tab_components = {} |
|
|
|
config_file = gr.File( |
|
label="Load UI Settings from json", |
|
file_types=[".json"], |
|
interactive=True |
|
) |
|
with gr.Row(): |
|
load_config_button = gr.Button("Load Config", variant="primary") |
|
save_config_button = gr.Button("Save UI Settings", variant="primary") |
|
|
|
config_status = gr.Textbox( |
|
label="Status", |
|
lines=2, |
|
interactive=False |
|
) |
|
|
|
tab_components.update(dict( |
|
load_config_button=load_config_button, |
|
save_config_button=save_config_button, |
|
config_status=config_status, |
|
config_file=config_file, |
|
)) |
|
|
|
webui_manager.add_components("load_save_config", tab_components) |
|
|
|
save_config_button.click( |
|
fn=webui_manager.save_config, |
|
inputs=set(webui_manager.get_components()), |
|
outputs=[config_status] |
|
) |
|
|
|
load_config_button.click( |
|
fn=webui_manager.load_config, |
|
inputs=[config_file], |
|
outputs=webui_manager.get_components(), |
|
) |
|
|
|
|