From ee6e5c241af291a85bcb5cc7f41d3c81bcb8bba5 Mon Sep 17 00:00:00 2001 From: Andrew Isherwood Date: Tue, 13 Dec 2016 16:15:36 +0000 Subject: [PATCH] Bug 11897: Add JS to provide rota stage manipulation * koha-tmpl/intranet-tmpl/prog/js/pages/stockrotation.js: new file --- .../intranet-tmpl/prog/js/pages/stockrotation.js | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/js/pages/stockrotation.js diff --git a/koha-tmpl/intranet-tmpl/prog/js/pages/stockrotation.js b/koha-tmpl/intranet-tmpl/prog/js/pages/stockrotation.js new file mode 100644 index 0000000000..276394518b --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/js/pages/stockrotation.js @@ -0,0 +1,65 @@ +function init() { + $('#ajax_status').hide(); + $('#ajax_saving_msg').hide(); + $('#ajax_saving_icon').hide(); + $('#ajax_success_icon').hide(); + $('#ajax_failed_icon').hide(); + $('#ajax_failed_msg').hide(); +} + +$(document).ready(function() { + var apiEndpoint = '/api/v1/rotas/'; + init(); + $('#sortable_stages').sortable({ + handle: '.drag_handle', + placeholder: 'drag_placeholder', + update: function(event, ui) { + init(); + $('#sortable_stages').sortable('disable'); + var rotaId = document.getElementById('sortable_stages').dataset.rotaId; + $('#ajax_saving_msg').text( + document.getElementById('ajax_status').dataset.savingMsg + ); + $('#ajax_saving_icon').show(); + $('#ajax_saving_msg').show(); + $('#ajax_status').fadeIn(); + var stageId = ui.item[0].id.replace(/^stage_/, ''); + var newIndex = ui.item.index(); + var newPosition = newIndex + 1; + $.ajax({ + method: 'PUT', + url: apiEndpoint + rotaId + '/stages/' + stageId + '/position', + processData: false, + contentType: 'application/json', + data: newPosition + }) + .done(function(data) { + $('#ajax_success_msg').text( + document.getElementById('ajax_status').dataset.successMsg + ); + $('#ajax_saving_icon').hide(); + $('#ajax_success_icon').show(); + $('#ajax_success_msg').show(); + setTimeout( + function() { + $('#ajax_status').fadeOut(); + }, + 700 + ); + }) + .fail(function(jqXHR, status, error) { + $('#ajax_failed_msg').text( + document.getElementById('ajax_status').dataset.failedMsg + + error + ); + $('#ajax_saving_icon').hide(); + $('#ajax_failed_icon').show(); + $('#ajax_failed_msg').show(); + $('#sortable_stages').sortable('cancel'); + }) + .always(function() { + $('#sortable_stages').sortable('enable'); + }) + } + }); +}); -- 2.11.1