@@ -, +, @@ --- admin/searchengine/elasticsearch/mappings.pl | 12 +++++++++++- .../en/modules/admin/searchengine/elasticsearch/mappings.tt | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) --- a/admin/searchengine/elasticsearch/mappings.pl +++ a/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; } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt @@ -79,6 +79,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 %] with mapping [% m.values.marc_field %].) + [% CASE 'invalid_field_weight' %] + Invalid field weight "[% m.weight %]", must be a positive decimal number. [% CASE 'success_on_update' %] Mapping updated successfully. [% CASE %] @@ -176,7 +178,7 @@ a.add, a.delete { [% IF search_field.mapped_biblios %] - + [% ELSE %] [% END %] --