Class: Integral::Backend::BaseController

Inherits:
ActionController::Base
  • Object
show all
Includes:
Pundit
Defined in:
app/controllers/integral/backend/base_controller.rb

Overview

Base controller for backend inherited by all Integral backend controllers

Instance Method Summary collapse

Instance Method Details

#activitiesObject

GET /:id/activities



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'app/controllers/integral/backend/base_controller.rb', line 113

def activities
  authorize Version

  add_breadcrumb I18n.t('integral.navigation.edit'), "edit_backend_#{controller_name.singularize}_path".to_sym
  add_breadcrumb I18n.t('integral.navigation.activity')

  @grid = Integral::Grids::ActivitiesGrid.new(activity_grid_options.except('page')) do |scope|
    scope.page(activity_grid_options['page']).per_page(25)
  end

  respond_to do |format|
    format.html
    format.json { render json: { content: render_to_string(partial: 'integral/backend/activities/shared/grid', locals: { grid: @grid }) } }
  end
end

#activityObject

GET /:id/activities/:id



130
131
132
133
134
135
136
137
# File 'app/controllers/integral/backend/base_controller.rb', line 130

def activity
  authorize Version

  add_breadcrumb I18n.t('integral.navigation.activity'), "activities_backend_#{controller_name.singularize}_url".to_sym
  add_breadcrumb I18n.t('integral.actions.view')

  @activity = resource_version_klass.find(params[:activity_id]).decorate
end

#createObject

POST / Resource creation



57
58
59
60
61
62
63
64
65
66
67
68
# File 'app/controllers/integral/backend/base_controller.rb', line 57

def create
  add_breadcrumb I18n.t('integral.navigation.create'), "new_backend_#{controller_name.singularize}_path".to_sym
  @resource = resource_klass.new(resource_params)

  yield if block_given?

  if @resource.save
    respond_successfully(notification_message('creation_success'), send("edit_backend_#{controller_name.singularize}_path", @resource.id))
  else
    respond_failure(notification_message('creation_failure'), :new)
  end
end

#destroyObject

DELETE /:id



87
88
89
90
91
92
93
94
95
96
# File 'app/controllers/integral/backend/base_controller.rb', line 87

def destroy
  if @resource.destroy
    respond_successfully(notification_message('delete_success'), send("backend_#{controller_name}_path"))
  else
    error_message = @resource.errors.full_messages.to_sentence
    flash[:error] = "#{notification_message('delete_failure')} - #{error_message}"

    redirect_to send("backend_#{controller_name}_path")
  end
end

#duplicate {|cloned_resource| ... } ⇒ Object

POST /:id/duplicate Duplicate a resource

Yields:

  • (cloned_resource)


100
101
102
103
104
105
106
107
108
109
110
# File 'app/controllers/integral/backend/base_controller.rb', line 100

def duplicate
  cloned_resource = @resource.dup

  yield cloned_resource if block_given?

  if cloned_resource.save
    respond_successfully(notification_message('clone_success'), send("edit_backend_#{controller_name.singularize}_path", cloned_resource.id))
  else
    respond_failure(notification_message('clone_failure'), :edit)
  end
end

#editObject

GET /:id/edit Resource edit screen



72
73
74
# File 'app/controllers/integral/backend/base_controller.rb', line 72

def edit
  add_breadcrumb I18n.t('integral.navigation.edit'), "edit_backend_#{controller_name.singularize}_path".to_sym
end

#indexObject

GET / Lists all resources



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/controllers/integral/backend/base_controller.rb', line 31

def index
  respond_to do |format|
    format.html do
      set_grid
    end

    format.json do
      if params[:gridview].present?
        set_grid
        render json: { content: render_to_string(partial: "integral/backend/#{controller_name}/grid", locals: { grid: @grid }) }
      else
        respond_to_record_selector
      end
    end
  end
end

#newObject

GET /new Resource creation screen



50
51
52
53
# File 'app/controllers/integral/backend/base_controller.rb', line 50

def new
  add_breadcrumb I18n.t('integral.navigation.new'), "new_backend_#{controller_name.singularize}_path".to_sym
  @resource = resource_klass.new
end

#updateObject

PUT /:id Updating a resource



78
79
80
81
82
83
84
# File 'app/controllers/integral/backend/base_controller.rb', line 78

def update
  if @resource.update(resource_params)
    respond_successfully(notification_message('edit_success'), send("edit_backend_#{controller_name.singularize}_path", @resource.id))
  else
    respond_failure(notification_message('edit_failure'), :edit)
  end
end