class AppTabPanel < Netzke::Basepack::TabPanel action :sign_out do |c| c.icon = :door_out c.text = "Sign out #{controller.current_user.email}" if controller.current_user 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, {layout: :fit, wrappedComponent: :brands_and_models_border, title: "Brands/Models"}] #for users if controller.current_user.user? # (had to use hash for borders to get the title to display properly) @@app_tab_panel_items.concat [{ layout: :fit, wrappedComponent: :user_profile_border, title: "Profile"}] end #for admins if controller.current_user.admin? # (had to use hash for borders to get the title to display properly) @@app_tab_panel_items.concat [{ layout: :fit, wrappedComponent: :users_and_profiles_border, title: "Users/Profiles"}, :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.active_tab = 0 c.prevent_header = true c.tbar = [:sign_out] c.items = @@app_tab_panel_items super end js_configure do |c| c.on_sign_out = <<-JS //this will give a 401 error, but made 401 exceptions forward to 'users/sign_in' function(){ Ext.Ajax.request({ url: '/users/sign_out', method: 'DELETE' }); } JS end end