Newer
Older
dmpopidor / app / controllers / settings / plans_controller.rb
@Marta Ribeiro Marta Ribeiro on 3 Jun 2016 1 KB DMPonline4 - RAILS 4.0 (#4)
module Settings
  class PlansController < SettingsController

    before_filter :get_settings

    def show
      respond_to do |format|
        format.html
        format.partial
        format.json { render json: settings_json }
      end
    end

    def update

      export_params = params[:export].try(:deep_symbolize_keys)

      settings = plan.super_settings(:export).tap do |s|
        if params[:commit] == 'Reset'
          s.formatting = nil
          s.fields = nil
        else
          s.formatting = export_params[:formatting]
          s.fields = export_params[:fields]
          s.title  = export_params[:title]
        end
      end

      if settings.save
        respond_to do |format|
          format.html { redirect_to(export_project_path(plan.project)) }
          format.json { render json: settings_json }
        end
      else
        settings.formatting = nil
        @export_settings = settings
        render(action: :show)
      end
    end

  private

    def get_settings
      @export_settings = plan.settings(:export)
    end

    def settings_json
      @settings_json ||= { export: @export_settings }.to_json
    end

    def plan
      @plan ||= Plan.find(params[:id])
    end

  end
end