Class: Edgarj::PopupController

Inherits:
ApplicationController
  • Object
show all
Includes:
ControllerMixinCommon, PermissionMixin
Defined in:
app/controllers/edgarj/popup_controller.rb

Direct Known Subclasses

UserGroupsPopupController

Instance Method Summary collapse

Methods included from PermissionMixin

included

Methods included from ControllerMixinCommon

included, #page_info_save

Instance Method Details

#indexObject

draw popup windows

INPUTS

params

id target DOM on click entry of popup

params

on paginate

params

(optional) popup title default: t(‘edgarj.form.popup.title’) % model_label

Paginate logic

  • params exists -> save it to @page_info and use it

  • params doesn’t exist -> use @page_info.page

call flow

draw popup

EdgarjHelper.draw_belongs_to_label() is called. Example:

<a href='http://.../edgarj_popup?...' data-remote=true>Author</a>
<input type=hidden name='book[author_id]'>
<span id='popup_target_book_author'>...</span>
    :

on opening popup

  1. edgarj_popup URL …/edgarj_popup?… is executed.

  2. EdgarjPopupController.index() is called.

    1. data is searched based on @page_info and user_scoped and set it to @list.

  3. app/views/edgarj_popup/index.js.erb

    1. $(‘#edgarj_form_popup’) dialog is opened.

on paginate

Same as above(‘on opening popup’), but page=N parameter is added.

on search

  1. post search condition to EdgarjPopupController.search().

on clicking entry on the popup

TBD



50
51
52
53
54
55
# File 'app/controllers/edgarj/popup_controller.rb', line 50

def index
  page_info
  @page_info.page = (params[:page] || 1)
  prepare_list
  @search = page_info.record
end

#searchObject

Ajax method to execute search

Actually, this saves condition for later use. Execution of search could be done at ‘index’ method, but do it in this action to avoid ‘POST’ redirect issue( POST method redirect resulted in ‘POST index’, not ‘GET index’).

INPUTS

params

id target DOM on click entry of popup

params

search condition



67
68
69
70
71
72
73
# File 'app/controllers/edgarj/popup_controller.rb', line 67

def search
  page_info
  @page_info.record = SearchPopup.new(model, params[:edgarj_search_form])
  @page_info.update_attribute(:page, 1)
  @search   = @page_info.record
  prepare_list  if @search.valid?
end