Bug 17600: Standardize our EXPORT_OK
[srvgit] / patroncards / edit-layout.pl
index 9e663d3..22ef6b9 100755 (executable)
 # 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 qw ( -utf8 );
-use Text::CSV_XS;
-use XML::Simple;
+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.tt",
         query           => $cgi,
         type            => "intranet",
-        authnotrequired => 0,
-        flagsrequired   => { catalogue => 1 },
-        debug           => 1,
+        flagsrequired   => { tools => 'label_creator' },
     }
 );
 
@@ -140,12 +142,14 @@ 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;
         }
     }
 
@@ -154,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,
@@ -216,6 +221,7 @@ 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;
@@ -236,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(),
@@ -244,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,