add javascript translations, darken background and other confirm
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 37 KiB |
+11
-6
@@ -1,19 +1,24 @@
|
|||||||
root = exports ? this
|
root = exports ? this
|
||||||
root.Qrammer =
|
root.Qwaiter=
|
||||||
alert: (msg) ->
|
alert: (msg) ->
|
||||||
alert(msg)
|
alert(msg)
|
||||||
confirm: (callback, content) ->
|
confirm: (options) ->
|
||||||
content ||= 'Are you sure?'
|
options ||= {}
|
||||||
|
content = options.content || 'Are you sure?'
|
||||||
|
title = options.title || 'Confirm'
|
||||||
wrapper = $('<div class="modal"></div>')
|
wrapper = $('<div class="modal"></div>')
|
||||||
callback_wrapper = ->
|
callback_wrapper = ->
|
||||||
wrapper.modal('hide')
|
wrapper.modal('hide')
|
||||||
callback()
|
options.ok()
|
||||||
|
callback_cancel_wrapper = ->
|
||||||
|
wrapper.modal('hide')
|
||||||
|
options.cancel() if options.cancel
|
||||||
header = $('<div class="modal-header"></div>')
|
header = $('<div class="modal-header"></div>')
|
||||||
.append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>')
|
.append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>')
|
||||||
.append('<h3>Confirm</h3>').appendTo(wrapper)
|
.append('<h3>'+title+'</h3>').appendTo(wrapper)
|
||||||
body = $('<div class="modal-body"></div>').append('<p>'+content+'</p>').appendTo(wrapper)
|
body = $('<div class="modal-body"></div>').append('<p>'+content+'</p>').appendTo(wrapper)
|
||||||
footer = $('<div class="modal-footer"></div>')
|
footer = $('<div class="modal-footer"></div>')
|
||||||
.append($('<a href="#" class="btn">Close</a>').click(-> wrapper.modal('hide')))
|
.append($('<a href="#" class="btn">Close</a>').click(callback_cancel_wrapper))
|
||||||
.append($('<a href="#" class="btn btn-primary">Yes</a>').click(callback_wrapper))
|
.append($('<a href="#" class="btn btn-primary">Yes</a>').click(callback_wrapper))
|
||||||
.appendTo(wrapper)
|
.appendTo(wrapper)
|
||||||
wrapper.modal()
|
wrapper.modal()
|
||||||
@@ -26,6 +26,7 @@
|
|||||||
// require twitter/bootstrap/bootstrap-carousel
|
// require twitter/bootstrap/bootstrap-carousel
|
||||||
//= require twitter/bootstrap/bootstrap-typeahead
|
//= require twitter/bootstrap/bootstrap-typeahead
|
||||||
//= require twitter/bootstrap/bootstrap-affix
|
//= require twitter/bootstrap/bootstrap-affix
|
||||||
|
//= require qwaiter
|
||||||
//= require_directory .
|
//= require_directory .
|
||||||
//= require_self
|
//= require_self
|
||||||
var path_mapping = {
|
var path_mapping = {
|
||||||
@@ -34,6 +35,12 @@ var path_mapping = {
|
|||||||
list_products_for_table: '/user/list_products_for_table',
|
list_products_for_table: '/user/list_products_for_table',
|
||||||
list_products: '/user/list_products'
|
list_products: '/user/list_products'
|
||||||
}
|
}
|
||||||
|
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?'
|
||||||
|
}
|
||||||
|
}
|
||||||
function redirect_to(mapping, variables){
|
function redirect_to(mapping, variables){
|
||||||
variables || (variables = {});
|
variables || (variables = {});
|
||||||
var vars = []
|
var vars = []
|
||||||
@@ -43,8 +50,19 @@ function redirect_to(mapping, variables){
|
|||||||
window.location = path_mapping[mapping] + '?' + vars.join('&')
|
window.location = path_mapping[mapping] + '?' + vars.join('&')
|
||||||
}
|
}
|
||||||
function currency(num) {
|
function currency(num) {
|
||||||
if (isNaN(num) || num === '' || num === null) {
|
return Qwaiter.currency(num);
|
||||||
num = 0.0;
|
}
|
||||||
}
|
String.prototype.capitalize = function() {
|
||||||
return '€ ' + parseFloat(num).toFixed(2);
|
return this.charAt(0).toUpperCase() + this.slice(1);
|
||||||
|
}
|
||||||
|
function t(path){
|
||||||
|
var parts = path.split('.')
|
||||||
|
var accessor = 'translations["' + parts.join('"]["')+ '"]';
|
||||||
|
var result;
|
||||||
|
try{
|
||||||
|
result = eval(accessor);
|
||||||
|
} catch(err){
|
||||||
|
result = parts[parts.length - 1].capitalize();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,10 +185,10 @@ window.Quser=
|
|||||||
$.get('/user/table_info.json?table_id='+table.table_id, (res)->
|
$.get('/user/table_info.json?table_id='+table.table_id, (res)->
|
||||||
if res.current_table_id
|
if res.current_table_id
|
||||||
if res.other_supplier
|
if res.other_supplier
|
||||||
#TODO cannot do something with other supplier when list is active
|
redirect_to 'user_root', {message: 'table_is_from_other_supplier'}
|
||||||
else if res.current_table_id == table.table_id
|
else if res.current_table_id == table.table_id
|
||||||
#nothing has changed, show product list
|
#nothing has changed, show product list
|
||||||
window.location = '/user/list_products'
|
redirect_to 'list_products'
|
||||||
else if res.current_table_id != table.table_id
|
else if res.current_table_id != table.table_id
|
||||||
if res.occupied
|
if res.occupied
|
||||||
redirect_to 'user_root', {message: 'table_is_occupied'}
|
redirect_to 'user_root', {message: 'table_is_occupied'}
|
||||||
@@ -200,11 +200,18 @@ window.Quser=
|
|||||||
redirect_to 'user_root', {message: 'supplier_is_closed'}
|
redirect_to 'user_root', {message: 'supplier_is_closed'}
|
||||||
else
|
else
|
||||||
#TODO Offer to move table
|
#TODO Offer to move table
|
||||||
$.post('/user/move_table', {table_id: table.table_id}, (res2)->
|
Qwaiter.confirm(
|
||||||
if res2.occupied
|
ok: ->
|
||||||
alert('Cannot move to occupied table')
|
$.post('/user/move_table', {table_id: table.table_id}, (res2)->
|
||||||
else
|
if res2.occupied
|
||||||
window.location = '/user/list_products'
|
alert('Cannot move to occupied table')
|
||||||
|
else
|
||||||
|
redirect_to 'list_products', {message: 'moved_to_another_table'}
|
||||||
|
)
|
||||||
|
cancel: ->
|
||||||
|
redirect_to 'list_products'
|
||||||
|
title: t('confirmations.move_to_another_table_title')
|
||||||
|
content: t('confirmations.move_to_another_table')
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
if res.occupied
|
if res.occupied
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ class UserController < ApplicationController
|
|||||||
alias :list :active_list
|
alias :list :active_list
|
||||||
|
|
||||||
def home
|
def home
|
||||||
flash.now[:notice] = t('messages.the_list_has_been_closed', list: List.model_name.human) if params[:list_closed].present?
|
handle_message_params
|
||||||
flash.now[:notice] = t("messages.#{params[:message]}") if params[:message].present? && params[:message] =~ /^\w+$/
|
|
||||||
render layout: 'phone'
|
render layout: 'phone'
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -52,6 +51,7 @@ class UserController < ApplicationController
|
|||||||
@supplier = list.supplier
|
@supplier = list.supplier
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html do
|
format.html do
|
||||||
|
handle_message_params
|
||||||
render layout: 'phone'
|
render layout: 'phone'
|
||||||
end
|
end
|
||||||
format.json do
|
format.json do
|
||||||
@@ -260,4 +260,10 @@ class UserController < ApplicationController
|
|||||||
render json: {occupied: false}
|
render json: {occupied: false}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def handle_message_params
|
||||||
|
flash.now[:notice] = t('messages.the_list_has_been_closed', list: List.model_name.human) if params[:list_closed].present?
|
||||||
|
flash.now[:notice] = t("messages.#{params[:message]}", list: List.model_name.human, supplier: Supplier.model_name.human) if params[:message].present? && params[:message] =~ /^\w+$/
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+3
-1
@@ -36,7 +36,9 @@ class List
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.of_user(user, options = {})
|
def self.of_user(user, options = {})
|
||||||
database.view(association_list_has_and_belongs_to_many_users({startkey: [user.id], endkey: ["#{user.id}\u9999"], include_docs: true, reduce: false}.merge(options)))
|
with_pagination_options(options) do |options|
|
||||||
|
database.view(association_list_has_and_belongs_to_many_users({startkey: [user.id], endkey: ["#{user.id}\u9999"], include_docs: true, reduce: false}.merge(options)))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def close!
|
def close!
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ en:
|
|||||||
table_is_closed: The table you want to sit on is not available for service
|
table_is_closed: The table you want to sit on is not available for service
|
||||||
supplier_is_closed: The owner of this table is currently not handling orders
|
supplier_is_closed: The owner of this table is currently not handling orders
|
||||||
join_request_rejected: Your request to join the table has been rejected
|
join_request_rejected: Your request to join the table has been rejected
|
||||||
|
table_is_from_other_supplier: You cannot move to another table when you have a %{list} open
|
||||||
|
moved_to_another_table: You successfully moved to another table
|
||||||
action:
|
action:
|
||||||
index:
|
index:
|
||||||
label: Listing %{models}
|
label: Listing %{models}
|
||||||
|
|||||||
Reference in New Issue
Block a user