diff --git a/app/controllers/admin/configs_controller.rb b/app/controllers/admin/configs_controller.rb index 500c1b870..adc1586c9 100644 --- a/app/controllers/admin/configs_controller.rb +++ b/app/controllers/admin/configs_controller.rb @@ -43,11 +43,12 @@ def parse_recurring_selects!(config) for k in %i[pickup boxfill ends] do if config[k] # allow clearing it using dummy value '{}' ('' would break recurring_select) - if config[k][:recurr].present? && config[k][:recurr] != '{}' + if config[k][:recurr].present? && config[k][:recurr] != '{}' && !config[k][:recurr].nil? config[k][:recurr] = ActiveSupport::JSON.decode(config[k][:recurr]) - config[k][:recurr] = FoodsoftDateUtil.rule_from(config[k][:recurr]).to_ical if config[k][:recurr] + date = FoodsoftDateUtil.rule_from(config[k][:recurr]) + config[k][:recurr] = date.to_ical if date else - config[k] = nil + config[k][:recurr] = '' end end end diff --git a/app/lib/foodsoft_date_util.rb b/app/lib/foodsoft_date_util.rb index 38dbc6be4..509f25e2b 100644 --- a/app/lib/foodsoft_date_util.rb +++ b/app/lib/foodsoft_date_util.rb @@ -24,6 +24,8 @@ def self.rule_from(rule) IceCube::Rule.from_ical(rule) when Hash IceCube::Rule.from_hash(rule) + when ActionController::Parameters + IceCube::Rule.from_hash(rule.to_hash) else rule end