Sha256: 59a7a73062339c9b4c267348965b81f6f51db8a04fc4842b64c6ee59eea93fd6

Contents?: true

Size: 1.63 KB

Versions: 4

Compression:

Stored size: 1.63 KB

Contents

module ThinkFeelDoEngine
  module BitMaker
    # Enables creation and deletion of SlideshowAnchors.
    class SlideshowAnchorsController < ApplicationController
      before_action :authenticate_user!, :set_arm, :find_slideshow

      rescue_from ActiveRecord::RecordNotFound, with: :record_not_found

      def create
        unless params[:slideshow_anchor]
          return destroy if params[:id_to_destroy].present?
          return render(js: "")
        end

        authorize! :create, SlideshowAnchor
        @slideshow_anchor = SlideshowAnchor.new(anchor_params)

        if @slideshow_anchor.save
          render "create", locals: { notice: "Anchor saved" }
        else
          render "create", locals: { alert: "Unable to save Anchor" }
        end
      end

      def destroy
        authorize! :destroy, SlideshowAnchor
        @slideshow_anchor = SlideshowAnchor.find(params[:id_to_destroy])

        if @slideshow_anchor.destroy
          render "destroy", locals: { notice: "Anchor deleted" }
        else
          render "destroy", locals: { alert: model_errors }
        end
      end

      private

      def find_slideshow
        @slideshow = @arm.bit_core_slideshows.find(params[:slideshow_id])
      end

      def record_not_found
        render "destroy", locals: { alert: "Not found" }
      end

      def model_errors
        @slideshow_anchor.errors.full_messages.join(", ")
      end

      def anchor_params
        params.require(:slideshow_anchor)
          .permit(:target_name)
          .merge(bit_core_slideshow_id: @slideshow.id)
      end

      def set_arm
        @arm = Arm.find(params[:arm_id])
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
think_feel_do_engine-3.10.9 app/controllers/think_feel_do_engine/bit_maker/slideshow_anchors_controller.rb
think_feel_do_engine-3.10.8 app/controllers/think_feel_do_engine/bit_maker/slideshow_anchors_controller.rb
think_feel_do_engine-3.10.7 app/controllers/think_feel_do_engine/bit_maker/slideshow_anchors_controller.rb
think_feel_do_engine-3.10.6 app/controllers/think_feel_do_engine/bit_maker/slideshow_anchors_controller.rb