forked from DGNum/gestioCOF
108 lines
3.7 KiB
JavaScript
108 lines
3.7 KiB
JavaScript
$(document).ready(function() {
|
|
$(window).scroll(function() {
|
|
if ($(window).width() >= 768 && $(this).scrollTop() > 72.6) {
|
|
$('.col-content-left').css({'position':'fixed', 'top':'50px'});
|
|
$('.col-content-right').addClass('col-sm-offset-4 col-md-offset-3');
|
|
} else {
|
|
$('.col-content-left').css({'position':'relative', 'top':'0'});
|
|
$('.col-content-right').removeClass('col-sm-offset-4 col-md-offset-3');
|
|
}
|
|
});
|
|
|
|
if (typeof Cookies !== 'undefined') {
|
|
// Retrieving csrf token
|
|
csrftoken = Cookies.get('csrftoken');
|
|
// Appending csrf token to ajax post requests
|
|
function csrfSafeMethod(method) {
|
|
// these HTTP methods do not require CSRF protection
|
|
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
|
|
}
|
|
$.ajaxSetup({
|
|
beforeSend: function(xhr, settings) {
|
|
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
|
|
xhr.setRequestHeader("X-CSRFToken", csrftoken);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
function dateUTCToParis(date) {
|
|
return moment.tz(date, 'UTC').tz('Europe/Paris');
|
|
}
|
|
|
|
function amountDisplay(amount, is_cof=false, tri='') {
|
|
if (tri == 'LIQ')
|
|
return (- amount).toFixed(2) +'€';
|
|
return amountToUKF(amount, is_cof);
|
|
}
|
|
|
|
function amountToUKF(amount, is_cof=false) {
|
|
var coef_cof = is_cof ? 1 + settings['subvention_cof'] / 100 : 1;
|
|
return Math.round(amount * coef_cof * 10);
|
|
}
|
|
|
|
function isValidTrigramme(trigramme) {
|
|
var pattern = /^[^a-z]{3}$/;
|
|
return trigramme.match(pattern);
|
|
}
|
|
|
|
function getErrorsHtml(data) {
|
|
var content = '';
|
|
if ('operation_group' in data['errors']) {
|
|
content += 'Général';
|
|
content += '<ul>';
|
|
if (data['errors']['operation_group'].indexOf('on_acc') != -1)
|
|
content += '<li>Pas de compte sélectionné</li>';
|
|
if (data['errors']['operation_group'].indexOf('checkout') != -1)
|
|
content += '<li>Pas de caisse sélectionnée</li>';
|
|
content += '</ul>';
|
|
}
|
|
if ('missing_perms' in data['errors']) {
|
|
content += 'Permissions manquantes';
|
|
content += '<ul>';
|
|
for (var i=0; i<data['errors']['missing_perms'].length; i++)
|
|
content += '<li>'+data['errors']['missing_perms'][i]+'</li>';
|
|
content += '</ul>';
|
|
}
|
|
if ('negative' in data['errors'])
|
|
content += '<a class="btn btn-primary" href="/k-fet/accounts/'+account_data['trigramme']+'/edit" target="_blank">Autorisation de négatif requise</a>';
|
|
if ('addcost' in data['errors']) {
|
|
content += '<ul>';
|
|
if (data['errors']['addcost'].indexOf('__all__') != -1)
|
|
content += '<li>Compte invalide</li>';
|
|
if (data['errors']['addcost'].indexOf('amount') != -1)
|
|
content += '<li>Montant invalide</li>';
|
|
content += '</ul>';
|
|
}
|
|
return content;
|
|
}
|
|
|
|
function requestAuth(data, callback, focus_next = null) {
|
|
var content = getErrorsHtml(data);
|
|
content += '<input type="password" name="password" autofocus>',
|
|
$.confirm({
|
|
title: 'Authentification requise',
|
|
content: content,
|
|
backgroundDismiss: true,
|
|
animation:'top',
|
|
closeAnimation:'bottom',
|
|
keyboardEnabled: true,
|
|
confirm: function() {
|
|
var password = this.$content.find('input').val();
|
|
callback(password);
|
|
},
|
|
onOpen: function() {
|
|
var that = this;
|
|
this.$content.find('input').on('keypress', function(e) {
|
|
if (e.keyCode == 13)
|
|
that.$confirmButton.click();
|
|
});
|
|
},
|
|
onClose: function() {
|
|
if (focus_next)
|
|
this._lastFocused = focus_next;
|
|
}
|
|
});
|
|
}
|
|
|