Bug 25898: Prohibit indirect object notation
[srvgit] / serials / subscription-numberpatterns.pl
index c2a9800..99969b1 100755 (executable)
@@ -28,20 +28,19 @@ Manage numbering patterns
 =cut
 
 use Modern::Perl;
-use CGI;
+use CGI qw ( -utf8 );
 
 use C4::Auth;
 use C4::Output;
 use C4::Serials::Numberpattern;
 use C4::Serials::Frequency;
 
-my $input = new CGI;
+my $input = CGI->new;
 my ($template, $loggedinuser, $cookie, $flags) = get_template_and_user( {
     template_name   => 'serials/subscription-numberpatterns.tt',
     query           => $input,
     type            => 'intranet',
-    authnotrequired => 0,
-    flagsrequired   => { 'parameters' => 1 }
+    flagsrequired   => { 'serials' => 1 }
 } );
 
 my $op = $input->param('op');
@@ -105,17 +104,19 @@ if($op && ($op eq 'new' || $op eq 'modify')) {
     my @frequencies = GetSubscriptionFrequencies();
     my @subtypes;
     push @subtypes, { value => $_ } for (qw/ issues weeks months /);
-    my @locales = map {
-        chomp;
-        /^C|^POSIX$/ ? () : $_
-    } `locale -a`;
+
+    my $languages = [ map {
+        {
+            language => $_->{iso639_2_code},
+            description => $_->{language_description} || $_->{language}
+        }
+    } @{ C4::Languages::getAllLanguages() } ];
 
     $template->param(
         $op => 1,
         frequencies_loop => \@frequencies,
         subtypes_loop => \@subtypes,
-        locales => \@locales,
-        DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+        locales => $languages,
     );
     output_html_with_http_headers $input, $cookie, $template->output;
     exit;