199 lines
6.3 KiB
Plaintext
199 lines
6.3 KiB
Plaintext
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
// listed below.
|
|
// a
|
|
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
|
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
|
//
|
|
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
// the compiled file.
|
|
//
|
|
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
|
// GO AFTER THE REQUIRES BELOW.
|
|
//
|
|
//= require jquery
|
|
//= require jquery_ujs
|
|
// require bootstrap-transition
|
|
// require bootstrap-affix
|
|
// require bootstrap-alert
|
|
// require bootstrap-button
|
|
// require bootstrap-carousel
|
|
// require bootstrap-collapse
|
|
// require bootstrap-dropdown
|
|
// require bootstrap-modal
|
|
// require bootstrap-scrollspy
|
|
// require bootstrap-tab
|
|
// require bootstrap-tooltip
|
|
// require bootstrap-popover
|
|
// require bootstrap-typeahead
|
|
//= require bootstrap
|
|
//= require qwaiter
|
|
//= require supplier/order
|
|
//= require mustache
|
|
//= require faye
|
|
//= require_directory .
|
|
//= require_self
|
|
var path_mapping = {
|
|
user_root: '/user/home',
|
|
join_occupied_table: '/user/join_occupied_table',
|
|
list_products_for_table: '/user/list_products_for_table',
|
|
list_products: '/user/list_products',
|
|
active_list: '/user/active_list',
|
|
history_list: '/user/history_list',
|
|
obtain_user_token: '/user/obtain_token'
|
|
}
|
|
var $translations = {
|
|
en: {
|
|
messages: <%= I18n.t('messages', locale: :en).to_json %>,
|
|
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 bill',
|
|
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?'
|
|
},
|
|
models: <%= I18n.t('activemodel.models', locale: :en).to_json %>,
|
|
attributes: <%= I18n.t('activemodel.attributes', locale: :en).to_json %>,
|
|
<%= I18n.t('user', locale: :en).to_json[1..-2] %>
|
|
},
|
|
nl: {
|
|
messages: <%= I18n.t('messages', locale: :nl).to_json %>,
|
|
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?'
|
|
},
|
|
models: <%= I18n.t('activemodel.models', locale: :nl).to_json %>,
|
|
attributes: <%= I18n.t('activemodel.attributes', locale: :nl).to_json %>,
|
|
<%= I18n.t('user', locale: :nl).to_json[1..-2] %>
|
|
}
|
|
}
|
|
function redirect_to(mapping, variables){
|
|
variables || (variables = {});
|
|
var vars = []
|
|
for(var name in variables){
|
|
vars.push(name + '=' +variables[name])
|
|
}
|
|
window.location = QMobile.root_url() + path_mapping[mapping] + '.html?' + vars.join('&')
|
|
}
|
|
function direct_to_site(mapping, variables){
|
|
variables || (variables = {});
|
|
var vars = []
|
|
for(var name in variables){
|
|
vars.push(name + '=' +variables[name])
|
|
}
|
|
window.location = data_host + path_mapping[mapping] + '.html?' + vars.join('&')
|
|
}
|
|
function currency(num) {
|
|
return Qwaiter.currency(num);
|
|
}
|
|
String.prototype.capitalize = function() {
|
|
return this.charAt(0).toUpperCase() + this.slice(1);
|
|
}
|
|
function t(path, vars){
|
|
vars || (vars = {});
|
|
var parts = path.split('.');
|
|
var accessor = '$translations.'+$locale+'["' + parts.join('"]["')+ '"]';
|
|
var result;
|
|
try{
|
|
result = eval(accessor);
|
|
} catch(err){
|
|
result = parts[parts.length - 1].capitalize();
|
|
}
|
|
if(!result) return parts[parts.length - 1].capitalize();
|
|
$.each(vars, function(v, value){ result = result.replace('%{'+v+'}', value)});
|
|
return result;
|
|
}
|
|
$.ajaxSetup({
|
|
error: function(xhr, ajaxOptions, error, another){
|
|
if(xhr.status == 401){
|
|
direct_to_site('obtain_user_token');
|
|
}else if(xhr.status == 0){
|
|
QMobile.connection_problem();
|
|
}
|
|
}
|
|
});
|
|
function getUrlVars() {
|
|
if($url_vars) return $url_vars;
|
|
$url_vars = {};
|
|
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
|
|
$url_vars[key] = value;
|
|
});
|
|
return $url_vars;
|
|
}
|
|
$(function(){
|
|
$locale = QMobile.locale();
|
|
if(getUrlVars().message){
|
|
var container = $('.alert-success');
|
|
// Prepend messages. if there is no path/period specified
|
|
var message = t((getUrlVars().message.indexOf('.') > -1 ? '' : 'messages.' ) + getUrlVars().message )
|
|
container.find('div').text(message);
|
|
container.show();
|
|
}
|
|
if(getUrlVars().list_closed){
|
|
var container = $('.alert-error');
|
|
container.find('div').text($translations[$locale]['messages']['the_list_has_been_closed']);
|
|
container.show();
|
|
}
|
|
$('[data-t]').each(function(){$(this).text(t($(this).attr('data-t')))})
|
|
setTranslations();
|
|
});
|
|
function setLocale(locale){
|
|
QMobile.setLocale(locale);
|
|
$locale = locale;
|
|
setTranslations();
|
|
}
|
|
function Qupdate(selector){
|
|
setTranslations(selector);
|
|
}
|
|
function setTranslations(selector){
|
|
if(selector){
|
|
$(selector).find('[data-t]').each(function(){$(this).text(t($(this).attr('data-t')))})
|
|
}else{
|
|
$('[data-t]').each(function(){$(this).text(t($(this).attr('data-t')))})
|
|
}
|
|
}
|