| 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(), | |
| ) | |