Sha256: a93e9f0b843c0cb6025b39971c24f7e501cd84efc32509cffa9b859d4399da3a

Contents?: true

Size: 1.79 KB

Versions: 11

Compression:

Stored size: 1.79 KB

Contents

module Cms
  class FormFieldsController < Cms::BaseController

    layout false

    def new
      @field = Cms::FormField.new(label: 'Untitled', field_type: params[:field_type], form_id: params[:form_id])
    end

    def preview
      @form = Cms::Form.find(params[:id])
      @field = Cms::FormField.new(label: 'Untitled', name: :untitled, field_type: params[:field_type], form: @form)
    end

    def create
      form = Cms::Form.find(params[:form_field].delete(:form_id))
      field = FormField.new(form_field_params)
      field.form = form
      if field.save
        include_edit_path_in_json(field)
        include_delete_path_in_json(field)
        render json: field
      else
        render json: {
            errors: field.errors.full_messages
        },
               success: false,
               status: :unprocessable_entity
      end
    end

    def edit
      @field = FormField.find(params[:id])
      render :new
    end

    def update
      field = FormField.find(params[:id])
      if field.update form_field_params
        include_edit_path_in_json(field)
        render json: field
      else
        render text: "Fail", status: 500
      end
    end

    def destroy
      field = FormField.find(params[:id])
      field.destroy
      render json: field, success: true
    end

    def insert_at
      field = FormField.find(params[:id])
      field.insert_at(params[:position])
      render json: field
    end

    protected

    # For UI to update for subsequent editing.
    def include_edit_path_in_json(field)
      field.edit_path = cms.edit_form_field_path(field)
    end

    def include_delete_path_in_json(field)
      field.delete_path = cms.form_field_path(field)
    end

    def form_field_params()
      params.require(:form_field).permit(FormField.permitted_params)
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
browsercms-artirix-4.0.4 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.3.3 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.3.2 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.3.1 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.3 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.2 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.1.1 app/controllers/cms/form_fields_controller.rb
browsercms-artirix-4.0.0.rc1.art4 app/controllers/cms/form_fields_controller.rb
browsercms-4.0.0.rc1 app/controllers/cms/form_fields_controller.rb
browsercms-4.0.0.beta app/controllers/cms/form_fields_controller.rb
browsercms-4.0.0.alpha app/controllers/cms/form_fields_controller.rb