Bug 21740: Show @ when editing fixed-length fields on bibliographic frameworks
authorTomas Cohen Arazi <tomascohen@theke.io>
Wed, 31 Oct 2018 14:50:59 +0000 (11:50 -0300)
committerFridolin Somers <fridolin.somers@biblibre.com>
Wed, 28 Nov 2018 14:19:18 +0000 (15:19 +0100)
This is a consistency issue: we store '@' as the subfield for
fixed-lenght fields, yet on editing '_' is displayed (on the form and
the tab). This was probably done to avoid URI encoding problems in the
past.

This patch restores the '@' everywhere.

To test:
- Open the MARC structure for any bibliographic MARC framework
- Choose Actions > Subfields on any fixed-length field
=> ERROR: Notice the tab has an underscore (_) and the subfield code is '_' as well.
- Cancel
=> SUCCESS: '@' is displayed on the list
- Apply this patch
- Restart all the things:
  $ restart_all
- Choose Actions > Subfields on any fixed-length field
=> SUCCESS: '@' is displayed in the tab title, and on the 'Subfield
code' form field.
- Save some changes
=> SUCCESS: Things work correctly.
- Sign off :-D

Signed-off-by: Pierre-Marc Thibault <pierre-marc.thibault@inLibro.com>

Signed-off-by: Devinim <kohadevinim@devinim.com.tr>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit e520d699109958712212ead8b8935a63402e5b37)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit fc04b4b1bc0ee1fb423168e62ca6af9a207ac508)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

admin/marc_subfields_structure.pl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt

index 077a58b..4f2fdd2 100755 (executable)
@@ -172,7 +172,7 @@ if ( $op eq 'add_form' ) {
         $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{subfieldcode}      = $data->{'tagsubfield'};
         $row_data{urisubfieldcode}   = $row_data{subfieldcode} eq '%' ? 'pct' : $row_data{subfieldcode};
         $row_data{liblibrarian}      = $data->{'liblibrarian'};
         $row_data{libopac}           = $data->{'libopac'};
@@ -263,7 +263,6 @@ elsif ( $op eq 'add_validate' ) {
         my $tagfield    = $input->param('tagfield');
         my $tagsubfield = $tagsubfield[$i];
         $tagsubfield = "@" unless $tagsubfield ne '';
-        $tagsubfield = "@" if $tagsubfield eq '_';
         my $liblibrarian     = $liblibrarian[$i];
         my $libopac          = $libopac[$i];
         my $repeatable       = $input->param("repeatable$i") ? 1 : 0;
index efdac8d..0d6964e 100644 (file)
    <ul>
         [% FOREACH loo IN loop %]
             [% IF ( loo.new_subfield ) %]
-                <li><a href="#sub[% loo.urisubfieldcode %]field" title="[% loo.liblibrarian | html_entity %]">New</a></li>
+                <li><a href="#sub[% loo.urisubfieldcode | html_entity %]field" title="[% loo.liblibrarian | html_entity %]">New</a></li>
             [% ELSE %]
-                <li><a href="#sub[% loo.urisubfieldcode %]field" title="[% loo.liblibrarian | html_entity %]">
-                    [% loo.subfieldcode %]
+                <li><a href="#sub[% loo.urisubfieldcode | html_entity %]field" title="[% loo.liblibrarian | html_entity %]">
+                    [% loo.subfieldcode | html %]
                </a></li>
             [% END %]
         [% END %]