@@ -, +, @@
koha2marclinks
CSRF etc. for another report.)
---
admin/koha2marclinks.pl | 11 ++++++++---
.../intranet-tmpl/prog/en/modules/admin/koha2marclinks.tt | 6 ++++++
2 files changed, 14 insertions(+), 3 deletions(-)
--- a/admin/koha2marclinks.pl
+++ a/admin/koha2marclinks.pl
@@ -48,12 +48,17 @@ my $cache = Koha::Caches->get_instance();
# Update data before showing the form
my $no_upd;
-if( $input->param('add_field') ) {
+if( $input->param('add_field') && $input->request_method eq 'POST' ) {
# add a mapping to all frameworks
my ($kohafield, $tag, $sub) = split /,/, $input->param('add_field'), 3;
- Koha::MarcSubfieldStructures->search({ tagfield => $tag, tagsubfield => $sub })->update({ kohafield => $kohafield });
+ my $rs = Koha::MarcSubfieldStructures->search({ tagfield => $tag, tagsubfield => $sub });
+ if( $rs->count ) {
+ $rs->update({ kohafield => $kohafield });
+ } else {
+ $template->param( error_add => 1, error_info => "$tag, $sub" );
+ }
-} elsif( $input->param('remove_field') ) {
+} elsif( $input->param('remove_field') && $input->request_method eq 'POST' ) {
# remove a mapping from all frameworks
my ($tag, $sub) = split /,/, $input->param('remove_field'), 2;
Koha::MarcSubfieldStructures->search({ tagfield => $tag, tagsubfield => $sub })->update({ kohafield => undef });
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/koha2marclinks.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/koha2marclinks.tt
@@ -13,6 +13,8 @@ function AddFld(kohafield) {
if( temp.length == 2 ) {
$('#add_field').val( kohafield+','+fieldstr );
$('#koha2marc').submit();
+ } else {
+ alert( "Invalid input. Enter something like: 245,a" );
}
}
@@ -42,6 +44,10 @@ function RemFld(tagfield, subfield ) {