diff --git a/app/controllers/time_regs_controller.rb b/app/controllers/time_regs_controller.rb index 28a970e3..837cc06b 100644 --- a/app/controllers/time_regs_controller.rb +++ b/app/controllers/time_regs_controller.rb @@ -54,7 +54,7 @@ def create authorize! @time_reg if @time_reg.save - redirect_back(fallback_location: time_regs_path, date: @time_reg.date_worked) + redirect_to time_regs_path(date: @time_reg.date_worked) else set_assigned_tasks render :new_modal, status: :unprocessable_entity, formats: [ :html, :turbo_stream ] @@ -64,7 +64,7 @@ def create def update authorize! @time_reg if @time_reg.update(time_reg_params.except(:project_id, :minutes_string)) - redirect_back(fallback_location: time_regs_path, date: @time_reg.date_worked) + redirect_to time_regs_path(date: @time_reg.date_worked) else set_assigned_tasks render :edit_modal, status: :unprocessable_entity, formats: [ :html, :turbo_stream ] @@ -74,7 +74,7 @@ def update def destroy authorize! @time_reg @time_reg.discard! - redirect_back(fallback_location: time_regs_path, date: @time_reg.date_worked) + redirect_to time_regs_path(date: @time_reg.date_worked) rescue ActiveRecord::RecordNotDestroyed flash[:alert] = "Unable to delete time registration" diff --git a/app/javascript/controllers/flatpickr_controller.js b/app/javascript/controllers/flatpickr_controller.js index dfd63cb0..deb9171b 100644 --- a/app/javascript/controllers/flatpickr_controller.js +++ b/app/javascript/controllers/flatpickr_controller.js @@ -29,6 +29,23 @@ export default class extends Flatpickr { connect() { super.connect(); this.updateWidth(); + + // Handle Turbo Morph by reinitializing flatpickr + document.addEventListener('turbo:morph', this.handleTurboMorph); + } + + disconnect() { + super.disconnect(); + document.removeEventListener('turbo:morph', this.handleTurboMorph); + } + + handleTurboMorph = () => { + // Reinitialize flatpickr after Turbo Morph + if (this.fp) { + this.fp.destroy(); + } + super.connect(); + this.updateWidth(); } change(selectedDates, dateStr, instance) { diff --git a/app/views/time_regs/_date_picker.html.erb b/app/views/time_regs/_date_picker.html.erb index 2f261fcc..dfc228ac 100644 --- a/app/views/time_regs/_date_picker.html.erb +++ b/app/views/time_regs/_date_picker.html.erb @@ -1,5 +1,5 @@ <%= form_with url: root_path, method: :get, class: "flex items-stretch" do |form| %> - <%= form.text_field :date, value: @chosen_date, class: "flex text-sm md:text-base px-1 md:px-2 cursor-pointer border-none text-center hover:text-primary-600 z-10 focus:ring-0 font-medium", + <%= form.text_field :date, id: "date_picker_input", value: @chosen_date.iso8601, class: "flex text-sm md:text-base px-1 md:px-2 cursor-pointer border-none text-center hover:text-primary-600 z-10 focus:ring-0 font-medium", data: { controller: "flatpickr", flatpickr_auto_submit_value: true,