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

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



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

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



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

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