class AppTabPanel < Netzke::Basepack::TabPanel action :sign_out do |c| c.icon = :door_out c.text = "Exit" end action :check_out do |c| c.icon = :door_out c.text = "CHECK OUT" if controller.current_user end action :change_account_info do |c| c.icon = :user_edit c.text = "Change Email/Password" end def configure(c) #all users # (had to use hash for borders to get the title to display properly) @@app_tab_panel_items = [ :bikes_border ] #for users only if not controller.current_user.role?(:admin) @@app_tab_panel_items.concat [{ layout: :fit, wrappedComponent: :user_profile_border, title: "My Profile"}, { layout: :fit, wrappedComponent: :user_transactions_border, title: "My Transactions"} ] end #for admins if can? :manage, User @@app_tab_panel_items.concat [{ layout: :fit, wrappedComponent: :users_and_profiles_border, title: "Users/Profiles"}] end if can? :manage, Transaction @@app_tab_panel_items.concat [{ layout: :fit, wrappedComponent: :transactions_border, title: "Users/Transactions"}] end if can? :manage, Role @@app_tab_panel_items.concat [{ layout: :fit, wrappedComponent: :user_role_joins, title: "User Roles"}, ] end if can? :manage, ::ActsAsLoggable::Log.all @@app_tab_panel_items.concat [:check_ins, :logs] end @@app_tab_panel_items.each do |item| if item.kind_of?(Symbol) self.class.component item elsif item.kind_of?(Hash) self.class.component item[:wrappedComponent] end end c.prevent_header = true c.tbar = [:sign_out, :check_out, :change_account_info] c.items = @@app_tab_panel_items super end js_configure do |c| #gets js from app_tab_panel/javascripts/sign_out.js c.mixin :sign_out end end