Skip to content

Instantly share code, notes, and snippets.

@beck03076
Created July 28, 2013 16:07
Show Gist options
  • Save beck03076/6099104 to your computer and use it in GitHub Desktop.
Save beck03076/6099104 to your computer and use it in GitHub Desktop.
class EnrollmentsDatatable
delegate :edit_enrollment_path,:image_url,:image?,:image_tag,:params, :h, :link_to, :number_to_currency, to: :@view
def initialize(view)
@view = view
end
def as_json(options = {})
{
sEcho: params[:sEcho].to_i,
iTotalRecords: Enrollment.count,
iTotalDisplayRecords: enrollments.total_entries,
aaData: data
}
end
private
def data
enrollments.map do |enrollment|
[ image_tag(enrollment.image? ? enrollment.image_url(:thumb) : "/assets/icons/unavl.jpg",:size => "50x50") ,
"<div class='main-name'>" +
link_to(enrollment.first_name + " " + enrollment.sur_name,enrollment) +
" " +
link_to("followup", {:action => "new",
:controller => "events",
:enrollment_id => enrollment.id},{:class => "tools-text"}) +
"</div>",
enrollment.email,
enrollment.mobile_phone,
enrollment.education_level,
enrollment.gender + " - " + enrollment.marital_status,
enrollment.passport_number,
"<div class = 'tools dn'> <ul>" +
["<li>" +
link_to(image_tag("/assets/icons/view.png"),enrollment) +
"</li>", "<li>" +
link_to(image_tag("/assets/icons/edit.png"), edit_enrollment_path(enrollment) ) +
"</li>", "<li>" +
link_to(image_tag("/assets/icons/delete.png"),enrollment,method: :delete, data: { confirm: 'Are you sure?' }) +
"</li>"].join(" ") +
"</ul> </div>"
]
end
end
def enrollments
@enrollments ||= fetch_enrollments
end
def fetch_enrollments
enrollments = Enrollment.order("#{sort_column} #{sort_direction}")
enrollments = enrollments.page(page).per_page(per_page)
if params[:sSearch].present?
enrollments = enrollments.where("first_name like :search or sur_name like :search", search: "%#{params[:sSearch]}%")
end
enrollments
end
def page
params[:iDisplayStart].to_i/per_page + 1
end
def per_page
params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 10
end
def sort_column
columns = %w[first_name ]
columns[params[:iSortCol_1].to_i]
end
def sort_direction
params[:sSortDir_0] == "desc" ? "desc" : "asc"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment