mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-22 05:18:51 +00:00
Submit and render with Turbo Stream
This commit is contained in:
@@ -10,12 +10,17 @@ module Admin
|
||||
if @cp_set.save
|
||||
respond_to do |format|
|
||||
format.json { render json: @cp_set.collection, each_serializer: Api::Admin::ColumnPreferenceSerializer }
|
||||
format.html { render inline: "saved" } #todo
|
||||
format.turbo_stream {
|
||||
flash.now[:success] = t('.success')
|
||||
render :bulk_update, locals: { action: permitted_params[:action_name] } }
|
||||
end
|
||||
elsif @cp_set.errors.present?
|
||||
respond_to do |format|
|
||||
format.json { render json: { errors: @cp_set.errors }, status: :bad_request }
|
||||
format.html { render inline: "errors" } #todo
|
||||
format.turbo_stream {
|
||||
flash.now[:error] = t('.error')
|
||||
render :bulk_update, locals: { action: permitted_params[:action_name] }
|
||||
}
|
||||
end
|
||||
else
|
||||
respond_to do |format|
|
||||
@@ -42,7 +47,7 @@ module Admin
|
||||
each_with_index.map { |cp, i| [i, cp] }]
|
||||
collection_attributes.select!{ |_i, cp| cp[:action_name] == permitted_params[:action_name] }
|
||||
end
|
||||
format.html do
|
||||
format.all do
|
||||
# Inject action name and user ID for each column_preference
|
||||
collection_attributes = permitted_params[:column_preferences].to_h.each_value { |cp|
|
||||
cp[:action_name] = permitted_params[:action_name]
|
||||
|
||||
12
app/views/admin/column_preferences/_form.html.haml
Normal file
12
app/views/admin/column_preferences/_form.html.haml
Normal file
@@ -0,0 +1,12 @@
|
||||
= form_with url: bulk_update_admin_column_preferences_path, method: :put, id: :bulk_admin_column_preferences_form do |f|
|
||||
= hidden_field_tag :action_name, action
|
||||
|
||||
- ColumnPreference.for(spree_current_user, action).each_with_index do |column_preference, index|
|
||||
= f.fields_for("column_preferences", column_preference, index:) do |cp_form|
|
||||
= cp_form.hidden_field :id
|
||||
= cp_form.hidden_field :column_name
|
||||
%label
|
||||
= cp_form.check_box :visible
|
||||
= t("admin.products_page.columns." + column_preference.column_name)
|
||||
|
||||
= f.submit t('admin.column_save_as_default')
|
||||
@@ -0,0 +1,3 @@
|
||||
= turbo_stream.replace "bulk_admin_column_preferences_form" do
|
||||
= render partial: "admin/shared/flashes", locals: { flashes: flash } if defined? flash
|
||||
= render partial: 'form', locals: { action: }
|
||||
@@ -15,15 +15,4 @@
|
||||
data: { controller: "tom-select search", action: "change->search#changePerPage", "tom-select-options-value": '{ "plugins": [] }'}
|
||||
|
||||
/ Columns dropdown
|
||||
= form_with url: bulk_update_admin_column_preferences_path, method: :put do |f|
|
||||
= hidden_field_tag :action_name, "#{controller_name}_#{action_name}"
|
||||
|
||||
- ColumnPreference.for(spree_current_user, "#{controller_name}_#{action_name}").each do |column_preference|
|
||||
= f.fields_for("column_preferences[]", column_preference) do |cp_form|
|
||||
= cp_form.hidden_field :id
|
||||
= cp_form.hidden_field :column_name
|
||||
%label
|
||||
= cp_form.check_box :visible
|
||||
= t("admin.products_page.columns." + column_preference.column_name)
|
||||
|
||||
= f.submit t('admin.column_save_as_default')
|
||||
= render partial: "admin/column_preferences/form", locals: { action: "products_v3_index" }
|
||||
|
||||
@@ -761,6 +761,10 @@ en:
|
||||
balance_due: "Balance Due"
|
||||
destroy:
|
||||
has_associated_subscriptions: "Delete failed: This customer has active subscriptions. Cancel them first."
|
||||
column_preferences:
|
||||
bulk_update:
|
||||
success: "Column preferences saved"
|
||||
error: "Column preferences could not be saved"
|
||||
contents:
|
||||
edit:
|
||||
title: Content
|
||||
|
||||
@@ -55,8 +55,8 @@ RSpec.describe Admin::ColumnPreferencesController, type: :controller do
|
||||
end
|
||||
end
|
||||
|
||||
context "html" do
|
||||
let(:request_format) { :html }
|
||||
context "turbo_stream" do
|
||||
let(:request_format) { :turbo_stream }
|
||||
let(:column_preference_params) {
|
||||
{
|
||||
'0': { id: column_preference.id, column_name: "name", visible: "0" },
|
||||
|
||||
Reference in New Issue
Block a user