Bug 766: Remove CGI::scrollinglist from marctagstructure.pl
[srvgit] / admin / marctagstructure.pl
index a20f77c..c914442 100755 (executable)
@@ -48,11 +48,11 @@ my $dbh = C4::Context->dbh;
 
 # open template
 my ($template, $loggedinuser, $cookie)
-    = get_template_and_user({template_name => "admin/marctagstructure.tmpl",
+    = get_template_and_user({template_name => "admin/marctagstructure.tt",
                             query => $input,
                             type => "intranet",
                             authnotrequired => 0,
-                            flagsrequired => {parameters => 1},
+                 flagsrequired => {parameters => 'parameters_remaining_permissions'},
                             debug => 1,
                             });
 
@@ -100,42 +100,27 @@ if ($op eq 'add_form') {
                $sth->execute($searchfield,$frameworkcode);
                $data=$sth->fetchrow_hashref;
        }
-       my $sth = $dbh->prepare("select distinct category from authorised_values");
-       $sth->execute;
-       my @authorised_values;
-       push @authorised_values,"";
-       while ((my $category) = $sth->fetchrow_array) {
-               push @authorised_values, $category;
-       }
-       my $authorised_value  = CGI::scrolling_list(-name=>'authorised_value',
-                       -values=> \@authorised_values,
-                       -size=>1,
-                       -id=>"authorised_value",
-                       -multiple=>0,
-                       -default => $data->{'authorised_value'},
-                       );
+
+    my @authorised_values = @{C4::Koha::GetAuthorisedValueCategories()};    # function returns array ref, dereferencing
+    unshift @authorised_values, "";                                         # put empty value first
+    my $authorised_value = {
+        values  => \@authorised_values,
+        default => $data->{'authorised_value'},
+    };
 
        if ($searchfield) {
         $template->param(searchfield => $searchfield);
                $template->param(action => "Modify tag");
-               $template->param('heading-modify-tag-p' => 1);
+               $template->param('heading_modify_tag_p' => 1);
        } else {
                $template->param(action => "Add tag");
-               $template->param('heading-add-tag-p' => 1);
+               $template->param('heading_add_tag_p' => 1);
        }
-       $template->param('use-heading-flags-p' => 1);
+       $template->param('use_heading_flags_p' => 1);
        $template->param(liblibrarian => $data->{'liblibrarian'},
                        libopac => $data->{'libopac'},
-                       repeatable => CGI::checkbox(-name=>'repeatable',
-                                               -checked=> $data->{'repeatable'}?'checked':'',
-                                               -value=> 1,
-                                               -label => '',
-                                               -id=> 'repeatable'),
-                       mandatory => CGI::checkbox(-name => 'mandatory',
-                                               -checked => $data->{'mandatory'}?'checked':'',
-                                               -value => 1,
-                                               -label => '',
-                                               -id => 'mandatory'),
+            repeatable => $data->{'repeatable'},
+            mandatory => $data->{'mandatory'},
                        authorised_value => $authorised_value,
                        frameworkcode => $frameworkcode,
     );  # FIXME: move checkboxes to presentation layer
@@ -149,7 +134,7 @@ if ($op eq 'add_form') {
        my $repeatable       = $input->param('repeatable') ? 1 : 0;
        my $mandatory        = $input->param('mandatory')  ? 1 : 0;
        my $authorised_value = $input->param('authorised_value');
-    unless (C4::Context->config('demo') == 1) {
+    unless (C4::Context->config('demo')) {
         if ($input->param('modif')) {
             $sth = $dbh->prepare(
             "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,authorised_value=? WHERE frameworkcode=? AND tagfield=?"
@@ -194,7 +179,7 @@ if ($op eq 'add_form') {
 ################## DELETE_CONFIRMED ##################################
 # called by delete_confirm, used to effectively confirm deletion of data in DB
 } elsif ($op eq 'delete_confirmed') {
-       unless (C4::Context->config('demo') == 1) {
+       unless (C4::Context->config('demo')) {
         my $sth1 = $dbh->prepare("DELETE FROM marc_tag_structure      WHERE tagfield=? AND frameworkcode=?");
         my $sth2 = $dbh->prepare("DELETE FROM marc_subfield_structure WHERE tagfield=? AND frameworkcode=?");
         $sth1->execute($searchfield, $frameworkcode);
@@ -267,7 +252,7 @@ if ($op eq 'add_form') {
                        $row_data{delete}        = "$script_name?op=delete_confirm&searchfield="      .$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
                        $j=$i;
                        my @internal_loop = ();
-                       while ( ( $results[$i]->{'tagfield'} == $results[$j]->{'tagfield'} ) and ( $j < $cnt ) ) {
+                       while ( ( $j < $cnt ) and ( $results[$i]->{'tagfield'} == $results[$j]->{'tagfield'} ) ) {
                                my %subfield_data;
                                $subfield_data{tagsubfield}      = $results[$j]->{'tagsubfield'};
                                $subfield_data{liblibrarian}     = $results[$j]->{'liblibrarian'};
@@ -348,6 +333,7 @@ sub StringSearch  {
 #
 sub duplicate_framework {
        my ($newframeworkcode,$oldframeworkcode) = @_;
+       my $dbh = C4::Context->dbh;
        my $sth = $dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where frameworkcode=?");
        $sth->execute($oldframeworkcode);
        my $sth_insert = $dbh->prepare("insert into marc_tag_structure (tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, frameworkcode) values (?,?,?,?,?,?,?)");