From a64ca0a8cfbd70d9c924657a93d3f2dc84bf7704 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 14 Feb 2012 10:53:19 -0500 Subject: [PATCH] Bug 4054 - Double-clicking the 'place hold' button can result in duplicate holds This commit adds a new jquery function to staff-global.js, preventDoubleFormSubmit(). When used thusly: $('#form-id').preventDoubleFormSubmit(); It will prevent a submitted form from being submitted a second time. It is currently only added to the Place Hold form in reserve/request.pl http://bugs.koha-community.org/show_bug.cgi?id=4045 Signed-off-by: Liz Rea Tested: Double clicking no longer causes identical double holds to be placed. passes prove t xt t/db_dependent in line with current master. Reminder: this will need to be added to the OPAC as well. --- koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js | 11 ++++++++++- .../intranet-tmpl/prog/en/modules/reserve/request.tt | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js b/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js index f491773690..24b785d1e5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js @@ -92,4 +92,13 @@ function checkEnter(e){ //e is event object passed from function invocation function clearHoldFor(){ $.cookie("holdfor",null, { path: "/", expires: 0 }); -} \ No newline at end of file +} + +jQuery.fn.preventDoubleFormSubmit = function() { + jQuery(this).submit(function() { + if (this.beenSubmitted) + return false; + else + this.beenSubmitted = true; + }); +}; \ No newline at end of file diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt index 1719af4b76..fa45e26637 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -127,6 +127,8 @@ function checkMultiHold() { $("#requestany").attr("checked","checked"); } }); + + $('#hold-request-form').preventDoubleFormSubmit(); }); // ]]> @@ -238,7 +240,7 @@ function checkMultiHold() {
Hold details [% UNLESS ( multi_hold ) %] -
+ [% ELSE %] [% END %]