#
# 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 <http://www.gnu.org/licenses>.
-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' },
}
);
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),
# 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(
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,
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++;
}
}
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])_(.*)$/) {
$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);
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(),
}
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,