Files
mozo-backend/app/assets/javascripts/user/application.js.erb
T
2012-10-30 15:02:51 +01:00

160 lines
5.3 KiB
Plaintext

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// 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 twitter/bootstrap
//= require twitter/bootstrap/bootstrap-transition
//= require twitter/bootstrap/bootstrap-alert
//= require twitter/bootstrap/bootstrap-modal
//= require twitter/bootstrap/bootstrap-dropdown
//= require twitter/bootstrap/bootstrap-scrollspy
//= require twitter/bootstrap/bootstrap-tab
//= require twitter/bootstrap/bootstrap-tooltip
//= require twitter/bootstrap/bootstrap-popover
//= require twitter/bootstrap/bootstrap-button
//= require twitter/bootstrap/bootstrap-collapse
// require twitter/bootstrap/bootstrap-carousel
//= require twitter/bootstrap/bootstrap-typeahead
//= require twitter/bootstrap/bootstrap-affix
//= require qwaiter
//= 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 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?'
}
},
nl: {
messages: <%= I18n.t('messages', locale: :en).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?'
}
}
}
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 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();
}
$.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';
}
}
});
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(){
if(getUrlVars().message){
var container = $('.alert-success');
container.find('div').text($translations[$locale]['messages'][getUrlVars().message] || ('Message ' + getUrlVars().message + ' not found'));
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')))})
});