Amélioration de la modale de renommage des vues

This commit is contained in:
Colin Maudry
2026-07-13 22:50:23 +02:00
parent c0d8a40c92
commit 8b9433b7f2
+10 -5
View File
@@ -47,7 +47,7 @@ def _content():
children=[ children=[
dbc.ModalHeader(dbc.ModalTitle("Renommer la vue")), dbc.ModalHeader(dbc.ModalTitle("Renommer la vue")),
dbc.ModalBody( dbc.ModalBody(
dbc.Input(id="vue-rename-input", type="text"), dbc.Input(id="vue-rename-input", type="text", autofocus=True),
), ),
dbc.ModalFooter( dbc.ModalFooter(
dbc.Button("Renommer", id="vue-rename-confirm", color="primary") dbc.Button("Renommer", id="vue-rename-confirm", color="primary")
@@ -82,25 +82,30 @@ def delete_view(n_clicks):
@callback( @callback(
Output("vue-rename-modal", "is_open"), Output("vue-rename-modal", "is_open"),
Output("vue-rename-id", "value"), Output("vue-rename-id", "value"),
Output("vue-rename-input", "value"),
Input({"type": "vue-rename-open", "index": ALL}, "n_clicks"), Input({"type": "vue-rename-open", "index": ALL}, "n_clicks"),
Input("vue-rename-confirm", "n_clicks"), Input("vue-rename-confirm", "n_clicks"),
Input("vue-rename-input", "n_submit"),
State("vue-rename-modal", "is_open"), State("vue-rename-modal", "is_open"),
prevent_initial_call=True, prevent_initial_call=True,
) )
def toggle_rename_modal(_open, _confirm, is_open): def toggle_rename_modal(_open, _confirm, _submit, is_open):
if isinstance(ctx.triggered_id, dict) and any(_open): if isinstance(ctx.triggered_id, dict) and any(_open):
return True, str(ctx.triggered_id["index"]) view_id = ctx.triggered_id["index"]
return False, no_update view = saved_views_db.get(view_id, current_user.id)
return True, str(view_id), view["name"] if view else no_update
return False, no_update, no_update
@callback( @callback(
Output("vues-list", "children", allow_duplicate=True), Output("vues-list", "children", allow_duplicate=True),
Input("vue-rename-confirm", "n_clicks"), Input("vue-rename-confirm", "n_clicks"),
Input("vue-rename-input", "n_submit"),
State("vue-rename-id", "value"), State("vue-rename-id", "value"),
State("vue-rename-input", "value"), State("vue-rename-input", "value"),
prevent_initial_call=True, prevent_initial_call=True,
) )
def rename_view(_n, view_id, new_name): def rename_view(_n, _submit, view_id, new_name):
clean = saved_views_ui.clean_view_name(new_name) clean = saved_views_ui.clean_view_name(new_name)
if not view_id or not clean: if not view_id or not clean:
return no_update return no_update