Bugzilla – Attachment 49388 Details for
Bug 15773
Checkboxes do not work correctly when creating a new subfield for an authority framework
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 15773: Fix and standardise checkboxes code in framework
Bug-15773-Fix-and-standardise-checkboxes-code-in-f.patch (text/plain), 46.25 KB, created by
Jonathan Druart
on 2016-03-21 14:41:22 UTC
(
hide
)
Description:
Bug 15773: Fix and standardise checkboxes code in framework
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2016-03-21 14:41:22 UTC
Size:
46.25 KB
patch
obsolete
>From fd606bef4d60391aed9ba3b379dcb3756cdb1590 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Tue, 9 Feb 2016 17:02:05 +0000 >Subject: [PATCH] Bug 15773: Fix and standardise checkboxes code in framework > >When creating a new subfield for an authority framework, the checkboxes >don't behave as they should. >If you click on the 'repeatable', 'mandatory' or 'is url' checkbox's >label, the checkbox from the second tab will be checked/unchecked. >This is caused by a non-unique id of the input element. > >I have found this bug when working on the removal of CGI::checkbox in >both admin/auth_subfields_structure.pl and >admin/marc_subfields_structure.pl scripts. > >This patch remove the use of CGI::checkbox as well as the generation of >html code from these 2 pl scripts (which should be avoided). >The code these scripts are now pretty similar. > >Test plan: >Add/modify/remove subfield for a MARC framework and an Authority >framework. >Use as many field as possible and confirm that the values are correctly >inserted/displayed. > >Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com> >Works as advertised >--- > admin/auth_subfields_structure.pl | 179 ++++++-------------- > admin/marc_subfields_structure.pl | 183 ++++++--------------- > .../en/modules/admin/auth_subfields_structure.tt | 100 ++++++----- > .../en/modules/admin/marc_subfields_structure.tt | 74 ++++++--- > 4 files changed, 209 insertions(+), 327 deletions(-) > >diff --git a/admin/auth_subfields_structure.pl b/admin/auth_subfields_structure.pl >index f06ee4f..e26aa79 100755 >--- a/admin/auth_subfields_structure.pl >+++ b/admin/auth_subfields_structure.pl >@@ -17,8 +17,7 @@ > # 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; FIXME - Bug 2505 >+use Modern::Perl; > use C4::Output; > use C4::Auth; > use CGI qw ( -utf8 ); >@@ -52,7 +51,7 @@ my $input = new CGI; > my $tagfield = $input->param('tagfield'); > my $tagsubfield = $input->param('tagsubfield'); > my $authtypecode = $input->param('authtypecode'); >-my $offset = $input->param('offset'); >+my $offset = $input->param('offset') || 0; > my $op = $input->param('op') || ''; > my $script_name = "/cgi-bin/koha/admin/auth_subfields_structure.pl"; > >@@ -84,8 +83,6 @@ my $dbh = C4::Context->dbh; > ################## ADD_FORM ################################## > # called by default. Used to create form to add or modify a record > if ($op eq 'add_form') { >- my $data; >- my $more_subfields = $input->param("more_subfields")+1; > # builds kohafield tables > my @kohafields; > push @kohafields, ""; >@@ -130,133 +127,58 @@ if ($op eq 'add_form') { > $sth->execute($tagfield,$authtypecode); > my @loop_data = (); > my $i=0; >- while ($data =$sth->fetchrow_hashref) { >- >- my %row_data; # get a fresh hash for the row data >- $row_data{defaultvalue} = $data->{defaultvalue}; >- $row_data{tab} = { >- id => "tab$i", >- default => $data->{'tab'}, >- }; >- $row_data{ohidden} = { >- id => "ohidden$i", >- default => $data->{'hidden'} >- }; >- $row_data{tagsubfieldinput} = "<input type=\"hidden\" name=\"tagsubfield\" value=\"".$data->{'tagsubfield'}."\" id=\"tagsubfield\" />"; >- $row_data{tagsubfield} = $data->{'tagsubfield'}; >- $row_data{liblibrarian} = CGI::escapeHTML($data->{'liblibrarian'}); >- $row_data{libopac} = CGI::escapeHTML($data->{'libopac'}); >- $row_data{seealso} = CGI::escapeHTML($data->{'seealso'}); >- $row_data{kohafield} = { >- id => "kohafield$i", >- values => \@kohafields, >- default => "$data->{'kohafield'}", >- }; >- $row_data{authorised_value} = { >- id => "authorised_value$i", >- values => $authorised_values, >- default => $data->{'authorised_value'}, >- }; >- $row_data{frameworkcode} = { >- id => "frameworkcode$i", >- values => \@authtypes, >- default => $data->{'frameworkcode'}, >- }; >- $row_data{value_builder} = { >- id => "value_builder$i", >- values => \@value_builder, >- default => $data->{'value_builder'}, >- }; >- >- $row_data{repeatable} = CGI::checkbox(-name=>"repeatable$i", >- -checked => $data->{'repeatable'}?'checked':'', >- -value => 1, >- -label => '', >- -id => "repeatable$i"); >- $row_data{mandatory} = CGI::checkbox(-name => "mandatory$i", >- -checked => $data->{'mandatory'}?'checked':'', >- -value => 1, >- -label => '', >- -id => "mandatory$i"); >- $row_data{hidden} = CGI::escapeHTML($data->{hidden}) ; >- $row_data{isurl} = CGI::checkbox( -name => "isurl$i", >- -id => "isurl$i", >- -checked => $data->{'isurl'}?'checked':'', >- -value => 1, >- -label => ''); >- $row_data{row} = $i; >- push(@loop_data, \%row_data); >- $i++; >- } >- # add more_subfields empty lines for add if needed >- for (my $i=1;$i<=$more_subfields;$i++) { >- my %row_data; # get a fresh hash for the row data >- $row_data{'new_subfield'} = 1; >- $row_data{tab} = { >- id => "tab$i", >- default => $data->{'tab'}, >- }; >- $row_data{ohidden} = { >- id => "ohidden$i", >- default => $data->{'hidden'} >- }; >+ while ( my $data = $sth->fetchrow_hashref ) { >+ my %row_data; # get a fresh hash for the row data >+ $row_data{defaultvalue} = $data->{defaultvalue}; >+ $row_data{tab} = $data->{tab}; >+ $row_data{ohidden} = $data->{'hidden'}; >+ $row_data{tagsubfield} = $data->{'tagsubfield'}; >+ $row_data{liblibrarian} = $data->{'liblibrarian'}; >+ $row_data{libopac} = $data->{'libopac'}; >+ $row_data{seealso} = $data->{'seealso'}; >+ $row_data{kohafields} = \@kohafields; >+ $row_data{kohafield} = $data->{'kohafield'}; >+ $row_data{authorised_values} = $authorised_values; >+ $row_data{authorised_value} = $data->{'authorised_value'}; >+ $row_data{frameworkcodes} = \@authtypes; >+ $row_data{frameworkcode} = $data->{'frameworkcode'}; >+ $row_data{value_builders} = \@value_builder; >+ $row_data{value_builder} = $data->{'value_builder'}; >+ $row_data{repeatable} = $data->{repeatable}; >+ $row_data{mandatory} = $data->{mandatory}; >+ $row_data{hidden} = $data->{hidden}; >+ $row_data{isurl} = $data->{isurl}; >+ $row_data{row} = $i; >+ push( @loop_data, \%row_data ); >+ $i++; >+ } > >- $row_data{tagsubfieldinput} = "<input type=\"text\" name=\"tagsubfield\" value=\"".$data->{'tagsubfield'}."\" size=\"1\" id=\"tagsubfield\" maxlength=\"1\" />"; >- $row_data{tagsubfieldinput} = >- "<label><input type=\"text\" name=\"tagsubfield\" value=\"" >- . $data->{'tagsubfield'} >- . "\" size=\"1\" id=\"tagsubfield\" maxlength=\"1\" /></label>"; >- $row_data{tagsubfield} = $data->{'tagsubfield'}; >- $row_data{liblibrarian} = ""; >- $row_data{libopac} = ""; >- $row_data{seealso} = ""; >- $row_data{hidden} = "000"; >- $row_data{repeatable} = CGI::checkbox( -name=> 'repeatable', >- -id => "repeatable$i", >- -checked => '', >- -value => 1, >- -label => ''); >- $row_data{mandatory} = CGI::checkbox( -name=> 'mandatory', >- -id => "mandatory$i", >- -checked => '', >- -value => 1, >- -label => ''); >- $row_data{isurl} = CGI::checkbox(-name => 'isurl', >- -id => "isurl$i", >- -checked => '', >- -value => 1, >- -label => ''); >- $row_data{kohafield} = { >- id => "kohafield$i", >- values => \@kohafields, >- default => "", >- }; >- $row_data{authorised_value} = { >- id => "authorised_value", >- values => $authorised_values, >- default => "", >- }; >- $row_data{frameworkcode} = { >- id => "frameworkcode", >- values => \@authtypes, >- default => $data->{'frameworkcode'}, >- }; >- $row_data{value_builder} = { >- id => "value_builder", >- values => \@value_builder, >- default => $data->{'value_builder'}, >- }; >+ # Add a new row for the "New" tab >+ my %row_data; # get a fresh hash for the row data >+ $row_data{'new_subfield'} = 1; >+ $row_data{tab} = -1; # ignore >+ $row_data{ohidden} = 0; # show all >+ $row_data{tagsubfield} = ""; >+ $row_data{liblibrarian} = ""; >+ $row_data{libopac} = ""; >+ $row_data{seealso} = ""; >+ $row_data{hidden} = "000"; >+ $row_data{repeatable} = 0; >+ $row_data{mandatory} = 0; >+ $row_data{isurl} = 0; >+ $row_data{kohafields} = \@kohafields, >+ $row_data{authorised_values} = $authorised_values; >+ $row_data{frameworkcodes} = \@authtypes; >+ $row_data{value_builders} = \@value_builder; >+ $row_data{row} = $i; >+ push( @loop_data, \%row_data ); > >- $row_data{row} = $i; >- push(@loop_data, \%row_data); >- } > $template->param('use_heading_flags_p' => 1); > $template->param('heading_edit_subfields_p' => 1); > $template->param(action => "Edit subfields", > tagfield => $tagfield, > tagfieldinput => "<input type=\"hidden\" name=\"tagfield\" value=\"$tagfield\" />", > loop => \@loop_data, >- more_subfields => $more_subfields, > more_tag => $tagfield); > > # END $OP eq ADD_FORM >@@ -276,9 +198,7 @@ if ($op eq 'add_form') { > my @kohafield = ''.$input->param('kohafield'); > my @tab = $input->param('tab'); > my @seealso = $input->param('seealso'); >- my @ohidden = $input->param('ohidden'); >- #my @ihidden = $input->param('ihidden'); >- #my @ehidden = $input->param('ehidden'); >+ my @ohidden = $input->param('ohidden'); > my @authorised_values = $input->param('authorised_value'); > my $authtypecode = $input->param('authtypecode'); > my @frameworkcodes = $input->param('frameworkcode'); >@@ -299,11 +219,10 @@ if ($op eq 'add_form') { > my $frameworkcode =$frameworkcodes[$i]; > my $value_builder=$value_builder[$i]; > my $defaultvalue = $defaultvalue[$i]; >- #my $hidden = $ohidden[$i].$ihidden[$i].$ehidden[$i]; #collate from 3 hiddens; > my $hidden = $ohidden[$i]; #collate from 3 hiddens; > my $isurl = $input->param("isurl$i")?1:0; > if ($liblibrarian) { >- unless (C4::Context->config('demo') eq 1) { >+ unless (C4::Context->config('demo') or C4::Context->config('demo') eq 1) { > if (auth_subfield_structure_exists($authtypecode, $tagfield, $tagsubfield)) { > $sth_update->execute( > $authtypecode, >@@ -372,7 +291,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') eq 1) { >+ unless (C4::Context->config('demo') or C4::Context->config('demo') eq 1) { > my $sth=$dbh->prepare("delete from auth_subfield_structure where tagfield=? and tagsubfield=? and authtypecode=?"); > $sth->execute($tagfield,$tagsubfield,$authtypecode); > } >diff --git a/admin/marc_subfields_structure.pl b/admin/marc_subfields_structure.pl >index e6d2231..979d7ec 100755 >--- a/admin/marc_subfields_structure.pl >+++ b/admin/marc_subfields_structure.pl >@@ -17,8 +17,7 @@ > # 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; FIXME - Bug 2505 >+use Modern::Perl; > use C4::Output; > use C4::Auth; > use CGI qw ( -utf8 ); >@@ -65,7 +64,7 @@ my $tagfield = $input->param('tagfield'); > my $tagsubfield = $input->param('tagsubfield'); > my $frameworkcode = $input->param('frameworkcode'); > my $pkfield = "tagfield"; >-my $offset = $input->param('offset'); >+my $offset = $input->param('offset') || 0; > my $script_name = "/cgi-bin/koha/admin/marc_subfields_structure.pl"; > > my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >@@ -80,7 +79,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( > ); > my $cache = Koha::Cache->get_instance(); > >-my $op = $input->param('op'); >+my $op = $input->param('op') || ""; > $tagfield =~ s/\,//g; > > if ($op) { >@@ -103,9 +102,7 @@ else { > ################## ADD_FORM ################################## > # called by default. Used to create form to add or modify a record > if ( $op eq 'add_form' ) { >- my $data; > my $dbh = C4::Context->dbh; >- my $more_subfields = $input->param("more_subfields") + 1; > > # builds kohafield tables > my @kohafields; >@@ -173,135 +170,56 @@ if ( $op eq 'add_form' ) { > $sth->execute( $tagfield, $frameworkcode ); > my @loop_data = (); > my $i = 0; >- while ( $data = $sth->fetchrow_hashref ) { >+ while ( my $data = $sth->fetchrow_hashref ) { > my %row_data; # get a fresh hash for the row data >- $row_data{defaultvalue} = $data->{defaultvalue}; >- $row_data{maxlength} = $data->{maxlength}; >- $row_data{tab} = { >- id => "tab$i", >- default => $data->{'tab'}, >- }; >- >- $row_data{tagsubfield} = >- $data->{'tagsubfield'} >- . "<input type=\"hidden\" name=\"tagsubfield\" value=\"" >- . $data->{'tagsubfield'} >- . "\" id=\"tagsubfield\" />"; >- $row_data{subfieldcode} = $data->{'tagsubfield'} eq '@'?'_':$data->{'tagsubfield'}; >- $row_data{urisubfieldcode} = $row_data{subfieldcode} eq '%' ? 'pct' : $row_data{subfieldcode}; >- $row_data{liblibrarian} = CGI::escapeHTML( $data->{'liblibrarian'} ); >- $row_data{libopac} = CGI::escapeHTML( $data->{'libopac'} ); >- $row_data{seealso} = CGI::escapeHTML( $data->{'seealso'} ); >- $row_data{kohafield} = { >- id => "kohafield$i", >- values => \@kohafields, >- default => "$data->{'kohafield'}", >- }; >- $row_data{authorised_value} = { >- id => "authorised_value$i", >- values => \@authorised_values, >- default => $data->{'authorised_value'}, >- }; >- $row_data{value_builder} = { >- id => "value_builder$i", >- values => \@value_builder, >- default => $data->{'value_builder'}, >- }; >- $row_data{authtypes} = { >- id => "authtypecode$i", >- values => \@authtypes, >- default => $data->{'authtypecode'}, >- }; >- $row_data{repeatable} = CGI::checkbox( >- -name => "repeatable$i", >- -checked => $data->{'repeatable'} ? 'checked' : '', >- -value => 1, >- -label => '', >- -id => "repeatable$i" >- ); >- $row_data{mandatory} = CGI::checkbox( >- -name => "mandatory$i", >- -checked => $data->{'mandatory'} ? 'checked' : '', >- -value => 1, >- -label => '', >- -id => "mandatory$i" >- ); >- $row_data{hidden} = CGI::escapeHTML( $data->{hidden} ); >- $row_data{isurl} = CGI::checkbox( >- -name => "isurl$i", >- -id => "isurl$i", >- -checked => $data->{'isurl'} ? 'checked' : '', >- -value => 1, >- -label => '' >- ); >- $row_data{row} = $i; >- $row_data{link} = CGI::escapeHTML( $data->{'link'} ); >+ $row_data{defaultvalue} = $data->{defaultvalue}; >+ $row_data{maxlength} = $data->{maxlength}; >+ $row_data{tab} = $data->{tab}; >+ $row_data{tagsubfield} = $data->{tagsubfield}; >+ $row_data{subfieldcode} = $data->{'tagsubfield'} eq '@' ? '_' : $data->{'tagsubfield'}; >+ $row_data{urisubfieldcode} = $row_data{subfieldcode} eq '%' ? 'pct' : $row_data{subfieldcode}; >+ $row_data{liblibrarian} = $data->{'liblibrarian'}; >+ $row_data{libopac} = $data->{'libopac'}; >+ $row_data{seealso} = $data->{'seealso'}; >+ $row_data{kohafields} = \@kohafields; >+ $row_data{kohafield} = $data->{kohafield}; >+ $row_data{authorised_values} = \@authorised_values; >+ $row_data{authorised_value} = $data->{authorised_value}; >+ $row_data{value_builders} = \@value_builder; >+ $row_data{value_builder} = $data->{'value_builder'}; >+ $row_data{authtypes} = \@authtypes; >+ $row_data{authtypecode} = $data->{'authtypecode'}; >+ $row_data{repeatable} = $data->{repeatable}; >+ $row_data{mandatory} = $data->{mandatory}; >+ $row_data{hidden} = $data->{hidden}; >+ $row_data{isurl} = $data->{isurl}; >+ $row_data{row} = $i; >+ $row_data{link} = $data->{'link'}; > push( @loop_data, \%row_data ); > $i++; > } > >- # add more_subfields empty lines for add if needed >- my %row_data; # get a fresh hash for the row data >- $row_data{'new_subfield'} = 1; >- $row_data{'subfieldcode'} = ''; >- $row_data{'maxlength'} = 9999; >- >- $row_data{tab} = { >- id => "tab$i", >- default => $data->{'tab'}, >- }; >- $row_data{tagsubfield} = >- "<input type=\"text\" name=\"tagsubfield\" value=\"" >- . $data->{'tagsubfield'} >- . "\" size=\"1\" id=\"tagsubfield\" maxlength=\"1\" />"; >- $row_data{liblibrarian} = ""; >- $row_data{libopac} = ""; >- $row_data{seealso} = ""; >- $row_data{kohafield} = { >- id => "kohafield$i", >- values => \@kohafields, >- default => "$data->{'kohafield'}", >- }; >- $row_data{hidden} = ""; >- $row_data{repeatable} = CGI::checkbox( >- -name => "repeatable$i", >- -id => "repeatable$i", >- -checked => '', >- -value => 1, >- -label => '' >- ); >- $row_data{mandatory} = CGI::checkbox( >- -name => "mandatory$i", >- -id => "mandatory$i", >- -checked => '', >- -value => 1, >- -label => '' >- ); >- $row_data{isurl} = CGI::checkbox( >- -name => "isurl$i", >- -id => "isurl$i", >- -checked => '', >- -value => 1, >- -label => '' >- ); >- $row_data{value_builder} = { >- id => "value_builder$i", >- values => \@value_builder, >- default => $data->{'value_builder'}, >- }; >- $row_data{authorised_value} = { >- id => "authorised_value$i", >- values => \@authorised_values, >- default => $data->{'authorised_value'}, >- }; >- $row_data{authtypes} = { >- id => "authtypecode$i", >- values => \@authtypes, >- default => $data->{'authtypecode'}, >- }; >- $row_data{link} = CGI::escapeHTML( $data->{'link'} ); >- $row_data{row} = $i; >- push( @loop_data, \%row_data ); >+ # Add a new row for the "New" tab >+ my %row_data; # get a fresh hash for the row data >+ $row_data{'new_subfield'} = 1; >+ $row_data{'subfieldcode'} = ''; >+ $row_data{'maxlength'} = 9999; >+ $row_data{tab} = -1; #ignore >+ $row_data{tagsubfield} = ""; >+ $row_data{liblibrarian} = ""; >+ $row_data{libopac} = ""; >+ $row_data{seealso} = ""; >+ $row_data{hidden} = ""; >+ $row_data{repeatable} = 0; >+ $row_data{mandatory} = 0; >+ $row_data{isurl} = 0; >+ $row_data{kohafields} = \@kohafields; >+ $row_data{authorised_values} = \@authorised_values; >+ $row_data{value_builders} = \@value_builder; >+ $row_data{authtypes} = \@authtypes; >+ $row_data{link} = ""; >+ $row_data{row} = $i; >+ push( @loop_data, \%row_data ); > > $template->param( 'use_heading_flags_p' => 1 ); > $template->param( 'heading_edit_subfields_p' => 1 ); >@@ -309,7 +227,6 @@ if ( $op eq 'add_form' ) { > action => "Edit subfields", > tagfield => $tagfield, > loop => \@loop_data, >- more_subfields => $more_subfields, > more_tag => $tagfield > ); > >@@ -368,7 +285,7 @@ elsif ( $op eq 'add_validate' ) { > my $maxlength = $maxlength[$i] ? $maxlength[$i] : 9999; > > if (defined($liblibrarian) && $liblibrarian ne "") { >- unless ( C4::Context->config('demo') eq 1 ) { >+ unless ( C4::Context->config('demo') or C4::Context->config('demo') eq 1 ) { > if (marc_subfield_structure_exists($tagfield, $tagsubfield, $frameworkcode)) { > $sth_update->execute( > $tagfield, >@@ -457,7 +374,7 @@ elsif ( $op eq 'delete_confirm' ) { > } > elsif ( $op eq 'delete_confirmed' ) { > my $dbh = C4::Context->dbh; >- unless ( C4::Context->config('demo') eq 1 ) { >+ unless ( C4::Context->config('demo') or C4::Context->config('demo') eq 1 ) { > my $sth = > $dbh->prepare( > "delete from marc_subfield_structure where tagfield=? and tagsubfield=? and frameworkcode=?" >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/auth_subfields_structure.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/auth_subfields_structure.tt >index 0d5bff3..7caceca 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/auth_subfields_structure.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/auth_subfields_structure.tt >@@ -49,9 +49,9 @@ > <ul> > [% FOREACH loo IN loop %] > [% IF ( loo.new_subfield ) %] >- <li><a href="#sub[% loo.tagsubfield %]field" title="[% loo.liblibrarian %]">New</a></li> >+ <li><a href="#sub[% loo.tagsubfield %]field" title="[% loo.liblibrarian | html_entity %]">New</a></li> > [% ELSE %] >- <li><a href="#sub[% loo.tagsubfield %]field" title="[% loo.liblibrarian %]"> >+ <li><a href="#sub[% loo.tagsubfield %]field" title="[% loo.liblibrarian | html_entity %]"> > [% loo.tagsubfield %] > </a></li> > [% END %] >@@ -62,28 +62,45 @@ > <div id="sub[% loo.tagsubfield %]field"> > <fieldset class="rows"><ol> > >- [% IF ( loo.new_subfield ) %] >- <li><label for="tagsubfieldinput[% loo.row %]">Subfield code: </label>[% loo.tagsubfieldinput %] </li> >+ [% IF ( loo.new_subfield ) %] >+ <li> >+ <label for="tagsubfieldinput[% loo.row %]">Subfield code: </label> >+ <input type="text" name="tagsubfield" value="[% loo.tagsubfield %]" size="1" id="tagsubfield" maxlength="1" /> >+ </li> >+ [% ELSE %] >+ <li> >+ <input type="hidden" name="tagsubfield" value="[% loo.tagsubfield %]" /> >+ </li> >+ [% END %] >+ <li> >+ <label for="repeatable[% loo.row %]">Repeatable: </label> >+ [% IF loo.repeatable %] >+ <input type="checkbox" id="repeatable[% loo.row %]" name="repeatable[% loo.row %]" checked="checked" value="1" /> > [% ELSE %] >+ <input type="checkbox" id="repeatable[% loo.row %]" name="repeatable[% loo.row %]" value="1" /> >+ [% END %] >+ </li> > <li> >- <input type="hidden" name="tagsubfield" value="[% loo.tagsubfield %]" /> >- </li> >+ <label for="mandatory[% loo.row %]">Mandatory: </label> >+ [% IF loo.mandatory %] >+ <input type="checkbox" id="mandatory[% loo.row %]" name="mandatory[% loo.row %]" checked="checked" value="1" /> >+ [% ELSE %] >+ <input type="checkbox" id="mandatory[% loo.row %]" name="mandatory[% loo.row %]" value="1" /> > [% END %] >- <li><label for="repeatable[% loo.row %]">Repeatable: </label>[% loo.repeatable %] </li> >- <li><label for="mandatory[% loo.row %]">Mandatory: </label>[% loo.mandatory %] </li> >- <li><label for="liblibrarian[% loo.row %]">Text for librarian: </label><input id="liblibrarian[% loo.row %]" type="text" name="liblibrarian" value="[% loo.liblibrarian %]" size="40" maxlength="80" /></li> >- <li><label for="libopac[% loo.row %]">Text for OPAC: </label><input type="text" id="libopac[% loo.row %]" name="libopac" value="[% loo.libopac %]" size="40" maxlength="80" /></li> >+ </li> >+ <li><label for="liblibrarian[% loo.row %]">Text for librarian: </label><input id="liblibrarian[% loo.row %]" type="text" name="liblibrarian" value="[% loo.liblibrarian | html_entity %]" size="40" maxlength="80" /></li> >+ <li><label for="libopac[% loo.row %]">Text for OPAC: </label><input type="text" id="libopac[% loo.row %]" name="libopac" value="[% loo.libopac | html_entity %]" size="40" maxlength="80" /></li> > <li><label for="tab[% loo.row %]">Managed in tab: </label> >- <select name="tab" size="1" id="[% loo.tab.id %]"> >- [%- IF ( loo.tab.default == -1 ) -%] >+ <select name="tab" size="1" id="tab[% loo.row %]"> >+ [%- IF ( loo.tab == -1 ) -%] > <option value="-1" selected="selected">ignore</option> > [%- ELSE -%] > <option value="-1">ignore</option> > [%- END -%] > [%- FOREACH t IN [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] -%] >- [%- IF ( loo.tab.default == t && t.length>0 ) -%] >+ [%- IF ( loo.tab == t && t.length>0 ) -%] > <option value="[%- t -%]" selected="selected">[%- t -%]</option> >- [%- ELSIF ( loo.tab.default == t ) -%] >+ [%- ELSIF ( loo.tab == t ) -%] > <option value="[%- t -%]" selected="selected"> </option> > [%- ELSE -%] > <option value="[%- t -%]">[%- t -%]</option> >@@ -97,11 +114,11 @@ > <legend>Display</legend> > <ol> > <li><label for="ohidden[% loo.row %]">Select to display or not:</label> >- <select name="ohidden" size="1" id="[% loo.ohidden.id %]"> >- [%- IF ( loo.ohidden.default == 0 ) -%] >+ <select name="ohidden" size="1" id="ohidden[% loo.row %]"> >+ [%- IF ( loo.ohidden == 0 ) -%] > <option value= "0" selected="selected">Show all</option> > <option value="-5">Hide all</option> >- [%- ELSIF ( loo.ohidden.default == -5 ) -%] >+ [%- ELSIF ( loo.ohidden == -5 ) -%] > <option value= "0">Show all</option> > <option value="-5" selected="selected">Hide all</option> > [%- ELSE -%] >@@ -117,7 +134,15 @@ > <fieldset class="rows"> > <legend>Advanced constraints:</legend> > <ol> >- <li><label for="isurl[% loo.row %]">Is a URL:</label>[% loo.isurl %] (if checked, it means that the subfield is a URL and can be clicked)</li> >+ <li> >+ <label for="isurl[% loo.row %]">Is a URL:</label> >+ [% IF loo.isurl %] >+ <input type="checkbox" id="isurl[% loo.row %]" name="isurl[% loo.row %]" checked="checked" value="1" /> >+ [% ELSE %] >+ <input type="checkbox" id="isurl[% loo.row %]" name="isurl[% loo.row %]" value="1" /> >+ [% END %] >+ (if checked, it means that the subfield is a URL and can be clicked) >+ </li> > <li> > <label for="defaultvalue[% loo.row %]">Default value:</label> > <input type="text" name="defaultvalue" id="defaultvalue[% loo.row %]" value="[% loo.defaultvalue %]" /> >@@ -130,11 +155,11 @@ > <ol> > <li> > <label for="kohafield[% loo.row %]">Koha field:</label> >- <select name="kohafield" id="[% loo.kohafield.id %]" size="1"> >- [%- FOREACH value IN loo.kohafield.values %] >- [% IF ( value == loo.kohafield.default && value.length>0 ) -%] >+ <select name="kohafield" id="kohafield[% loo.row %]" size="1"> >+ [%- FOREACH value IN loo.kohafields %] >+ [% IF ( value == loo.kohafield && value.length>0 ) -%] > <option value="[% value %]" selected="selected">[% value %]</option> >- [%- ELSIF ( value == loo.kohafield.default ) -%] >+ [%- ELSIF ( value == loo.kohafield ) -%] > <option value="[% value %]" selected="selected"> </option> > [%- ELSIF ( value.length==0 ) -%] > <option value="[% value %]"> </option> >@@ -146,11 +171,11 @@ > </li> > <li> > <label for="authorised_value[% loo.row %]">Authorized value:</label> >- <select name="authorised_value" id="[% loo.authorised_value.id %]" size="1"> >- [%- FOREACH value IN loo.authorised_value.values %] >- [% IF ( value == loo.authorised_value.default && value.length>0 ) -%] >+ <select name="authorised_value" id="authorised_value[% loo.row %]" size="1"> >+ [%- FOREACH value IN loo.authorised_values %] >+ [% IF ( value == loo.authorised_value && value.length>0 ) -%] > <option value="[% value %]" selected="selected">[% value %]</option> >- [%- ELSIF ( value == loo.authorised_value.default ) -%] >+ [%- ELSIF ( value == loo.authorised_value ) -%] > <option value="[% value %]" selected> </option> > [%- ELSIF ( value.length==0 ) -%] > <option value="[% value %]"> </option> >@@ -162,11 +187,11 @@ > </li> > <li> > <label for="frameworkcode[% loo.row %]">Thesaurus:</label> >- <select name="frameworkcode" id="[% loo.frameworkcode.id %]" size="1"> >- [%- FOREACH value IN loo.frameworkcode.values %] >- [% IF ( value == loo.frameworkcode.default && value.length>0 ) -%] >+ <select name="frameworkcode" id="frameworkcode[% loo.row %]" size="1"> >+ [%- FOREACH value IN loo.frameworkcodes %] >+ [% IF ( value == loo.frameworkcode && value.length>0 ) -%] > <option value="[% value %]" selected="selected">[% value %]</option> >- [%- ELSIF ( value == loo.frameworkcode.default ) -%] >+ [%- ELSIF ( value == loo.frameworkcode ) -%] > <option value="[% value %]" selected="selected"> </option> > [%- ELSIF ( value.length==0 ) -%] > <option value="[% value %]"> </option> >@@ -178,11 +203,11 @@ > </li> > <li> > <label for="value_builder[% loo.row %]">Plugin:</label> >- <select name="value_builder" id="[% loo.value_builder.id %]" size="1"> >- [%- FOREACH value IN loo.value_builder.values %] >- [% IF ( value == loo.value_builder.default && value.length>0 ) -%] >+ <select name="value_builder" id="value_builder[% loo.row %]" size="1"> >+ [%- FOREACH value IN loo.value_builders %] >+ [% IF ( value == loo.value_builder && value.length>0 ) -%] > <option value="[% value %]" selected="selected">[% value %]</option> >- [%- ELSIF ( value == loo.value_builder.default ) -%] >+ [%- ELSIF ( value == loo.value_builder ) -%] > <option value="[% value %]" selected="selected"> </option> > [%- ELSIF ( value.length==0 ) -%] > <option value="[% value %]"> </option> >@@ -210,7 +235,7 @@ > <input type="hidden" name="op" value="delete_confirmed" /> > <table> > <tr><th scope="row">Subfield:</th> <td>[% tagsubfield %]</td></tr> >- <tr><th scope="row">Description:</th> <td>[% liblibrarian %]</td></tr> >+ <tr><th scope="row">Description:</th> <td>[% liblibrarian | html_entity %]</td></tr> > </table> > <input type="hidden" name="searchfield" value="[% searchfield %]" /> > <input type="hidden" name="tagfield" value="[% tagfield%]" /> >@@ -219,7 +244,6 @@ > <button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> Yes, delete this subfield</button> > </form> > >- > <form action="[% delete_link %]" method="get"> > <input type="hidden" name="searchfield" value="[% searchfield %]" /> > <input type="hidden" name="tagfield" value="[% tagfield | html %]" /> >@@ -257,9 +281,9 @@ > <td>[% loo.tagsubfield %]</td> > <td> > [% IF ( loo.subfield_ignored ) %] >- <i>[% loo.liblibrarian %]</i> >+ <i>[% loo.liblibrarian | html_entity %]</i> > [% ELSE %] >- [% loo.liblibrarian %] >+ [% loo.liblibrarian | html_entity %] > [% END %] > </td> > <td> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt >index 883d168..78e12ac 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt >@@ -46,9 +46,9 @@ > <ul> > [% FOREACH loo IN loop %] > [% IF ( loo.new_subfield ) %] >- <li><a href="#sub[% loo.urisubfieldcode %]field" title="[% loo.liblibrarian %]">New</a></li> >+ <li><a href="#sub[% loo.urisubfieldcode %]field" title="[% loo.liblibrarian | html_entity %]">New</a></li> > [% ELSE %] >- <li><a href="#sub[% loo.urisubfieldcode %]field" title="[% loo.liblibrarian %]"> >+ <li><a href="#sub[% loo.urisubfieldcode %]field" title="[% loo.liblibrarian | html_entity %]"> > [% loo.subfieldcode %] > </a></li> > [% END %] >@@ -67,25 +67,39 @@ > [% ELSE %] > <li><label for="tagsubfield[% loo.row %]">Subfield code:</label> <input type="text" id="tagsubfield[% loo.row %]" name="tagsubfield" value="[% loo.subfieldcode %]" /></li> > [% END %] >- <li><label for="liblibrarian[% loo.row %]">Text for librarian: </label><input id="liblibrarian[% loo.row %]" type="text" name="liblibrarian" value="[% loo.liblibrarian %]" size="40" maxlength="80" /></li> >- <li><label for="libopac[% loo.row %]">Text for OPAC: </label><input type="text" id="libopac[% loo.row %]" name="libopac" value="[% loo.libopac %]" size="40" maxlength="80" /></li> >- <li><label for="repeatable[% loo.row %]">Repeatable: </label>[% loo.repeatable %]</li> >- <li><label for="mandatory[% loo.row %]">Mandatory: </label>[% loo.mandatory %]</li> >+ <li><label for="liblibrarian[% loo.row %]">Text for librarian: </label><input id="liblibrarian[% loo.row %]" type="text" name="liblibrarian" value="[% loo.liblibrarian | html_entity %]" size="40" maxlength="80" /></li> >+ <li><label for="libopac[% loo.row %]">Text for OPAC: </label><input type="text" id="libopac[% loo.row %]" name="libopac" value="[% loo.libopac | html_entity %]" size="40" maxlength="80" /></li> >+ <li> >+ <label for="repeatable[% loo.row %]">Repeatable: </label> >+ [% IF loo.repeatable %] >+ <input type="checkbox" id="repeatable[% loo.row %]" name="repeatable[% loo.row %]" checked="checked" value="1" /> >+ [% ELSE %] >+ <input type="checkbox" id="repeatable[% loo.row %]" name="repeatable[% loo.row %]" value="1" /> >+ [% END %] >+ </li> >+ <li> >+ <label for="mandatory[% loo.row %]">Mandatory: </label> >+ [% IF loo.mandatory %] >+ <input type="checkbox" id="mandatory[% loo.row %]" name="mandatory[% loo.row %]" checked="checked" value="1" /> >+ [% ELSE %] >+ <input type="checkbox" id="mandatory[% loo.row %]" name="mandatory[% loo.row %]" value="1" /> >+ [% END %] >+ </li> > <li><label for="tab[% loo.row %]">Managed in tab: </label> >- <select name="tab" tabindex="" size="1" id="[% loo.tab.id %]"> >- [%- IF ( loo.tab.default == -1 ) -%] >+ <select name="tab" tabindex="" size="1" id="tab[% loo.row %]"> >+ [%- IF ( loo.tab == -1 ) -%] > <option value="-1" selected="selected">ignore</option> > [%- ELSE -%] > <option value="-1">ignore</option> > [%- END -%] > [%- FOREACH t IN [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] -%] >- [%- IF ( loo.tab.default == t ) -%] >+ [%- IF ( loo.tab == t ) -%] > <option value="[%- t -%]" selected="selected">[%- t -%]</option> > [%- ELSE -%] > <option value="[%- t -%]">[%- t -%]</option> > [%- END -%] > [%- END -%] >- [%- IF ( loo.tab.default == 10 ) -%] >+ [%- IF ( loo.tab == 10 ) -%] > <option value="10" selected="selected">items (10)</option> > [%- ELSE -%] > <option value="10">items (10)</option> >@@ -117,13 +131,21 @@ > <input type="checkbox" id="hidden_flagged_[% loo.row %]" name="flagged_[% loo.row %]"/> > <label for="hidden_flagged_[% loo.row %]" style="float: none;">Flagged</label> > </li> >- <li><label for="isurl[% loo.row %]">Is a URL:</label>[% loo.isurl %] (if checked, it means that the subfield is a URL and can be clicked)</li> >+ <li> >+ <label for="isurl[% loo.row %]">Is a URL:</label> >+ [% IF loo.isurl %] >+ <input type="checkbox" id="isurl[% loo.row %]" name="isurl[% loo.row %]" checked="checked" value="1" /> >+ [% ELSE %] >+ <input type="checkbox" id="isurl[% loo.row %]" name="isurl[% loo.row %]" value="1" /> >+ [% END %] >+ (if checked, it means that the subfield is a URL and can be clicked) >+ </li> > <li><label for="link[% loo.row %]">Link:</label><input type="text" id="link[% loo.row %]" name="link" value="[% loo.link %]" size="10" maxlength="80" /> (e.g., Title or Local-Number) <span class="error"><em>NOTE: If you change this value you must ask your administrator to run misc/batchRebuildBiblioTables.pl.</em></span></li> > <li> > <label for="kohafield[% loo.row %]">Koha link:</label> >- <select name="kohafield" id="[% loo.kohafield.id %]" size="1"> >- [% FOREACH value IN loo.kohafield.values %] >- [% IF ( value == loo.kohafield.default ) %] >+ <select name="kohafield" id="kohafield[% loo.row %]" size="1"> >+ [% FOREACH value IN loo.kohafields %] >+ [% IF ( value == loo.kohafield ) %] > <option value="[% value %]" selected="selected">[% value %]</option> > [% ELSE %] > <option value="[% value %]">[% value %]</option> >@@ -140,9 +162,9 @@ > <ol> > <li> > <label for="authorised_value[% loo.row %]">Authorized value:</label> >- <select name="authorised_value" id="[% loo.authorised_value.id %]" size="1"> >- [% FOREACH value IN loo.authorised_value.values %] >- [% IF ( value == loo.authorised_value.default ) %] >+ <select name="authorised_value" id="authorised_value[% loo.row %]" size="1"> >+ [% FOREACH value IN loo.authorised_values %] >+ [% IF ( value == loo.authorised_value ) %] > <option value="[% value %]" selected="selected">[% value %]</option> > [% ELSE %] > <option value="[% value %]">[% value %]</option> >@@ -152,9 +174,9 @@ > </li> > <li> > <label for="authtypecode[% loo.row %]">Thesaurus:</label> >- <select name="authtypecode" id="[% loo.authtypes.id %]" size="1"> >- [% FOREACH value IN loo.authtypes.values %] >- [% IF ( value == loo.authtypes.default ) %] >+ <select name="authtypecode" id="authtypecode[% loo.row %]" size="1"> >+ [% FOREACH value IN loo.authtypes %] >+ [% IF ( value == loo.authtypecode ) %] > <option value="[% value %]" selected="selected">[% value %]</option> > [% ELSE %] > <option value="[% value %]">[% value %]</option> >@@ -164,9 +186,9 @@ > </li> > <li> > <label for="value_builder[% loo.row %]">Plugin:</label> >- <select name="value_builder" id="[% loo.value_builder.id %]" size="1"> >- [% FOREACH value IN loo.value_builder.values %] >- [% IF ( value == loo.value_builder.default ) %] >+ <select name="value_builder" id="value_builder[% loo.row %]" size="1"> >+ [% FOREACH value IN loo.value_builders %] >+ [% IF ( value == loo.value_builder ) %] > <option value="[% value %]" selected="selected">[% value %]</option> > [% ELSE %] > <option value="[% value %]">[% value %]</option> >@@ -191,7 +213,7 @@ > <div class="dialog alert"> > <h3>Confirm deletion of subfield [% tagsubfield %]?</h3> > <p>Subfield: [% tagsubfield %]</p> >- <p>Description: [% liblibrarian %]</p> >+ <p>Description: [% liblibrarian | html_entity %]</p> > > <form action="[% delete_link %]" method="post"><input type="hidden" name="op" value="delete_confirmed" /> > <input type="hidden" name="searchfield" value="[% searchfield %]" /> >@@ -241,9 +263,9 @@ > <td><a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&tagfield=[% loo.tagfield %]&frameworkcode=[% frameworkcode %]#sub[% loo.tagsubfield %]field">[% loo.tagsubfield %]</a></td> > <td> > [% IF ( loo.subfield_ignored ) %] >- <i>[% loo.liblibrarian %]</i> >+ <i>[% loo.liblibrarian | html_entity %]</i> > [% ELSE %] >- [% loo.liblibrarian %] >+ [% loo.liblibrarian | html_entity %] > [% END %] > </td> > <td> >-- >2.7.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 15773
:
47820
|
47826
|
48207
|
48208
|
49388
|
49417