using authentication for app
This commit is contained in:
@@ -35,32 +35,69 @@ var path_mapping = {
|
||||
list_products_for_table: '/user/list_products_for_table',
|
||||
list_products: '/user/list_products',
|
||||
active_list: '/user/active_list',
|
||||
history_list: '/user/history_list'
|
||||
history_list: '/user/history_list',
|
||||
obtain_user_token: '/user/obtain_token'
|
||||
}
|
||||
var translations = {
|
||||
confirmations: {
|
||||
move_to_another_table_title: 'Move to another table?',
|
||||
move_to_another_table: 'Are you sure you want to move to another table?'
|
||||
en: {
|
||||
confirmations: {
|
||||
},
|
||||
list_needs_help: {
|
||||
help_is_on_its_way: 'Help is already on its way',
|
||||
title: 'Request a waiter',
|
||||
content: 'Request a waiter to your table'
|
||||
},
|
||||
list_needs_payment: {
|
||||
payment_already_requested: 'You already asked for the check',
|
||||
title: 'Ask for the check',
|
||||
content: 'Do you want to pay?'
|
||||
},
|
||||
selected_products: {
|
||||
order: 'Order',
|
||||
clear: 'Clear'
|
||||
},
|
||||
join_request: {
|
||||
title: 'Join request',
|
||||
body: '%{email} wants to join the table',
|
||||
reject: 'Reject',
|
||||
approve: 'Approve'
|
||||
},
|
||||
move_table: {
|
||||
cannot_move_to_occupied_table: 'You cannot move to an occupied table',
|
||||
moved_to_another_table: 'The table is changed.',
|
||||
confirmation_title: 'Move to another table?',
|
||||
confirmation_body: 'Are you sure you want to move to another table?'
|
||||
}
|
||||
},
|
||||
list_needs_help: {
|
||||
help_is_on_its_way: 'Help is already on its way',
|
||||
title: 'Request a waiter',
|
||||
content: 'Request a waiter to your table'
|
||||
},
|
||||
list_needs_payment: {
|
||||
payment_already_requested: 'You already asked for the check',
|
||||
title: 'Ask for the check',
|
||||
content: 'Do you want to pay?'
|
||||
},
|
||||
selected_products: {
|
||||
order: 'Order',
|
||||
clear: 'Clear'
|
||||
},
|
||||
join_request: {
|
||||
title: 'Join request',
|
||||
body: '%{email} wants to join the table',
|
||||
reject: 'Reject',
|
||||
approve: 'Approve'
|
||||
nl: {
|
||||
confirmations: {
|
||||
},
|
||||
list_needs_help: {
|
||||
help_is_on_its_way: 'Er wordt al iemand naar je tafel gestuurd',
|
||||
title: 'Ik heb een vraag',
|
||||
content: 'Wil je een vraag stellen?'
|
||||
},
|
||||
list_needs_payment: {
|
||||
payment_already_requested: 'De rekening is reeds gevraagd',
|
||||
title: 'Vraag om de rekening',
|
||||
content: 'Wil je betalen?'
|
||||
},
|
||||
selected_products: {
|
||||
order: 'Bestellen',
|
||||
clear: 'Leegmaken'
|
||||
},
|
||||
join_request: {
|
||||
title: 'Lijst deling',
|
||||
body: '%{email} wil ook op jouw lijst bestellen',
|
||||
reject: 'Afwijzen',
|
||||
approve: 'Toestaan'
|
||||
},
|
||||
move_table: {
|
||||
cannot_move_to_occupied_table: 'Je kan niet verhuizen naar een tafel die reeds gebruikt wordt.',
|
||||
moved_to_another_table: 'De tafel is gewijzigd.',
|
||||
confirmation_title: 'Naar een andere tafel verhuizen?',
|
||||
confirmation_body: 'Ben je aan een andere tafel gaan zitten?'
|
||||
}
|
||||
}
|
||||
}
|
||||
function redirect_to(mapping, variables){
|
||||
@@ -90,3 +127,10 @@ function t(path, vars){
|
||||
$.each(vars, function(v, value){ result = result.replace('%{'+v+'}', value)});
|
||||
return result;
|
||||
}
|
||||
$.ajaxSetup({
|
||||
error: function(xhr, ajaxOptions, error){
|
||||
if(xhr.status == 401 || xhr.status == 0){
|
||||
window.location = data_host + '/user/obtain_token.html';
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -304,19 +304,19 @@ window.Quser=
|
||||
else if res.supplier_closed
|
||||
redirect_to 'user_root', {message: 'supplier_is_closed'}
|
||||
else
|
||||
#TODO Offer to move table
|
||||
## Offer to move table
|
||||
Qwaiter.confirm(
|
||||
ok: ->
|
||||
$.post(data_host + '/user/move_table', $.extend({table_id: table.table_id}, authentication_object), (res2)->
|
||||
if res2.occupied
|
||||
alert('Cannot move to occupied table')
|
||||
redirect_to 'user_root', {message: 'move_table.cannot_move_to_occupied_tabe'}
|
||||
else
|
||||
redirect_to 'list_products', {message: 'moved_to_another_table'}
|
||||
redirect_to 'list_products', {message: 'move_table.moved_to_another_table'}
|
||||
)
|
||||
cancel: ->
|
||||
redirect_to 'list_products'
|
||||
title: t('confirmations.move_to_another_table_title')
|
||||
content: t('confirmations.move_to_another_table')
|
||||
title: t('move_table.confirmation_title')
|
||||
content: t('move_table.confirmation_body')
|
||||
)
|
||||
else
|
||||
if res.occupied
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class ApplicationController < ActionController::Base
|
||||
before_filter :set_locale
|
||||
layout :layout_by_resource
|
||||
|
||||
|
||||
@@ -6,6 +7,10 @@ class ApplicationController < ActionController::Base
|
||||
|
||||
private
|
||||
|
||||
def set_locale
|
||||
I18n.locale = :nl
|
||||
end
|
||||
|
||||
def layout_by_resource
|
||||
if devise_controller?
|
||||
"phone"
|
||||
|
||||
@@ -2,6 +2,15 @@ class UserController < ApplicationController
|
||||
before_filter :allow_mobile, :authenticate_user!
|
||||
layout 'phone'
|
||||
|
||||
def authenticate_user_wrapper!
|
||||
authenticate_user! unless request.format.html?
|
||||
authenticate_user! if params[:action] == 'obtain_token'
|
||||
end
|
||||
|
||||
def obtain_token
|
||||
|
||||
end
|
||||
|
||||
alias :list :active_list
|
||||
|
||||
def allow_mobile
|
||||
@@ -153,6 +162,7 @@ class UserController < ApplicationController
|
||||
redirect_to(root_path, alert: t('messages.there_is_no_list_active')) and return unless list.present?
|
||||
end
|
||||
format.json do
|
||||
render json: js_alert(t('messages.the_list_has_been_closed')) and return unless list.present?
|
||||
render json: list.with_orders_and_join_requests_as_json.merge(supplier_name: list.supplier.name)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,10 +11,10 @@ html lang="en"
|
||||
/[if lt IE 9]
|
||||
= javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
|
||||
= stylesheet_link_tag "application", :media => "all"
|
||||
link href="images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"
|
||||
link href="images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"
|
||||
link href="images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"
|
||||
link href="images/apple-touch-icon.png" rel="apple-touch-icon-precomposed"
|
||||
link href="/images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"
|
||||
link href="/images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"
|
||||
link href="/images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"
|
||||
link href="/images/apple-touch-icon.png" rel="apple-touch-icon-precomposed"
|
||||
link href="/favicon.ico" rel="shortcut icon"
|
||||
|
||||
body
|
||||
|
||||
@@ -18,6 +18,9 @@ html lang="en"
|
||||
link href="/favicon.ico" rel="shortcut icon"
|
||||
javascript:
|
||||
var data_host = 'http://data.qwaiter.com';
|
||||
//var data_host = 'http://localhost:3000';
|
||||
//var data_host = 'http://192.168.1.240:3000';
|
||||
var $locale = '#{I18n.locale}';
|
||||
// Dummy holder when Qmobile object is not supplied by the mobile phone
|
||||
var QMobile, Qwaiter, Quser;
|
||||
QMobile || (QMobile = {
|
||||
@@ -30,9 +33,11 @@ html lang="en"
|
||||
this.authentication_string_storage = 'auth_token='+token;
|
||||
this.authentication_object_storage = '{"auth_token": "'+token+'"}'
|
||||
},
|
||||
root_url: function(){return ''}
|
||||
root_url: function(){return 'file:///Users/bterkuile/Documents/workspace/Qwaiter/assets'},
|
||||
root_url: function(){return ''},
|
||||
goHome: function(){ window.location = QMobile.root_url() + path_mapping['user_root'] + '.html'}
|
||||
});
|
||||
QMobile.setAuthToken('i5brDZ1HS1okoEq3pMyh');
|
||||
//QMobile.setAuthToken('i5brDZ1HS1okoEq3pMyh');
|
||||
|
||||
body class=action_name
|
||||
.navbar.navbar-fixed-top
|
||||
|
||||
@@ -12,10 +12,10 @@ html lang="en"
|
||||
= javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
|
||||
= stylesheet_link_tag "supplier/application", :media => "all"
|
||||
= stylesheet_link_tag "supplier/application", :media => "all"
|
||||
link href="images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"
|
||||
link href="images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"
|
||||
link href="images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"
|
||||
link href="images/apple-touch-icon.png" rel="apple-touch-icon-precomposed"
|
||||
link href="/images/apple-touch-icon-144x144.png" rel="apple-touch-icon-precomposed" sizes="144x144"
|
||||
link href="/images/apple-touch-icon-114x114.png" rel="apple-touch-icon-precomposed" sizes="114x114"
|
||||
link href="/images/apple-touch-icon-72x72.png" rel="apple-touch-icon-precomposed" sizes="72x72"
|
||||
link href="/images/apple-touch-icon.png" rel="apple-touch-icon-precomposed"
|
||||
link href="/favicon.ico" rel="shortcut icon"
|
||||
|
||||
body
|
||||
|
||||
@@ -12,6 +12,10 @@ dl.dl-horizontal
|
||||
tr
|
||||
td colspan=2 = slider_image
|
||||
tfoot
|
||||
.form-actions
|
||||
= link_to t("helpers.links.back"), suppliers_lists_path(date: @list.created_at.strftime('%Y-%m-%d')), class: 'btn'
|
||||
'
|
||||
= link_to t('helpers.links.edit'), [:edit, :suppliers, @list], class: 'btn btn-info'
|
||||
- content_for :footer do
|
||||
javascript:
|
||||
jQuery(function(){
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
- content_for :footer do
|
||||
javascript:
|
||||
QMobile.setAuthToken('#{current_user.authentication_token}');
|
||||
QMobile.goHome();
|
||||
Reference in New Issue
Block a user