#!/usr/bin/perl # This file is part of Koha. # # Copyright 2010 Kyle M Hall # # Koha is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # Koha is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Koha; if not, see . use Modern::Perl; 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 = CGI->new; my $op = $cgi->param('op') || q{}; my $template_id = $cgi->param('template_id'); my ($template, $loggedinuser, $cookie) = get_template_and_user({ template_name => "tools/marc_modification_templates.tt", query => $cgi, type => "intranet", flagsrequired => { tools => 'marc_modification_templates' }, }); if ( $op eq "cud-create_template" ) { $template_id = '' unless $cgi->param('duplicate_current_template'); $template_id = AddModificationTemplate( scalar $cgi->param('template_name'), $template_id ); } elsif ( $op eq "cud-delete_template" ) { DelModificationTemplate( $template_id ); $template_id = ''; } elsif ( $op eq "cud-add_action" ) { my $mmta_id = $cgi->param('mmta_id'); my $action = $cgi->param('action'); my $field_number = $cgi->param('field_number'); my $from_field = $cgi->param('from_field'); my $from_subfield = $cgi->param('from_subfield'); my $field_value = $cgi->param('field_value'); my $to_field = $cgi->param('to_field'); my $to_subfield = $cgi->param('to_subfield'); my $to_regex_search = $cgi->param('to_regex_search'); my $to_regex_replace = $cgi->param('to_regex_replace'); my $to_regex_modifiers = $cgi->param('to_regex_modifiers'); my $conditional = $cgi->param('conditional'); my $conditional_field = $cgi->param('conditional_field'); 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' ) ? 1 : 0; my $description = $cgi->param('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 "cud-delete_action" ) { DelModificationTemplateAction( scalar $cgi->param('mmta_id') ); } elsif ( $op eq "move_action" ) { MoveModificationTemplateAction( scalar $cgi->param('mmta_id'), scalar $cgi->param('where') ); } my @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' ); if( defined $action->{'conditional'} ){ $action->{'conditional_if'} = ( $action->{'conditional'} eq 'if' ); $action->{'conditional_unless'} = ( $action->{'conditional'} eq 'unless' ); } 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( TemplatesLoop => \@templates, ActionsLoop => \@actions, template_id => $template_id, ); output_html_with_http_headers $cgi, $cookie, $template->output;