'use strict'; // vim: set ts=2 sw=2 et tw=80: var acForm = $('#edit-arrowcount-form'), input = acForm.find('#id_count'); function arrowCountUpdateAjax() { $.ajax({ url: acForm.attr('data-update-ajax'), data: acForm.serialize(), method: 'POST', success: function(e) { if(!e.success) { M.toast({html: gettext('Error while updating') + ': ' + e.error}) } } }); } function arrowCountFetchAjax(next) { $.ajax({ url: acForm.attr('data-fetch-ajax'), method: 'GET', success: function(e) { if(!e.success) { M.toast({html: gettext('Error while updating') + ': ' + e.error}) } else { next(e.count); } } }); } $('#id_count').keypress(function() { var count = parseInt(input.val(), 10); if(!isNaN(count) && count >= 0) { arrowCountUpdateAjax(); } }); $('.count-up').click(function(e) { var increment = parseInt(e.currentTarget.getAttribute("data-increment")); arrowCountFetchAjax(function (count) { input.val(count + increment); arrowCountUpdateAjax(); }); }); $('.count-down').click(function() { var count = parseInt(input.val(), 10); if(!isNaN(count) && count > 0) { input.val(count - 1); arrowCountUpdateAjax(); } });