Browse Source

Finished Checkin/out feature for now

-Checkin/out api methods can be used while signed in
-Added checkout button in Netzke App, which also signs out in addition to checking out.
eperez-timeinput
Jason Denney 12 years ago
parent
commit
a00c1ed925
  1. 8
      app/components/app_tab_panel.rb
  2. 12
      app/components/app_tab_panel/javascripts/sign_out.js
  3. 19
      app/controllers/api/v1/base_controller.rb
  4. 2
      app/controllers/api/v1/logs_controller.rb

8
app/components/app_tab_panel.rb

@ -6,6 +6,11 @@ class AppTabPanel < Netzke::Basepack::TabPanel
c.text = "Sign out #{controller.current_user.email}" if controller.current_user
end
action :check_out do |c|
c.icon = :door_out
c.text = "CHECK OUT" if controller.current_user
end
def configure(c)
#all users
@ -49,7 +54,7 @@ class AppTabPanel < Netzke::Basepack::TabPanel
end
c.prevent_header = true
c.tbar = [:sign_out]
c.tbar = [:sign_out, :check_out]
c.items = @@app_tab_panel_items
super
end
@ -58,6 +63,5 @@ class AppTabPanel < Netzke::Basepack::TabPanel
#gets js from app_tab_panel/javascripts/sign_out.js
c.mixin :sign_out
end
end

12
app/components/app_tab_panel/javascripts/sign_out.js

@ -5,5 +5,17 @@
url: '/users/sign_out',
method: 'DELETE'
});
},
onCheckOut: function(){
Ext.Ajax.request({
url: '/api/v1/checkout',
method: 'POST',
success: function(response, opts) {
Ext.Ajax.request({
url: '/users/sign_out',
method: 'DELETE'
});
}
});
}
}

19
app/controllers/api/v1/base_controller.rb

@ -5,19 +5,18 @@ class Api::V1::BaseController < ActionController::Base
private
def authenticate_user
if params[:token]
@current_user = User.find_by_authentication_token(params[:token])
else
if params[:username]
user = User.find_for_database_authentication( :email => params[:username] )
@current_user = user if user && user.valid_password?( params[:password] )
end
unless @current_user
render :json => {:error => "Username/Password/Token invalid" }, :status => 403
end
end
def current_user
@current_user
if @current_user.nil?
msg = "Username/Password/Token invalid"
render :json => {:error => msg }, :status => 403 and return
end
else
authenticate_user!
@current_user = current_user
end
end
end

2
app/controllers/api/v1/logs_controller.rb

@ -1,6 +1,7 @@
class Api::V1::LogsController < Api::V1::BaseController
def checkin
#must use @current_user since user may not have signed in
if @current_user.checked_in?
render :json => { "error" => "You are already checked in."}, :status => 404 and return
else
@ -10,6 +11,7 @@ class Api::V1::LogsController < Api::V1::BaseController
end
def checkout
#must use @current_user since user may not have signed in
if !@current_user.checked_in?
render :json => { "error" => "You were not even checked in."}, :status => 404 and return
else

Loading…
Cancel
Save