X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=admin%2Ffieldmapping.pl;h=631e7d4380a746972800275233d53aacebc3fbc0;hb=5e04894b25d1bf9f2a3fdf8ffee00f965bdb07b5;hp=1552010530cc3261fed658b6705afa4e7cf48066;hpb=b764c1ee81728ce5007b89e28b8703742d202375;p=koha.git diff --git a/admin/fieldmapping.pl b/admin/fieldmapping.pl index 1552010530..631e7d4380 100755 --- a/admin/fieldmapping.pl +++ b/admin/fieldmapping.pl @@ -1,84 +1,70 @@ #!/usr/bin/perl # Copyright 2009 SARL BibLibre +# Copyright 2017 Koha Development Team # # This file is part of Koha. # -# 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 2 of the License, or (at your option) any later -# version. +# 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. +# 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, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; -use warnings; -use CGI; +use Modern::Perl; +use CGI qw ( -utf8 ); use C4::Auth; use C4::Biblio; -use C4::Koha; use C4::Output; -my $query = new CGI; +use Koha::BiblioFrameworks; +use Koha::FieldMappings; -my $framework = $query->param('framework') || ""; +my $query = new CGI; +my $frameworkcode = $query->param('framework') || ""; my $field = $query->param('fieldname'); my $fieldcode = $query->param('marcfield'); my $subfieldcode = $query->param('marcsubfield'); my $op = $query->param('op') || q{}; my $id = $query->param('id'); -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "admin/fieldmapping.tmpl", - query => $query, - type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 'parameters_remaining_permissions'}, - debug => 1, - }); - -# get framework list -my $frameworks = getframeworks(); -my @frameworkloop; -my $selected; -my $frameworktext; -foreach my $thisframeworkcode (keys %$frameworks) { - if ($thisframeworkcode eq $framework){ - $selected = 1; - $frameworktext = $frameworks->{$thisframeworkcode}->{'frameworktext'}; - } else { - $selected = 0; - } - my %row =(value => $thisframeworkcode, - selected => $selected, - frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'}, - ); - push @frameworkloop, \%row; -} - -if($op eq "delete" and $id){ - DeleteFieldMapping($id); - print $query->redirect("/cgi-bin/koha/admin/fieldmapping.pl?framework=".$framework); - exit; -} +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "admin/fieldmapping.tt", + query => $query, + type => "intranet", + authnotrequired => 0, + flagsrequired => { parameters => 'parameters_remaining_permissions' }, + debug => 1, + } +); -# insert operation -if($field and $fieldcode){ - SetFieldMapping($framework, $field, $fieldcode, $subfieldcode); +# FIXME Add exceptions +if ( $op eq "delete" and $id ) { + Koha::FieldMappings->find($id)->delete; +} elsif ( $field and $fieldcode ) { + my $params = { frameworkcode => $frameworkcode, field => $field, fieldcode => $fieldcode, subfieldcode => $subfieldcode }; + my $exists = Koha::FieldMappings->search( $params )->count;; + unless ( $exists ) { + Koha::FieldMapping->new( $params )->store; + } } -my $fieldloop = GetFieldMapping($framework); +my $fields = Koha::FieldMappings->search({ frameworkcode => $frameworkcode }); -$template->param( frameworkloop => \@frameworkloop, - framework => $framework, - frameworktext => $frameworktext, - fields => $fieldloop, - ); +my $frameworks = Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] }); +my $framework = $frameworks->search( { frameworkcode => $frameworkcode } )->next; +$template->param( + frameworks => $frameworks, + framework => $framework, + fields => $fields, +); output_html_with_http_headers $query, $cookie, $template->output;