diff --git a/app/components/app_tab_panel.rb b/app/components/app_tab_panel.rb index d888c04..af1262a 100644 --- a/app/components/app_tab_panel.rb +++ b/app/components/app_tab_panel.rb @@ -44,7 +44,8 @@ class AppTabPanel < Netzke::Basepack::TabPanel :logs, { layout: :fit, wrappedComponent: :user_role_joins, - title: "User Roles"} + title: "User Roles"}, + :check_ins ] end diff --git a/app/components/check_ins.rb b/app/components/check_ins.rb new file mode 100644 index 0000000..22b8653 --- /dev/null +++ b/app/components/check_ins.rb @@ -0,0 +1,23 @@ +class CheckIns < Netzke::Basepack::Grid + + def configure(c) + super + c.header = false + c.model = "ActsAsLoggable::Log" + c.scope = lambda { |rel| rel.where(:log_action_type => ::ActsAsLoggable::UserAction). + where(:loggable_type => "User"). + where(:log_action_id => ::ActsAsLoggable::UserAction.find_by_action("CHECKIN")). + where("start_date >= ?", Time.zone.now.beginning_of_day); + } + c.columns = [ + { :name => :name, :getter => lambda{ |rec| + user = User.find_by_id(rec.loggable_id) + user.nil? ? "" : "#{user.first_name} #{user.last_name}" + } + }, + { :name => "Status", :getter => lambda{ |rec| rec.start_date == rec.end_date ? "Checked In" : "Checked Out" } }, + :start_date, + :end_date, + ] + end +end