From 18d9ce8dacfbf7fc1d07665f6bcfc58b1901e0b6 Mon Sep 17 00:00:00 2001 From: Martin Stenberg Date: Mon, 31 Aug 2015 22:06:46 +0200 Subject: [PATCH] Bug 12772 - Fix rule updates Overduerules ID was not sent correctly when editing rules, resulting in rule being cleared instead of updated. This patch fixes this issue, and a couple of uninitilized values as a bonus. --- .../prog/en/modules/tools/overduerules.tt | 11 ++++------- tools/overduerules.pl | 16 +++++++++------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/overduerules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/overduerules.tt index fd96b90..014217d 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/overduerules.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/overduerules.tt @@ -33,12 +33,9 @@ function clear_edit(){ } function edit_value_add(id_overduerules) { - var input = document.getElementById('edit_id'); - if (id_overduerules != 0) { - input.value = "add&overduerules_id=" + id_overduerules; - } else { - input.value = "add"; - } + $('#edit_id').val('add'); + if (id_overduerules != 0) + $('#edit_overduerules_id').val(id_overduerules); } $(document).ready(function() { @@ -114,7 +111,7 @@ fieldset.rows .ui-tabs-nav { margin-left : 10px; }
- + diff --git a/tools/overduerules.pl b/tools/overduerules.pl index 15d3618..16e0c5f 100755 --- a/tools/overduerules.pl +++ b/tools/overduerules.pl @@ -19,6 +19,7 @@ use strict; use warnings; +use Carp; use CGI qw ( -utf8 ); use List::Util qw/min/; use File::Spec; @@ -34,8 +35,10 @@ use Data::Dumper; sub StringSearch { my ( $searchstring, $type ) = @_; my $dbh = C4::Context->dbh; + $searchstring = "" unless $searchstring; $searchstring =~ s/\'/\\\'/g; my @data = split( ' ', $searchstring ); + $data[0] = "" unless scalar @data; my $sth = $dbh->prepare( "SELECT * FROM overduerules WHERE (branchcode LIKE ?) or (categorycode LIKE ?) or (letter LIKE ?) or (itemtype LIKE ?) ORDER BY branchcode, delay" ); @@ -47,8 +50,9 @@ sub StringSearch { my $input = new CGI; my $searchfield = $input->param('description'); my $script_name = "/cgi-bin/koha/tools/overduerules.pl"; -my $op = $input->param('op'); +my $op = $input->param('op') || 'search'; my $overduerules_id = $input->param('overduerules_id'); +$overduerules_id = 0 unless (defined $overduerules_id && $overduerules_id =~ /\d+/); my $branch = $input->param('branchcode'); my $cat = $input->param('categorycode'); my $itemtype = $input->param('itemtype'); @@ -59,7 +63,7 @@ foreach ($input->param){ push (@mttparams, $1) if ($_ =~ /^mtt-(.*)/); } -$searchfield =~ s/\,//g; +$searchfield =~ s/\,//g if $searchfield; my ($template, $borrowernumber, $cookie ) = get_template_and_user( { template_name => "tools/overduerules.tt", @@ -92,9 +96,7 @@ $template->param( # operations if ( $op =~ m/add/ ) { - $op =~ s/\D//g; $branch = (!defined $branch ) ? '' : $branch; - $op = ($op eq '') ? 0 : $op; $cat = (!defined $cat ) ? 0 : $cat; $itemtype = (!defined $itemtype ) ? '' :$itemtype; $onhold = (!defined $onhold ) ? 0 : $onhold; @@ -109,14 +111,14 @@ if ( $op =~ m/add/ ) { $sth->execute($input->param('letter') || '', $debarred , $branch, $cat, $itemtype, $onhold, $delay); $dbh->do("DELETE FROM overduerules_transport_types where overduerules_id = $ruleId"); } - elsif ($op != 0) { # case edit pkeys + elsif ($overduerules_id != 0) { # case edit pkeys my $query2 = " UPDATE overduerules SET letter = ?, debarred = ?, branchcode = ?, categorycode = ?, itemtype = ?, onhold = ?, delay = ? WHERE overduerules_id = ? "; my $sth = $dbh->prepare($query2); - $sth->execute($input->param('letter') || '', $debarred , $branch, $cat, $itemtype, $onhold, $delay, $op); - $dbh->do("DELETE FROM overduerules_transport_types where overduerules_id = $op"); + $sth->execute($input->param('letter') || '', $debarred , $branch, $cat, $itemtype, $onhold, $delay, $overduerules_id); + $dbh->do("DELETE FROM overduerules_transport_types where overduerules_id = $overduerules_id"); } else { # add a new entry in overrules my $query = " INSERT INTO overduerules (branchcode, categorycode, itemtype, onhold, delay, letter, debarred) -- 1.7.10.4