@@ -283,26 +283,29 @@ def apply_tmp_params(item, tmp)
283283
284284 when "Select"
285285 sub_hash = { }
286- ( 1 ..10 ) . each do |i |
287- desc = params [ "option_description_#{ i } " ]
288- val = params [ "option_value_#{ i } " ]
286+
287+ # Отримаємо масив select_options з параметрів
288+ select_options = params [ :select_options ] || [ ]
289+
290+ select_options . each do |pair |
291+ desc = pair [ "description" ]
292+ val = pair [ "value" ]
289293 next if desc . blank? || val . blank?
290-
294+
291295 sub_hash [ desc ] = val
292296 end
293-
294- value_label = params [ :value_label ] . to_s . strip
295-
296- if param_name . blank? || value_label . blank? || sub_hash . empty?
297- flash [ :error ] = "Select Name, Value Label and at least one option are required"
297+
298+ value_label = params [ :value_label ]
299+ if value_label . blank?
300+ flash [ :error ] = "Value Label is required for Select parameter"
298301 return redirect_back ( fallback_location : edit_admin_item_path ( @item ) )
299302 end
300-
303+
301304 store [ :select ] [ param_name ] = {
302305 "options" => sub_hash ,
303306 "value_label" => value_label
304307 }
305-
308+
306309 else
307310 flash [ :error ] = "Unknown parameter type"
308311 return redirect_back ( fallback_location : edit_admin_item_path ( @item ) )
@@ -313,6 +316,9 @@ def apply_tmp_params(item, tmp)
313316 Rails . logger . info "📤 Session after update: #{ session [ :tmp_params ] [ item_key ] } "
314317
315318 flash [ :notice ] = "Parameter '#{ param_name } ' added (stored in session)."
319+ Rails . logger . info "🧠 Final saved SELECT: #{ store [ :select ] [ param_name ] . inspect } "
320+ Rails . logger . info "📤 Full session after update: #{ session [ :tmp_params ] . inspect } "
321+
316322 redirect_to @item . persisted? ? edit_admin_item_path ( @item ) : new_resource_path
317323 end
318324
@@ -403,33 +409,31 @@ def apply_tmp_params(item, tmp)
403409 session [ :tmp_params ] [ "new" ] [ "calculation_formula" ] = params [ :calculation_formula ]
404410 else
405411 @item = Item . find ( params [ :id ] )
406-
412+
407413 session [ :tmp_params ] ||= { }
408414 session [ :tmp_params ] [ @item . id . to_s ] ||= { }
409415 session [ :tmp_params ] [ @item . id . to_s ] [ "calculation_formula" ] = params [ :calculation_formula ]
410-
416+
411417 @item . calculation_formula = params [ :calculation_formula ]
412418 end
413-
419+
414420 flash [ :notice ] = "Formula saved (in session)!"
415421 redirect_to params [ :id ] == "new" ? new_resource_path : edit_admin_item_path ( params [ :id ] )
416422 end
417-
418423
419424 member_action :clear_session , method : :post do
420425 item_key = params [ :id ] . to_s
421426 if session [ :tmp_params ] . present?
422427 Rails . logger . info "⚠️ TRYING TO DELETE session[:tmp_params][#{ item_key } ]"
423428 Rails . logger . info "🔍 BEFORE DELETE: #{ session [ :tmp_params ] [ item_key ] . inspect } "
424-
429+
425430 session [ :tmp_params ] . delete ( item_key )
426-
431+
427432 Rails . logger . info "🧹 DELETED! AFTER: #{ session [ :tmp_params ] . inspect } "
428433 else
429434 Rails . logger . warn "⚠️ tmp_params session is empty, nothing to delete"
430435 end
431436
432437 head :ok
433438 end
434-
435439end
0 commit comments