forked from DGNum/gestioCOF
Annulations sur la page Historique
- Possibilité une (ou plusieurs) opération(s). L'affichage de l'annulation n'est pas encore en direct
This commit is contained in:
parent
dc52e9570a
commit
9b548c9e45
|
@ -3,9 +3,11 @@
|
||||||
{% load l10n %}
|
{% load l10n %}
|
||||||
|
|
||||||
{% block extra_head %}
|
{% block extra_head %}
|
||||||
|
<link rel="stylesheet" type="text/css" href="{% static 'kfet/css/jquery-ui.min.css' %}">
|
||||||
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap-datetimepicker.min.css' %}">
|
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap-datetimepicker.min.css' %}">
|
||||||
<link rel="stylesheet" type="text/css" href="{% static 'kfet/css/multiple-select.css' %}">
|
<link rel="stylesheet" type="text/css" href="{% static 'kfet/css/multiple-select.css' %}">
|
||||||
<script type="text/javascript" src="{% static 'kfet/js/js.cookie.js' %}"></script>
|
<script type="text/javascript" src="{% static 'kfet/js/js.cookie.js' %}"></script>
|
||||||
|
<script type="text/javascript" src="{% static 'kfet/js/jquery-ui.min.js' %}"></script>
|
||||||
<script type="text/javascript" src="{% static 'kfet/js/jquery-confirm.js' %}"></script>
|
<script type="text/javascript" src="{% static 'kfet/js/jquery-confirm.js' %}"></script>
|
||||||
<script type="text/javascript" src="{% static 'moment.js' %}"></script>
|
<script type="text/javascript" src="{% static 'moment.js' %}"></script>
|
||||||
<script type="text/javascript" src="{% static 'moment-fr.js' %}"></script>
|
<script type="text/javascript" src="{% static 'moment-fr.js' %}"></script>
|
||||||
|
@ -133,6 +135,120 @@ $(document).ready(function() {
|
||||||
getHistory();
|
getHistory();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
khistory.$container.selectable({
|
||||||
|
filter: 'div.opegroup, div.ope',
|
||||||
|
selected: function(e, ui) {
|
||||||
|
$(ui.selected).each(function() {
|
||||||
|
if ($(this).hasClass('opegroup')) {
|
||||||
|
var opegroup = $(this).data('opegroup');
|
||||||
|
$(this).siblings('.ope').filter(function() {
|
||||||
|
return $(this).data('opegroup') == opegroup
|
||||||
|
}).addClass('ui-selected');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on('keydown', function (e) {
|
||||||
|
if (e.keyCode == 46) {
|
||||||
|
// DEL (Suppr)
|
||||||
|
var opes_to_cancel = [];
|
||||||
|
khistory.$container.find('.ope.ui-selected').each(function () {
|
||||||
|
opes_to_cancel.push($(this).data('ope'));
|
||||||
|
});
|
||||||
|
if (opes_to_cancel.length > 0)
|
||||||
|
confirmCancel(opes_to_cancel);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function confirmCancel(opes_to_cancel) {
|
||||||
|
var nb = opes_to_cancel.length;
|
||||||
|
var content = nb+" opérations vont être annulées";
|
||||||
|
$.confirm({
|
||||||
|
title: 'Confirmation',
|
||||||
|
content: content,
|
||||||
|
backgroundDismiss: true,
|
||||||
|
animation: 'top',
|
||||||
|
closeAnimation: 'bottom',
|
||||||
|
keyboardEnabled: true,
|
||||||
|
confirm: function() {
|
||||||
|
cancelOperations(opes_to_cancel);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function requestAuth(data, callback) {
|
||||||
|
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();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getErrorsHtml(data) {
|
||||||
|
var content = '';
|
||||||
|
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>';
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cancelOperations(opes_array, password = '') {
|
||||||
|
var data = { 'operations' : opes_array }
|
||||||
|
$.ajax({
|
||||||
|
dataType: "json",
|
||||||
|
url : "{% url 'kfet.kpsul.cancel_operations' %}",
|
||||||
|
method : "POST",
|
||||||
|
data : data,
|
||||||
|
beforeSend: function ($xhr) {
|
||||||
|
$xhr.setRequestHeader("X-CSRFToken", csrftoken);
|
||||||
|
if (password != '')
|
||||||
|
$xhr.setRequestHeader("KFetPassword", password);
|
||||||
|
},
|
||||||
|
|
||||||
|
})
|
||||||
|
.done(function(data) {
|
||||||
|
khistory.$container.find('.ui-selected').removeClass('ui-selected');
|
||||||
|
})
|
||||||
|
.fail(function($xhr) {
|
||||||
|
var data = $xhr.responseJSON;
|
||||||
|
switch ($xhr.status) {
|
||||||
|
case 403:
|
||||||
|
requestAuth(data, function(password) {
|
||||||
|
cancelOperations(opes_array, password);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 400:
|
||||||
|
displayErrors(getErrorsHtml(data));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
getHistory();
|
getHistory();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1065,11 +1065,12 @@ $(document).ready(function() {
|
||||||
filter: 'div.opegroup, div.ope',
|
filter: 'div.opegroup, div.ope',
|
||||||
selected: function(e, ui) {
|
selected: function(e, ui) {
|
||||||
$(ui.selected).each(function() {
|
$(ui.selected).each(function() {
|
||||||
if ($(this).hasClass('opegroup'))
|
if ($(this).hasClass('opegroup')) {
|
||||||
var opegroup = $(this).data('opegroup');
|
var opegroup = $(this).data('opegroup');
|
||||||
$(this).siblings('.ope').filter(function() {
|
$(this).siblings('.ope').filter(function() {
|
||||||
return $(this).data('opegroup') == opegroup
|
return $(this).data('opegroup') == opegroup
|
||||||
}).addClass('ui-selected');
|
}).addClass('ui-selected');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue