X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=patroncards%2Fedit-layout.pl;h=233bfac349b9eeead101676034207457a45d1cd1;hb=ad67b88d2895f2d01429d42e62a691a01641043a;hp=0c4dfe47bbbb43e6cdb89fb38f3091584cfd35e5;hpb=612b12f41ba59a6508fcbf306be66455a6f0012b;p=koha-ffzg.git diff --git a/patroncards/edit-layout.pl b/patroncards/edit-layout.pl index 0c4dfe47bb..233bfac349 100755 --- a/patroncards/edit-layout.pl +++ b/patroncards/edit-layout.pl @@ -5,41 +5,43 @@ # # 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 Modern::Perl; -use CGI; -use Text::CSV_XS; -use XML::Simple; +use CGI qw ( -utf8 ); +use XML::Simple qw( XMLin XMLout ); use autouse 'Data::Dumper' => qw(Dumper); -use C4::Auth qw(get_template_and_user); -use C4::Output qw(output_html_with_http_headers); -use C4::Creators; +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use C4::Creators qw( + get_all_image_names + get_barcode_types + get_font_types + get_text_justification_types + get_unit_values +); use C4::Patroncards; -my $cgi = new CGI; +my $cgi = CGI->new; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "patroncards/edit-layout.tmpl", + template_name => "patroncards/edit-layout.tt", query => $cgi, type => "intranet", - authnotrequired => 0, - flagsrequired => { catalogue => 1 }, - debug => 1, + flagsrequired => { tools => 'label_creator' }, } ); @@ -96,6 +98,8 @@ if ($op eq 'edit') { push @text_fields, ( "field_" . $field_number . "_llx" => $field_params->{'llx'}, "field_" . $field_number . "_lly" => $field_params->{'lly'}, + "field_" . $field_number . "_height_scale" => $field_params->{'height_scale'}, + "field_" . $field_number . "_width_scale" => $field_params->{'width_scale'}, "field_" . $field_number . "_font" => _set_selected($field_params->{'font'}, $font_types), "field_" . $field_number . "_font_size" => $field_params->{'font_size'}, "field_" . $field_number . "_text_alignment" => _set_selected($field_params->{'text_alignment'}, $alignment_types), @@ -138,7 +142,15 @@ if ($op eq 'edit') { # Handle barcodes... my @barcode = (); foreach my $barcode_param (keys %{$layout_xml->{'barcode'}->[0]}) { - push @barcode, (($barcode_param eq 'type' ? ("barcode_" . $barcode_param => _set_selected($layout_xml->{'barcode'}->[0]->{'barcode_type'}, $barcode_types)) : ("barcode_" . $barcode_param => $layout_xml->{'barcode'}->[0]->{$barcode_param}))); + push @barcode, (($barcode_param eq 'type' ? ("barcode_" . $barcode_param => _set_selected($layout_xml->{'barcode'}->[0]->{'type'}, $barcode_types)) : ("barcode_" . $barcode_param => $layout_xml->{'barcode'}->[0]->{$barcode_param}))); + } + + foreach my $unit (@$units){ + if ($unit->{'type'} eq $layout->get_attr('units')) { + $unit->{'selected'} = 1; + } else { + $unit->{'selected'} = 0; + } } $template->param( @@ -146,9 +158,10 @@ if ($op eq 'edit') { layout_name => $layout->get_attr('layout_name'), page_side => ($layout_xml->{'page_side'} eq 'F' ? 0 : 1), guide_box => $layout_xml->{'guide_box'}, + guide_grid => $layout_xml->{'guide_grid'}, units => $units, @barcode, - barcode_type => get_barcode_types(), + barcode_type => _set_selected($layout_xml->{'barcode'}->[0]->{'type'}, $barcode_types), @text_fields, @images, guidebox => 0, @@ -166,14 +179,14 @@ elsif ($op eq 'save') { my $image_select = 0; my $field_enabled = 0; CGI_PARAMS: - foreach my $parameter ($cgi->param()) { # parse the field values and build a hash of the layout for conversion to xml and storage in the db + foreach my $parameter ($cgi->multi_param()) { # parse the field values and build a hash of the layout for conversion to xml and storage in the db if ($parameter =~ m/^field_([0-9])_(.*)$/) { my $field_number = $1; my $field_data = $2; $field_enabled = $field_number if $field_data eq 'enable'; next CGI_PARAMS unless $field_number == $field_enabled; if ($field_data eq 'text') { - push @$text_lines, $cgi->param($parameter); + push @$text_lines, $cgi->multi_param($parameter); if ($array_index <= 0) { $array_index++; } @@ -187,7 +200,7 @@ elsif ($op eq 'save') { } elsif ($parameter =~ m/^barcode_(.*)$/) { $field_enabled = $1 if $1 eq 'print'; - next CGI_PARAMS unless $field_enabled eq 'print'; + next CGI_PARAMS unless defined $field_enabled && $field_enabled eq 'print'; $layout->{'barcode'}->{$1} = $cgi->param($parameter); } elsif ($parameter =~m/^image_([0-9])_(.*)$/) { @@ -208,10 +221,12 @@ elsif ($op eq 'save') { $layout->{'units'} = $cgi->param($parameter) if $parameter eq 'units'; $layout->{'page_side'} = $cgi->param($parameter) if $parameter eq 'page_side'; $layout->{'guide_box'} = $cgi->param($parameter) if $parameter eq 'guide_box'; + $layout->{'guide_grid'} = $cgi->param($parameter) if $parameter eq 'guide_grid'; } } $layout->{'text'} = $text_lines; my @params = (layout_name => $layout_name, layout_id => $layout_id, layout_xml => XMLout($layout)); + push(@params,units => $layout->{'units'}) if $layout->{'units'}; if ($layout_id) { # if a label_id was passed in, this is an update to an existing layout $layout = C4::Patroncards::Layout->retrieve(layout_id => $layout_id); $layout->set_attr(@params); @@ -227,7 +242,7 @@ elsif ($op eq 'save') { elsif ($op eq 'new') { # this is a new layout $layout = C4::Patroncards::Layout->new(); my @fields = (); - for (my $field; $field < 4; $field++) { # limit 3 text fields + for (my $field = 0; $field < 4; $field++) { # limit 3 text fields push @fields, ( "field_$field" . "_font" => get_font_types(), "field_$field" . "_text_alignment" => get_text_justification_types(), @@ -235,7 +250,7 @@ elsif ($op eq 'new') { # this is a new layout } my @images = (); - for (my $image; $image < 3; $image++) { #limit 2 images + for (my $image = 0; $image < 3; $image++) { #limit 2 images push @images, ( "image_$image" . "_image_source" => $image_sources, "image_$image" . "_image_name" => $image_names,