The bug was in the numbering of the fields and subfields in the form.
The form elements for the 'new subfield' got the same numbered names and ids as
the form elements for the second subfield. (example: repeatable1)
The patch fixes the numbering to continue to the new subfield.
To test:
- Create some new subfields and check all checkbox fields save correctly
(mandatory, repeatable, is url)
- Check that other subfields' checkboxes are not changed
- Check existing subfields and newly created subfields can be edited
---
admin/marc_subfields_structure.pl | 27 +++++++++----------
.../en/modules/admin/marc_subfields_structure.tt | 4 +-
2 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/admin/marc_subfields_structure.pl
b/admin/marc_subfields_structure.pl
index f837644..5da9812 100755
--- a/admin/marc_subfields_structure.pl
+++ b/admin/marc_subfields_structure.pl
@@ -274,14 +274,13 @@ if ( $op eq 'add_form' ) {
}
# add more_subfields empty lines for add if needed
- for ( my $j = 1 ; $j <= 1 ; $j++ ) {
my %row_data; # get a fresh hash for the row data
$row_data{'new_subfield'} = 1;
$row_data{'subfieldcode'} = '';
$row_data{tab} = CGI::scrolling_list(
-name => 'tab',
- -id => "tab$j",
+ -id => "tab$i",
-values =>
[ '-1', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ],
-labels => {
@@ -311,7 +310,7 @@ if ( $op eq 'add_form' ) {
$row_data{seealso} = "";
$row_data{kohafield} = CGI::scrolling_list(
-name => 'kohafield',
- -id => "kohafield$j",
+ -id => "kohafield$i",
-values => \@kohafields,
-default => "",
-size => 1,
@@ -319,29 +318,29 @@ if ( $op eq 'add_form' ) {
);
$row_data{hidden} = "";
$row_data{repeatable} = CGI::checkbox(
- -name => "repeatable$j",
- -id => "repeatable$j",
+ -name => "repeatable$i",
+ -id => "repeatable$i",
-checked => '',
-value => 1,
-label => ''
);
$row_data{mandatory} = CGI::checkbox(
- -name => "mandatory$j",
- -id => "mandatory$j",
+ -name => "mandatory$i",
+ -id => "mandatory$i",
-checked => '',
-value => 1,
-label => ''
);
$row_data{isurl} = CGI::checkbox(
- -name => "isurl$j",
- -id => "isurl$j",
+ -name => "isurl$i",
+ -id => "isurl$i",
-checked => '',
-value => 1,
-label => ''
);
$row_data{value_builder} = CGI::scrolling_list(
-name => "value_builder",
- -id => "value_builder$j",
+ -id => "value_builder$i",
-values => \@value_builder,
-default => $data->{'value_builder'},
-size => 1,
@@ -349,22 +348,22 @@ if ( $op eq 'add_form' ) {
);
$row_data{authorised_value} = CGI::scrolling_list(
-name => "authorised_value",
- -id => "authorised_value$j",
+ -id => "authorised_value$i",
-values => \@authorised_values,
-size => 1,
-multiple => 0,
);
$row_data{authtypes} = CGI::scrolling_list(
-name => "authtypecode",
- -id => "authtypecode$j",
+ -id => "authtypecode$i",
-values => \@authtypes,
-size => 1,
-multiple => 0,
);
$row_data{link} = CGI::escapeHTML( $data->{'link'} );
- $row_data{row} = $j;
+ $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(
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 71c83b9..f7e10d1 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
@@ -112,7 +112,7 @@ $(document).ready(function() {
<input type="text" name="defaultvalue" id="defaultvalue[%
loo.row %]" value="[% loo.defaultvalue %]" /></li>
<li><label for="maxlength[% loo.row %]">Max
length:</label><input type="text" id="maxlength[% loo.row %]" name="maxlength"
value="[% loo.maxlength %]" size="4" /> (see online help)</li>
<li><label for="hidden[% loo.row %]">hidden</label><input
type="text" id="hidden[% loo.row %]" name="hidden" value="[% loo.hidden %]"
size="2" /> (see online help)</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>[%
loo.isurl %] (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>[%
loo.kohafield %]</li>
</ol>
@@ -202,7 +202,7 @@ $(document).ready(function() {
[% IF ( loo.mandatory ) %]Mandatory, [% ELSE %]Not mandatory,[%
END %]
[% IF ( loo.seealso ) %] | See Also: [% loo.seealso %],[% END %]
[% IF ( loo.hidden ) %]hidden,[% END %]
- [% IF ( loo.isurl ) %]is a url,[% END %]
+ [% IF ( loo.isurl ) %]is a URL,[% END %]
[% IF ( loo.authorised_value ) %] | Auth value:[%
loo.authorised_value %],[% END %]
[% IF ( loo.authtypecode ) %] | Authority:[% loo.authtypecode
%],[% END %]
[% IF ( loo.value_builder ) %] | Plugin:[% loo.value_builder %],[%
END %]
--
1.7.5.4
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/