From 02b6302f25f9c1d4eb2b79d4c33b2a6620e56c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 6 Oct 2024 13:15:08 +0200 Subject: [PATCH] Focus the proposal selection switch after pressing it Since this button is replaced by a new element in an AJAX call, nothing was focused after pressing it. So we're reusing the code we used to enable/disable budget phases, which already dealt with this issue. --- .../admin/budgets_wizard/phases/toggle_enabled.js.erb | 8 +++----- app/views/admin/legislation/proposals/_proposals.html.erb | 2 +- .../admin/legislation/proposals/toggle_selection.js.erb | 6 +++--- app/views/admin/proposals/index.html.erb | 2 +- app/views/admin/proposals/toggle_selection.js.erb | 6 +++--- app/views/admin/shared/_toggle_switch.js.erb | 5 +++++ 6 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 app/views/admin/shared/_toggle_switch.js.erb diff --git a/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb b/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb index d0688ab25..764515939 100644 --- a/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb +++ b/app/views/admin/budgets_wizard/phases/toggle_enabled.js.erb @@ -1,5 +1,3 @@ -var replacement = $("<%= j render Admin::BudgetPhases::ToggleEnabledComponent.new(@phase) %>"); -var form = $("#<%= dom_id(@phase) %> .toggle-switch"); - -form.replaceWith(replacement); -replacement.find("[type='submit']").focus(); +<%= render "admin/shared/toggle_switch", + record: @phase, + new_content: render(Admin::BudgetPhases::ToggleEnabledComponent.new(@phase)) %> diff --git a/app/views/admin/legislation/proposals/_proposals.html.erb b/app/views/admin/legislation/proposals/_proposals.html.erb index c63bdf977..4694b1732 100644 --- a/app/views/admin/legislation/proposals/_proposals.html.erb +++ b/app/views/admin/legislation/proposals/_proposals.html.erb @@ -19,7 +19,7 @@ <%= proposal.id %> <%= proposal.title %> <%= proposal.votes_score %> - <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> + <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> <% end %> diff --git a/app/views/admin/legislation/proposals/toggle_selection.js.erb b/app/views/admin/legislation/proposals/toggle_selection.js.erb index 8b0507552..258c2901c 100644 --- a/app/views/admin/legislation/proposals/toggle_selection.js.erb +++ b/app/views/admin/legislation/proposals/toggle_selection.js.erb @@ -1,3 +1,3 @@ -$("#<%= dom_id(@proposal) %> .select").html( - "<%= j render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %>" -); +<%= render "admin/shared/toggle_switch", + record: @proposal, + new_content: render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %> diff --git a/app/views/admin/proposals/index.html.erb b/app/views/admin/proposals/index.html.erb index 23f5388f4..27964da5b 100644 --- a/app/views/admin/proposals/index.html.erb +++ b/app/views/admin/proposals/index.html.erb @@ -27,7 +27,7 @@ <%= link_to proposal.title, admin_proposal_path(proposal) %> <%= proposal.author.username %> <%= proposal.milestones.count %> - <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> + <%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %> <% end %> diff --git a/app/views/admin/proposals/toggle_selection.js.erb b/app/views/admin/proposals/toggle_selection.js.erb index bb832e071..258c2901c 100644 --- a/app/views/admin/proposals/toggle_selection.js.erb +++ b/app/views/admin/proposals/toggle_selection.js.erb @@ -1,3 +1,3 @@ -$("#<%= dom_id(@proposal) %> .js-select").html( - "<%= j render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %>" -); +<%= render "admin/shared/toggle_switch", + record: @proposal, + new_content: render(Admin::Proposals::ToggleSelectionComponent.new(@proposal)) %> diff --git a/app/views/admin/shared/_toggle_switch.js.erb b/app/views/admin/shared/_toggle_switch.js.erb new file mode 100644 index 000000000..f8c172155 --- /dev/null +++ b/app/views/admin/shared/_toggle_switch.js.erb @@ -0,0 +1,5 @@ +var new_toggle_switch = $("<%= j new_content %>"); +var current_toggle_switch = $("#<%= dom_id(record) %> .toggle-switch"); + +current_toggle_switch.replaceWith(new_toggle_switch); +new_toggle_switch.find("[type='submit']").focus();