Sha256: 55e8d8facf2cdf8c9937dd0490f8cb23f98085fcb6a94be2c2cfaf12a66ac5cb
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 KB
Contents
module Hatchy class UsersDatatable < Hatchy::ApplicationDatatable delegate :params, :h, :link_to, :check_box, :number_to_currency, to: :@view def initialize(view) @view = view end def as_json(options = {}) { draw: params[:draw].to_i, recordsTotal: Hatchy::User.count, recordsFiltered: users.count, data: data } end private def data users.map do |user| [ user.id, user.first_name, user.last_name, check_box("admin", user.admin, checked: user.admin, disabled: true), link_to(user.email, user), user.phone, user.mobile, ( content_tag :ul, class:'inline list-inline' do content_tag :li, title:'info', rel:'tooltip', class:'pull-right' do link_to admin_user_path(user) do content_tag :i, class:'fa fa-lg fa-info-circle' do content_tag :span, style:'display:none;' do "info" end end end end end ) ] end end def users @users ||= fetch_users end def fetch_users users = Hatchy::User.order("#{sort_column} #{sort_direction}") users = users.page(page).per(per_page) if params[:search][:value].present? && !params[:search][:value].blank? users = users.where("email like :search", search: "%#{params[:search][:value]}%") end users end def page params[:displayStart].to_i/per_page + 1 end def per_page params[:pageLength].to_i > 0 ? params[:pageLength].to_i : 10 end def sort_column columns = %w[id first_name last_name admin email phone mobile] hash = params[:order] columns[hash.flatten[1]["column"].to_i] end def sort_direction hash = params[:order] hash.flatten[1]["dir"] == "desc" ? "desc" : "asc" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hatchy-0.0.8.pre | app/datatables/hatchy/users_datatable.rb |
hatchy-0.0.7.pre | app/datatables/hatchy/users_datatable.rb |