| 
      
            Lines 50-56
          unless ( can_load( modules => { 'Koha::SearchEngine::Elasticsearch::Indexer' =>
      
      
        Link Here
      
     | 
  
        
          | 50 | 
           | 
          50 | 
           | 
        
        
          | 51 | 
          my $index = $input->param('index') || 'biblios'; | 
          51 | 
          my $index = $input->param('index') || 'biblios'; | 
        
        
          | 52 | 
          my $op    = $input->param('op')    || 'list'; | 
          52 | 
          my $op    = $input->param('op')    || 'list'; | 
        
          
            
              | 53 | 
              my @messages;  | 
              53 | 
              my ( @messages, @errors );  | 
            
        
          | 54 | 
          push @messages, { type => 'message', code => 'elasticsearch_disabled' } | 
          54 | 
          push @messages, { type => 'message', code => 'elasticsearch_disabled' } | 
        
        
          | 55 | 
            if ( C4::Context->preference('SearchEngine') ne 'Elasticsearch' ); | 
          55 | 
            if ( C4::Context->preference('SearchEngine') ne 'Elasticsearch' ); | 
        
        
          | 56 | 
           | 
          56 | 
           | 
        
  
    | 
      
            Lines 68-74
          my $update_mappings = sub {
      
      
        Link Here
      
     | 
  
        
          | 68 | 
                      $indexer->update_mappings();  | 
          68 | 
                      $indexer->update_mappings();  | 
        
        
          | 69 | 
                  } catch { | 
          69 | 
                  } catch { | 
        
        
          | 70 | 
                      my $conf = $indexer->get_elasticsearch_params();  | 
          70 | 
                      my $conf = $indexer->get_elasticsearch_params();  | 
        
          
            
              | 71 | 
                          push @messages, { | 
              71 | 
                          push @errors, { | 
            
        
          | 72 | 
                          type => 'error',  | 
          72 | 
                          type => 'error',  | 
        
        
          | 73 | 
                          code => 'error_on_update_es_mappings',  | 
          73 | 
                          code => 'error_on_update_es_mappings',  | 
        
        
          | 74 | 
                          message => $_[0],  | 
          74 | 
                          message => $_[0],  | 
        
  
    | 
      
            Lines 124-130
          if ( $op eq 'edit' ) {
      
      
        Link Here
      
     | 
  
        
          | 124 | 
                          $search_field->weight(undef);  | 
          124 | 
                          $search_field->weight(undef);  | 
        
        
          | 125 | 
                      }  | 
          125 | 
                      }  | 
        
        
          | 126 | 
                      elsif ($field_weight <= 0 || !looks_like_number($field_weight)) { | 
          126 | 
                      elsif ($field_weight <= 0 || !looks_like_number($field_weight)) { | 
        
          
            
              | 127 | 
                              push @messages, { type => 'error', code => 'invalid_field_weight', 'weight' => $field_weight }; | 
              127 | 
                              push @errors, { type => 'error', code => 'invalid_field_weight', 'weight' => $field_weight }; | 
            
        
          | 128 | 
                      }  | 
          128 | 
                      }  | 
        
        
          | 129 | 
                      else { | 
          129 | 
                      else { | 
        
        
          | 130 | 
                          $search_field->weight($field_weight);  | 
          130 | 
                          $search_field->weight($field_weight);  | 
        
  
    | 
      
            Lines 170-179
          if ( $op eq 'edit' ) {
      
      
        Link Here
      
     | 
  
        
          | 170 | 
                          search => $mapping_search  | 
          170 | 
                          search => $mapping_search  | 
        
        
          | 171 | 
                      });  | 
          171 | 
                      });  | 
        
        
          | 172 | 
                  }  | 
          172 | 
                  }  | 
        
          
            
              | 173 | 
                      push @messages, { type => 'error', code => 'missing_mandatory_fields' } if $mandatory_after < $mandatory_before; | 
              173 | 
                      push @errors, { type => 'error', code => 'missing_mandatory_fields' } if $mandatory_after < $mandatory_before; | 
            
        
          | 174 | 
              };  | 
          174 | 
              };  | 
        
          
            
              | 175 | 
                  if ($@ || @messages) { | 
              175 | 
                  if ($@ || @errors) { | 
            
            
              | 176 | 
                      push @messages, { type => 'error', code => 'error_on_update', message => $@, }; | 
              176 | 
                      push @errors, { type => 'error', code => 'error_on_update', message => $@, }; # FIXME $@ can be empty but @errors | 
            
        
          | 177 | 
                  $schema->storage->txn_rollback;  | 
          177 | 
                  $schema->storage->txn_rollback;  | 
        
        
          | 178 | 
              } else { | 
          178 | 
              } else { | 
        
        
          | 179 | 
                  push @messages, { type => 'message', code => 'success_on_update' }; | 
          179 | 
                  push @messages, { type => 'message', code => 'success_on_update' }; | 
        
  
    | 
      
            Lines 203-216
          for my $index_name (@index_names) {
      
      
        Link Here
      
     | 
  
        
          | 203 | 
              if (!$indexer->is_index_status_ok) { | 
          203 | 
              if (!$indexer->is_index_status_ok) { | 
        
        
          | 204 | 
                  my $conf = $indexer->get_elasticsearch_params();  | 
          204 | 
                  my $conf = $indexer->get_elasticsearch_params();  | 
        
        
          | 205 | 
                  if ($indexer->is_index_status_reindex_required) { | 
          205 | 
                  if ($indexer->is_index_status_reindex_required) { | 
        
          
            
              | 206 | 
                          push @messages, { | 
              206 | 
                          push @errors, { | 
            
        
          | 207 | 
                          type => 'error',  | 
          207 | 
                          type => 'error',  | 
        
        
          | 208 | 
                          code => 'reindex_required',  | 
          208 | 
                          code => 'reindex_required',  | 
        
        
          | 209 | 
                          index => $conf->{index_name}, | 
          209 | 
                          index => $conf->{index_name}, | 
        
        
          | 210 | 
                      };  | 
          210 | 
                      };  | 
        
        
          | 211 | 
                  }  | 
          211 | 
                  }  | 
        
        
          | 212 | 
                  elsif($indexer->is_index_status_recreate_required) { | 
          212 | 
                  elsif($indexer->is_index_status_recreate_required) { | 
        
          
            
              | 213 | 
                          push @messages, { | 
              213 | 
                          push @errors, { | 
            
        
          | 214 | 
                          type => 'error',  | 
          214 | 
                          type => 'error',  | 
        
        
          | 215 | 
                          code => 'recreate_required',  | 
          215 | 
                          code => 'recreate_required',  | 
        
        
          | 216 | 
                          index => $conf->{index_name}, | 
          216 | 
                          index => $conf->{index_name}, | 
        
  
    | 
      
            Lines 277-282
          while ( my $search_field = $search_fields->next ) {
      
      
        Link Here
      
     | 
  
        
          | 277 | 
              push @all_search_fields, $search_field_unblessed;  | 
          277 | 
              push @all_search_fields, $search_field_unblessed;  | 
        
        
          | 278 | 
          }  | 
          278 | 
          }  | 
        
        
          | 279 | 
           | 
          279 | 
           | 
        
            
               | 
               | 
              280 | 
              push @messages, @errors;  | 
            
        
          | 280 | 
          $template->param(  | 
          281 | 
          $template->param(  | 
        
        
          | 281 | 
              indexes           => \@indexes,  | 
          282 | 
              indexes           => \@indexes,  | 
        
        
          | 282 | 
              all_search_fields => \@all_search_fields,  | 
          283 | 
              all_search_fields => \@all_search_fields,  | 
        
            
              | 283 | 
              -   | 
               | 
               |