X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=tools%2Fmarc_modification_templates.pl;h=b802d508a3eac5cf98bfb892d064a00bf9f75a4b;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=f9c3ee1ceaf3260970300948584f57bbfb26bc1f;hpb=3952c2028974d1e589b2d37d3a07aa38bc28a9c9;p=koha-ffzg.git diff --git a/tools/marc_modification_templates.pl b/tools/marc_modification_templates.pl index f9c3ee1cea..b802d508a3 100755 --- a/tools/marc_modification_templates.pl +++ b/tools/marc_modification_templates.pl @@ -18,14 +18,22 @@ use Modern::Perl; -use CGI; - -use C4::Auth; -use C4::Koha; -use C4::Output; -use C4::MarcModificationTemplates; +use CGI qw ( -utf8 ); + +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use C4::MarcModificationTemplates qw( + AddModificationTemplate + AddModificationTemplateAction + DelModificationTemplate + DelModificationTemplateAction + GetModificationTemplateActions + GetModificationTemplates + ModModificationTemplateAction + MoveModificationTemplateAction +); -my $cgi = new CGI; +my $cgi = CGI->new; my $op = $cgi->param('op') || q{}; my $template_id = $cgi->param('template_id'); @@ -35,14 +43,12 @@ my ($template, $loggedinuser, $cookie) template_name => "tools/marc_modification_templates.tt", query => $cgi, type => "intranet", - authnotrequired => 0, - flagsrequired => { tools => 'marc_modfication_templates' }, - debug => 1, + flagsrequired => { tools => 'marc_modification_templates' }, }); if ( $op eq "create_template" ) { $template_id = '' unless $cgi->param('duplicate_current_template'); - $template_id = AddModificationTemplate( $cgi->param('template_name'), $template_id ); + $template_id = AddModificationTemplate( scalar $cgi->param('template_name'), $template_id ); } elsif ( $op eq "delete_template" ) { @@ -67,84 +73,72 @@ if ( $op eq "create_template" ) { my $conditional_subfield = $cgi->param('conditional_subfield'); my $conditional_comparison = $cgi->param('conditional_comparison'); my $conditional_value = $cgi->param('conditional_value'); - my $conditional_regex = $cgi->param('conditional_regex') eq 'on'; + my $conditional_regex = ( $cgi->param('conditional_regex') eq 'on' ) ? 1 : 0; my $description = $cgi->param('description'); - unless ( $mmta_id ) { - AddModificationTemplateAction( - $template_id, - $action, - $field_number, - $from_field, - $from_subfield, - $field_value, - $to_field, - $to_subfield, - $to_regex_search, - $to_regex_replace, - $to_regex_modifiers, - $conditional, - $conditional_field, - $conditional_subfield, - $conditional_comparison, - $conditional_value, - $conditional_regex, - $description - ); - } else { - ModModificationTemplateAction( - $mmta_id, - $action, - $field_number, - $from_field, - $from_subfield, - $field_value, - $to_field, - $to_subfield, - $to_regex_search, - $to_regex_replace, - $to_regex_modifiers, - $conditional, - $conditional_field, - $conditional_subfield, - $conditional_comparison, - $conditional_value, - $conditional_regex, - $description - ); - - } + if ($from_field) { + unless ($mmta_id) { + AddModificationTemplateAction( + $template_id, $action, + $field_number, $from_field, + $from_subfield, $field_value, + $to_field, $to_subfield, + $to_regex_search, $to_regex_replace, + $to_regex_modifiers, $conditional, + $conditional_field, $conditional_subfield, + $conditional_comparison, $conditional_value, + $conditional_regex, $description + ); + } + else { + ModModificationTemplateAction( + $mmta_id, $action, + $field_number, $from_field, + $from_subfield, $field_value, + $to_field, $to_subfield, + $to_regex_search, $to_regex_replace, + $to_regex_modifiers, $conditional, + $conditional_field, $conditional_subfield, + $conditional_comparison, $conditional_value, + $conditional_regex, $description + ); + } + } + else { + $template->param( error => 'no_from_field' ); + } } elsif ( $op eq "delete_action" ) { - DelModificationTemplateAction( $cgi->param('mmta_id') ); + DelModificationTemplateAction( scalar $cgi->param('mmta_id') ); } elsif ( $op eq "move_action" ) { - MoveModificationTemplateAction( $cgi->param('mmta_id'), $cgi->param('where') ); + MoveModificationTemplateAction( scalar $cgi->param('mmta_id'), scalar $cgi->param('where') ); } my @templates = GetModificationTemplates( $template_id ); -unless ( $template_id ) { - $template_id = $templates[0]->{'template_id'}; - @templates = GetModificationTemplates( $template_id ); -} - my @actions = GetModificationTemplateActions( $template_id ); foreach my $action ( @actions ) { $action->{'action_delete_field'} = ( $action->{'action'} eq 'delete_field' ); + $action->{'action_add_field'} = ( $action->{'action'} eq 'add_field' ); $action->{'action_update_field'} = ( $action->{'action'} eq 'update_field' ); $action->{'action_move_field'} = ( $action->{'action'} eq 'move_field' ); $action->{'action_copy_field'} = ( $action->{'action'} eq 'copy_field' ); + $action->{'action_copy_and_replace_field'} = ( $action->{'action'} eq 'copy_and_replace_field' ); - $action->{'conditional_if'} = ( $action->{'conditional'} eq 'if' ); - $action->{'conditional_unless'} = ( $action->{'conditional'} eq 'unless' ); + if( defined $action->{'conditional'} ){ + $action->{'conditional_if'} = ( $action->{'conditional'} eq 'if' ); + $action->{'conditional_unless'} = ( $action->{'conditional'} eq 'unless' ); + } - $action->{'conditional_comparison_exists'} = ( $action->{'conditional_comparison'} eq 'exists' ); - $action->{'conditional_comparison_not_exists'} = ( $action->{'conditional_comparison'} eq 'not_exists' ); - $action->{'conditional_comparison_equals'} = ( $action->{'conditional_comparison'} eq 'equals' ); - $action->{'conditional_comparison_not_equals'} = ( $action->{'conditional_comparison'} eq 'not_equals' ); + if( defined $action->{'conditional_comparison'} ){ + $action->{'conditional_comparison_exists'} = ( $action->{'conditional_comparison'} eq 'exists' ); + $action->{'conditional_comparison_not_exists'} = ( $action->{'conditional_comparison'} eq 'not_exists' ); + $action->{'conditional_comparison_equals'} = ( $action->{'conditional_comparison'} eq 'equals' ); + $action->{'conditional_comparison_not_equals'} = ( $action->{'conditional_comparison'} eq 'not_equals' ); + } } $template->param(