Bug 3413: Checkboxes for new subfields not saving correctly
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 Signed-off-by: mveron <veron@veron.ch> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This commit is contained in:
parent
1a44578e2b
commit
22b6705b4f
2 changed files with 16 additions and 17 deletions
|
@ -274,14 +274,13 @@ if ( $op eq 'add_form' ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
# add more_subfields empty lines for add if needed
|
# 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
|
my %row_data; # get a fresh hash for the row data
|
||||||
$row_data{'new_subfield'} = 1;
|
$row_data{'new_subfield'} = 1;
|
||||||
$row_data{'subfieldcode'} = '';
|
$row_data{'subfieldcode'} = '';
|
||||||
|
|
||||||
$row_data{tab} = CGI::scrolling_list(
|
$row_data{tab} = CGI::scrolling_list(
|
||||||
-name => 'tab',
|
-name => 'tab',
|
||||||
-id => "tab$j",
|
-id => "tab$i",
|
||||||
-values =>
|
-values =>
|
||||||
[ '-1', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ],
|
[ '-1', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ],
|
||||||
-labels => {
|
-labels => {
|
||||||
|
@ -311,7 +310,7 @@ if ( $op eq 'add_form' ) {
|
||||||
$row_data{seealso} = "";
|
$row_data{seealso} = "";
|
||||||
$row_data{kohafield} = CGI::scrolling_list(
|
$row_data{kohafield} = CGI::scrolling_list(
|
||||||
-name => 'kohafield',
|
-name => 'kohafield',
|
||||||
-id => "kohafield$j",
|
-id => "kohafield$i",
|
||||||
-values => \@kohafields,
|
-values => \@kohafields,
|
||||||
-default => "",
|
-default => "",
|
||||||
-size => 1,
|
-size => 1,
|
||||||
|
@ -319,29 +318,29 @@ if ( $op eq 'add_form' ) {
|
||||||
);
|
);
|
||||||
$row_data{hidden} = "";
|
$row_data{hidden} = "";
|
||||||
$row_data{repeatable} = CGI::checkbox(
|
$row_data{repeatable} = CGI::checkbox(
|
||||||
-name => "repeatable$j",
|
-name => "repeatable$i",
|
||||||
-id => "repeatable$j",
|
-id => "repeatable$i",
|
||||||
-checked => '',
|
-checked => '',
|
||||||
-value => 1,
|
-value => 1,
|
||||||
-label => ''
|
-label => ''
|
||||||
);
|
);
|
||||||
$row_data{mandatory} = CGI::checkbox(
|
$row_data{mandatory} = CGI::checkbox(
|
||||||
-name => "mandatory$j",
|
-name => "mandatory$i",
|
||||||
-id => "mandatory$j",
|
-id => "mandatory$i",
|
||||||
-checked => '',
|
-checked => '',
|
||||||
-value => 1,
|
-value => 1,
|
||||||
-label => ''
|
-label => ''
|
||||||
);
|
);
|
||||||
$row_data{isurl} = CGI::checkbox(
|
$row_data{isurl} = CGI::checkbox(
|
||||||
-name => "isurl$j",
|
-name => "isurl$i",
|
||||||
-id => "isurl$j",
|
-id => "isurl$i",
|
||||||
-checked => '',
|
-checked => '',
|
||||||
-value => 1,
|
-value => 1,
|
||||||
-label => ''
|
-label => ''
|
||||||
);
|
);
|
||||||
$row_data{value_builder} = CGI::scrolling_list(
|
$row_data{value_builder} = CGI::scrolling_list(
|
||||||
-name => "value_builder",
|
-name => "value_builder",
|
||||||
-id => "value_builder$j",
|
-id => "value_builder$i",
|
||||||
-values => \@value_builder,
|
-values => \@value_builder,
|
||||||
-default => $data->{'value_builder'},
|
-default => $data->{'value_builder'},
|
||||||
-size => 1,
|
-size => 1,
|
||||||
|
@ -349,22 +348,22 @@ if ( $op eq 'add_form' ) {
|
||||||
);
|
);
|
||||||
$row_data{authorised_value} = CGI::scrolling_list(
|
$row_data{authorised_value} = CGI::scrolling_list(
|
||||||
-name => "authorised_value",
|
-name => "authorised_value",
|
||||||
-id => "authorised_value$j",
|
-id => "authorised_value$i",
|
||||||
-values => \@authorised_values,
|
-values => \@authorised_values,
|
||||||
-size => 1,
|
-size => 1,
|
||||||
-multiple => 0,
|
-multiple => 0,
|
||||||
);
|
);
|
||||||
$row_data{authtypes} = CGI::scrolling_list(
|
$row_data{authtypes} = CGI::scrolling_list(
|
||||||
-name => "authtypecode",
|
-name => "authtypecode",
|
||||||
-id => "authtypecode$j",
|
-id => "authtypecode$i",
|
||||||
-values => \@authtypes,
|
-values => \@authtypes,
|
||||||
-size => 1,
|
-size => 1,
|
||||||
-multiple => 0,
|
-multiple => 0,
|
||||||
);
|
);
|
||||||
$row_data{link} = CGI::escapeHTML( $data->{'link'} );
|
$row_data{link} = CGI::escapeHTML( $data->{'link'} );
|
||||||
$row_data{row} = $j;
|
$row_data{row} = $i;
|
||||||
push( @loop_data, \%row_data );
|
push( @loop_data, \%row_data );
|
||||||
}
|
|
||||||
$template->param( 'use_heading_flags_p' => 1 );
|
$template->param( 'use_heading_flags_p' => 1 );
|
||||||
$template->param( 'heading_edit_subfields_p' => 1 );
|
$template->param( 'heading_edit_subfields_p' => 1 );
|
||||||
$template->param(
|
$template->param(
|
||||||
|
|
|
@ -112,8 +112,8 @@ $(document).ready(function() {
|
||||||
<input type="text" name="defaultvalue" id="defaultvalue[% loo.row %]" value="[% loo.defaultvalue %]" /></li>
|
<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="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="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="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>
|
<li><label for="kohafield[% loo.row %]">Koha link:</label>[% loo.kohafield %]</li>
|
||||||
</ol>
|
</ol>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@ -202,7 +202,7 @@ $(document).ready(function() {
|
||||||
[% IF ( loo.mandatory ) %]Mandatory, [% ELSE %]Not mandatory,[% END %]
|
[% IF ( loo.mandatory ) %]Mandatory, [% ELSE %]Not mandatory,[% END %]
|
||||||
[% IF ( loo.seealso ) %] | See Also: [% loo.seealso %],[% END %]
|
[% IF ( loo.seealso ) %] | See Also: [% loo.seealso %],[% END %]
|
||||||
[% IF ( loo.hidden ) %]hidden,[% 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.authorised_value ) %] | Auth value:[% loo.authorised_value %],[% END %]
|
||||||
[% IF ( loo.authtypecode ) %] | Authority:[% loo.authtypecode %],[% END %]
|
[% IF ( loo.authtypecode ) %] | Authority:[% loo.authtypecode %],[% END %]
|
||||||
[% IF ( loo.value_builder ) %] | Plugin:[% loo.value_builder %],[% END %]
|
[% IF ( loo.value_builder ) %] | Plugin:[% loo.value_builder %],[% END %]
|
||||||
|
|
Loading…
Reference in a new issue