6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'app/controllers/decidim_toggle/system/settings_tab_controller.rb', line 6
def update
build_tabs_registry
config = registry.form_tab(params[:tab_id])
return head :not_found unless config
@organization = Decidim::Organization.find(params[:organization_id])
form_class = config[:form]
command_class = config[:command]
@form = form(form_class).from_params(params.permit!).with_context(current_organization: @organization)
command_class.call(@organization, @form) do
on(:ok) do
flash[:notice] = t("decidim_toggle.system.organizations.form_tab.success")
redirect_to settings_tab_redirect_target
end
on(:invalid) do
flash[:decidim_toggle_invalid_settings_tab] = {
organization_id: @organization.id,
tab_id: params[:tab_id].to_s,
params: params.fetch(:organization, {}).permit!.to_h,
errors: @form.errors.messages.transform_keys(&:to_s).transform_values { |messages| messages.map(&:to_s) }
}
redirect_to settings_tab_redirect_target
end
end
end
|