| import gradio as gr |
|
|
| import scripts.mo.ui_navigation as nav |
| import scripts.mo.ui_styled_html as styled |
| from scripts.mo.environment import env |
| from scripts.mo.ui_debug import debug_ui_block |
| from scripts.mo.ui_details import details_ui_block |
| from scripts.mo.ui_download import download_ui_block |
| from scripts.mo.ui_edit import edit_ui_block |
| from scripts.mo.ui_home import home_ui_block |
| from scripts.mo.ui_import_export import import_export_ui_block |
| from scripts.mo.ui_remove import remove_ui_block |
| from scripts.mo.utils import get_json_record_data |
|
|
|
|
| def on_json_box_change(json_state, home_refresh_token): |
| state = nav.get_nav_state(json_state) |
|
|
| is_home_visible = state['is_home_visible'] |
| if is_home_visible: |
| home_refresh_token = nav.generate_ui_token() |
|
|
| return [ |
| gr.Column.update(visible=is_home_visible), |
| gr.Column.update(visible=state['is_details_visible']), |
| gr.Column.update(visible=state['is_edit_visible']), |
| gr.Column.update(visible=state['is_remove_visible']), |
| gr.Column.update(visible=state['is_download_visible']), |
| gr.Column.update(visible=state['is_import_export_visible']), |
| gr.Column.update(visible=state['is_debug_visible']), |
|
|
| gr.Textbox.update(value=home_refresh_token), |
| gr.Textbox.update(value=state['details_record_id']), |
| gr.Textbox.update(value=state['edit_data']), |
| gr.Textbox.update(value=state['remove_record_id']), |
| gr.Textbox.update(value=state['download_info']), |
| gr.Textbox.update(value=state['filter_state']), |
| gr.Textbox.update(value=get_json_record_data(state['details_record_info_id'])) |
| ] |
|
|
|
|
| def main_ui_block(): |
| with gr.Blocks(elem_id='model_organizer_tab') as main_block: |
| if env.is_storage_has_errors(): |
| gr.HTML(styled.alert_danger(env.storage_error)) |
| return main_block |
| elif not env.is_storage_initialized(): |
| gr.HTML(styled.alert_danger('Storage not initialized')) |
| return main_block |
|
|
| _json_nav_box = gr.Textbox(value=nav.navigate_home(), label='mo_json_nav_box', elem_id='mo_json_nav_box', |
| elem_classes='mo-alert-warning', visible=False) |
|
|
| with gr.Column(visible=True, elem_id='mo_home_tab') as home_block: |
| home_refresh_box = home_ui_block() |
|
|
| with gr.Column(visible=False) as record_details_block: |
| details_id_box = details_ui_block() |
|
|
| with gr.Column(visible=False) as edit_record_block: |
| edit_id_box = edit_ui_block() |
|
|
| with gr.Column(visible=False) as remove_record_block: |
| remove_id_box = remove_ui_block() |
|
|
| with gr.Column(visible=False) as download_block: |
| download_id_box = download_ui_block() |
|
|
| with gr.Column(visible=False) as import_export_block: |
| filter_state_box = import_export_ui_block() |
|
|
| with gr.Column(visible=False) as debug_block: |
| if env.is_debug_mode_enabled(): |
| debug_ui_block() |
| else: |
| gr.Row() |
|
|
| details_data_box = gr.Textbox(value='\{\}', label='mo_record_info_nav_box', elem_id='mo_record_info_nav_box', elem_classes='mo-alert-warning', visible=False) |
|
|
| _json_nav_box.change(on_json_box_change, |
| inputs=[_json_nav_box, home_refresh_box], |
| outputs=[home_block, |
| record_details_block, |
| edit_record_block, |
| remove_record_block, |
| download_block, |
| import_export_block, |
| debug_block, |
|
|
| home_refresh_box, |
| details_id_box, |
| edit_id_box, |
| remove_id_box, |
| download_id_box, |
| filter_state_box, |
| details_data_box |
| ]) |
|
|
| return main_block |
|
|