From f05df6b9b3b759413d3328287746e69a0fd91077 Mon Sep 17 00:00:00 2001 From: David Gustafsson Date: Fri, 1 Jun 2018 11:39:45 +0200 Subject: [PATCH] Bug 18316: Fix field weight validation/deletion bug --- admin/searchengine/elasticsearch/mappings.pl | 12 +++++++++++- .../en/modules/admin/searchengine/elasticsearch/mappings.tt | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/admin/searchengine/elasticsearch/mappings.pl b/admin/searchengine/elasticsearch/mappings.pl index 60ee173..69a4a69 100755 --- a/admin/searchengine/elasticsearch/mappings.pl +++ b/admin/searchengine/elasticsearch/mappings.pl @@ -72,7 +72,17 @@ if ( $op eq 'edit' ) { my $search_field = Koha::SearchFields->find( { name => $field_name }, { key => 'name' } ); $search_field->label($field_label); $search_field->type($field_type); - $search_field->weight($field_weight) if looks_like_number($field_weight) && $field_weight > 0; + + if (!length($field_weight)) { + $search_field->weight(undef); + } + elsif ($field_weight <= 0 || !looks_like_number($field_weight)) { + push @messages, { type => 'error', code => 'invalid_field_weight', 'weight' => $field_weight }; + } + else { + $search_field->weight($field_weight); + } + $search_field->store; } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt index aea12ca..7cc05da 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt @@ -80,6 +80,8 @@ a.add, a.delete { [% CASE 'error_on_delete' %] An error occurred when deleting the existing mappings. Nothing has been changed! (search field [% m.values.field_name | html %] with mapping [% m.values.marc_field | html %].) + [% CASE 'invalid_field_weight' %] + Invalid field weight "[% m.weight | html %]", must be a positive decimal number. [% CASE 'success_on_update' %] Mappings updated successfully. [% CASE 'success_on_reset' %] @@ -201,7 +203,7 @@ a.add, a.delete { [% IF search_field.mapped_biblios %] - + [% ELSE %] [% END %] -- 2.1.4