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');
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" ) {
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(