Koha/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc_subfields_structure.tt
Joonas Kylmälä 045ead15fd
Bug 31214: Make subfield code non-editable in MARC framework editor
The subfield code field became editable in framework
editor due to a regression that happened during the
switch from a previous template framework koha used
to the new Template toolkit framework currently in use:
Bug 5917 : Swapping templates over (5884fb1000)
The regression happened due to the template syntax
not being updated to the new one in this particular
case.

Note: The subfield code field doesn't align with the
      other fields anymore after this patch. However,
      this alignment issue is in every other Koha form
      in intranet and should be fixed in the global
      CSS rules.

1) Apply patch
2) Browse to
   /cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&tagfield=995&frameworkcode=AR
3) Notice the subfield code is non-editable
4) Notice the subfield code is still editable in the New tab.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-08-09 07:40:47 -03:00

456 lines
34 KiB
Text

[% USE raw %]
[% USE Asset %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>
[%- IF ( add_form ) -%]
[%- IF ( use_heading_flags_p ) -%]
[%- IF ( heading_edit_subfields_p ) -%]
Edit MARC subfields constraints &rsaquo; MARC subfield structure
[%- END -%]
[%- ELSE -%]
[%- action | html -%] &rsaquo; MARC subfield structure
[%- END -%]
[%- END -%]
[%- IF ( delete_confirm ) -%]
MARC subfield structure &rsaquo; Confirm deletion of subfield [%- mss.tagsubfield | html -%]
Confirm deletion of subfield [%- tagsubfield | html -%] &rsaquo; MARC subfield structure
[%- END -%]
[%- IF ( delete_confirmed ) -%]
Subfield deleted &rsaquo; MARC subfield structure
[%- END -%]
[%- IF ( else ) -%]
MARC subfield structure
[%- END -%] &rsaquo; Administration &rsaquo; Koha
</title>
[% INCLUDE 'doc-head-close.inc' %]
<style>.constraints::after { content: " "; clear: both; display:block; }</style>
</head>
<body id="admin_marc_subfields_structure" class="admin">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'prefs-admin-search.inc' %]
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
<ol>
<li>
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
</li>
<li>
<a href="/cgi-bin/koha/admin/biblio_framework.pl">MARC frameworks</a>
</li>
<li>
<a href="/cgi-bin/koha/admin/marctagstructure.pl?frameworkcode=[% frameworkcode | uri %]&amp;searchfield=[% tagfield | uri %]">
[% IF ( frameworkcode ) %]
[% frameworkcode | html %]
[% ELSE %]
<span>Default</span>
[% END %] <span>framework structure</span>
</a>
</li>
[% IF ( add_form ) %]
[% IF ( use_heading_flags_p ) %]
[% IF ( heading_edit_subfields_p ) %]
<li>
<a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?tagfield=[% tagfield | uri %]&amp;frameworkcode=[% frameworkcode | uri %]">Tag [% tagfield | html %] subfield structure</a>
</li>
<li>
<a href="#" aria-current="page">
Edit subfields constraints
</a>
</li>
[% END %]
[% ELSE %]
<li>
<a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?tagfield=[% tagfield | uri %]&amp;frameworkcode=[% frameworkcode | uri %]">Tag [% tagfield | html %] Subfield structure</a>
</li>
<li>
<a href="#" aria-current="page">
[% action | html %]
</a>
</li>
[% END %]
[% END %]
[% IF ( delete_confirm ) %]
<li>
<a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?tagfield=[% mss.tagfield | uri %]&amp;frameworkcode=[% mss.frameworkcode | uri %]">Tag [% mss.tagfield | html %] Subfield structure</a>
</li>
<li>
<a href="#" aria-current="page">
Confirm deletion of subfield [% mss.tagsubfield | html %]i
</a>
</li>
[% END %]
[% IF ( else ) %]
<li>
<a href="#" aria-current="page">
Tag [% tagfield | html %] Subfield structure
</a>
</li>
[% END %]
</ol>
</nav> <!-- /#breadcrumbs -->
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% IF ( add_form ) %]
<h1>
[% IF ( use_heading_flags_p ) %]
[% IF ( heading_edit_subfields_p ) %]<span>Tag</span> [% tagfield | html %] <span>Subfield constraints</span>[% END %]
[% ELSE %]
[% action | html %]
[% END %]
</h1>
<form action="[% script_name | html %]" name="Aform" method="post">
<input type="hidden" name="op" value="add_validate" />
<input type="hidden" name="tagfield" value="[% tagfield | html %]" />
<input type="hidden" name="frameworkcode" value="[% frameworkcode | html %]" />
[% BLOCK outputsubfield %][% FILTER collapse %]
[% SWITCH ( subfieldanchor ) %]
[% CASE "@" %]
AT
[% CASE "%" %]
%
[% CASE %]
[% subfieldanchor | html %]
[% END %]
[% END %][% END %]
<div id="subfieldtabs" class="toptabs numbered">
<ul class="nav nav-tabs" role="tablist">
[% FOREACH loo IN loop %]
<li id="tab_subfield_[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]" class="tab-item" role="presentation">
[% IF ( loo.new_subfield ) %]
<a href="#sub[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]field" aria-controls="sub[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]field" role="tab" data-toggle="tab" title="[% loo.liblibrarian | html_entity %]">New</a>
[% ELSE %]
<a href="#sub[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]field" aria-controls="sub[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]field" role="tab" data-toggle="tab" title="[% loo.liblibrarian | html_entity %]">
[% loo.subfieldcode | html %]
</a>
[% END %]
</li>
[% END %]
</ul>
<div class="tab-content">
[% FOREACH loo IN loop %]
<div class="constraints tab-pane" role="tabpanel" id="sub[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]field">
<input type="hidden" name="tab_id" value="[% loo.row | html %]" />
<div id="basic[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]" class="contraints">
<fieldset class="rows">
<legend>Basic constraints</legend>
<ol>
[% IF ( loo.subfieldcode == 0 || loo.subfieldcode ) %]
<li>
<span class="label">Subfield code:</span>
[% loo.subfieldcode | html %]
<input type="hidden" id="tagsubfield[% loo.row | html %]" name="tagsubfield" value="[% loo.subfieldcode | html %]" />
</li>
[% ELSE %]
<li>
<label for="tagsubfield[% loo.row | html %]">Subfield code:</label>
<input type="text" id="tagsubfield[% loo.row | html %]" name="tagsubfield" value="[% loo.subfieldcode | html %]" />
</li>
[% END %]
<li>
<label for="liblibrarian[% loo.row | html %]">Text for librarian: </label>
<input id="liblibrarian[% loo.row | html %]" type="text" name="liblibrarian_[% loo.row | html %]" value="[% loo.liblibrarian | html_entity %]" size="40" maxlength="80" />
</li>
<li>
<label for="libopac[% loo.row | html %]">Text for OPAC: </label>
<input type="text" id="libopac[% loo.row | html %]" name="libopac_[% loo.row | html %]" value="[% loo.libopac | html_entity %]" size="40" maxlength="80" />
</li>
<li>
<label for="repeatable[% loo.row | html %]">Repeatable: </label>
[% IF loo.repeatable %]
<input type="checkbox" id="repeatable[% loo.row | html %]" name="repeatable_[% loo.row | html %]" checked="checked" value="1" />
[% ELSE %]
<input type="checkbox" id="repeatable[% loo.row | html %]" name="repeatable_[% loo.row | html %]" value="1" />
[% END %]
</li>
<li>
<label for="mandatory[% loo.row | html %]">Mandatory: </label>
[% IF loo.mandatory %]
<input type="checkbox" id="mandatory[% loo.row | html %]" name="mandatory_[% loo.row | html %]" checked="checked" value="1" />
[% ELSE %]
<input type="checkbox" id="mandatory[% loo.row | html %]" name="mandatory_[% loo.row | html %]" value="1" />
[% END %]
</li>
<li>
<label for="important[% loo.row | html %]">Important: </label>
[% IF loo.important %]
<input type="checkbox" id="important[% loo.row | html %]" name="important_[% loo.row | html %]" checked="checked" value="1" />
[% ELSE %]
<input type="checkbox" id="important[% loo.row | html %]" name="important_[% loo.row | html %]" value="1" />
[% END %]
</li>
<li><label for="tab[% loo.row | html %]">Managed in tab: </label>
<select name="tab_[% loo.row | html %]" tabindex="" id="tab[% loo.row | html %]">
[%- 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 == t ) -%]
<option value="[%- t | html -%]" selected="selected">[%- t | html -%]</option>
[%- ELSE -%]
<option value="[%- t | html -%]">[%- t | html -%]</option>
[%- END -%]
[%- END -%]
[%- IF ( loo.tab == 10 ) -%]
<option value="10" selected="selected">items (10)</option>
[%- ELSE -%]
<option value="10">items (10)</option>
[%- END -%]
</select>
<div class="hint">Ignore means that the subfield does not display in the record editor</div>
</li>
</ol>
</fieldset> <!-- /.rows -->
</div> <!-- /#basic[%- PROCESS outputsubfield subfieldanchor = subfieldcode -%] -->
<div id="advanced[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]" class="contraints">
<fieldset class="rows">
<legend>Advanced constraints</legend>
<ol>
<li>
<label for="defaultvalue[% loo.row | html %]">Default value:</label>
<input type="text" name="defaultvalue_[% loo.row | html %]" id="defaultvalue[% loo.row | html %]" value="[% loo.defaultvalue | html %]" />
</li>
<li>
<label for="maxlength[% loo.row | html %]">Max length:</label>
<input type="text" id="maxlength[% loo.row | html %]" name="maxlength_[% loo.row | html %]" value="[% loo.maxlength | html %]" size="4" />
</li>
<li>
[% IF loo.hidden_protected %]
<input type="hidden" id="hidden-[% loo.row | html %]" name="hidden_[% loo.row | html %]" value="[% loo.hidden | html %]" data-koha-protected="1" />
[% ELSE %]
<input type="hidden" id="hidden-[% loo.row | html %]" name="hidden_[% loo.row | html %]" value="[% loo.hidden | html %]" />
[% END %]
<label for="hidden[% loo.row | html %]">Visibility: </label>
<input type="checkbox" id="hidden_opac_[% loo.row | html %]" class="inclusive_[% loo.row | html %]" name="hidden_opac_[% loo.row | html %]"/>
<label for="hidden_opac_[% loo.row | html %]" style="float: none;">OPAC</label>
<input type="checkbox" id="hidden_intranet_[% loo.row | html %]" class="inclusive_[% loo.row | html %]" name="hidden_intranet_[% loo.row | html %]"/>
<label for="hidden_intranet_[% loo.row | html %]" style="float: none;">Intranet</label>
<input type="checkbox" id="hidden_editor_[% loo.row | html %]" class="inclusive_[% loo.row | html %]" name="hidden_editor_[% loo.row | html %]"/>
<label for="hidden_editor_[% loo.row | html %]" style="float: none;">Editor</label>
<input type="checkbox" id="hidden_collapsed_[% loo.row | html %]" class="inclusive_[% loo.row | html %]" name="hidden_collapsed_[% loo.row | html %]"/>
<label for="hidden_collapsed_[% loo.row | html %]" style="float: none;">Collapsed</label>
<input type="checkbox" id="hidden_flagged_[% loo.row | html %]" name="flagged_[% loo.row | html %]"/>
<label for="hidden_flagged_[% loo.row | html %]" style="float: none;">Flagged</label>
</li>
<li>
<label for="isurl[% loo.row | html %]">Is a URL:</label>
[% IF loo.isurl %]
<input type="checkbox" id="isurl[% loo.row | html %]" name="isurl_[% loo.row | html %]" checked="checked" value="1" />
[% ELSE %]
<input type="checkbox" id="isurl[% loo.row | html %]" name="isurl_[% loo.row | html %]" value="1" />
[% END %]
<span class="hint">If checked, it means that the subfield is a URL and can be clicked</span>
</li>
<li>
<label for="link[% loo.row | html %]">Link:</label>
<input type="text" id="link[% loo.row | html %]" name="link_[% loo.row | html %]" value="[% loo.link | html %]" size="10" maxlength="80" />
<div class="hint">An index name, e.g. title or Local-Number</div>
</li>
<li>
<label for="kohafield[% loo.row | html %]">Koha link:</label>
<!-- This select should be DISABLED; value is submitted by the following hidden input -->
<select name="kohafield_[% loo.row | html %]" id="kohafield[% loo.row | html %]" disabled>
[% FOREACH value IN loo.kohafields %]
[% IF ( value == loo.kohafield ) %]
<option value="[% value | html %]" selected="selected">[% value | html %]</option>
[% ELSE %]
<option value="[% value | html %]">[% value | html %]</option>
[% END %]
[% END %]
</select>
<!-- Do NOT remove this next hidden input! We need it to save kohafield. -->
<input type="hidden" name="kohafield_[% loo.row | html %]" value="[% loo.kohafield | html %]"/>
</li>
</ol>
</fieldset> <!-- /.rows -->
</div> <!-- /#advanced[%- PROCESS outputsubfield subfieldanchor = subfieldcode -%] -->
<div id="oth[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%]" class="constraints">
<fieldset class="rows">
<legend>Other options (choose one)</legend>
<ol>
<li>
<label for="authorised_value[% loo.row | html %]">Authorized value:</label>
<select name="authorised_value_[% loo.row | html %]" id="authorised_value[% loo.row | html %]">
<option value=""></option>
[% FOREACH value IN loo.authorised_values %]
[% IF ( value == loo.authorised_value ) %]
<option value="[% value | html %]" selected="selected">[% value | html %]</option>
[% ELSE %]
<option value="[% value | html %]">[% value | html %]</option>
[% END %]
[% END %]
</select>
</li>
<li>
<label for="authtypecode[% loo.row | html %]">Thesaurus:</label>
<select name="authtypecode_[% loo.row | html %]" id="authtypecode[% loo.row | html %]">
[% FOREACH value IN loo.authtypes %]
[% IF ( value == loo.authtypecode ) %]
<option value="[% value | html %]" selected="selected">[% value | html %]</option>
[% ELSE %]
<option value="[% value | html %]">[% value | html %]</option>
[% END %]
[% END %]
</select>
</li>
<li>
<label for="value_builder[% loo.row | html %]">Plugin:</label>
<select name="value_builder_[% loo.row | html %]" id="value_builder[% loo.row | html %]">
[% FOREACH value IN loo.value_builders %]
[% IF ( value == loo.value_builder ) %]
<option value="[% value | html %]" selected="selected">[% value | html %]</option>
[% ELSE %]
<option value="[% value | html %]">[% value | html %]</option>
[% END %]
[% END %]
</select>
</li>
</ol>
</fieldset> <!-- /.rows -->
</div> <!-- /#oth[%- PROCESS outputsubfield subfieldanchor = loo.subfieldcode -%] -->
</div><!-- /constraints -->
[% END # /FOREACH loo %]
</div> <!-- /.tab-content -->
</div><!-- /subfieldtabs -->
<fieldset class="action">
<input type="submit" value="Save changes" /> <a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?tagfield=[% tagfield | uri %]&amp;frameworkcode=[% frameworkcode | uri %]" class="cancel">Cancel</a>
</fieldset>
</form>
[% END # /IF ( add_form ) %]
[% IF ( delete_confirm ) %]
<div class="dialog alert">
<h1>Confirm deletion of subfield [% mss.tagsubfield | html %]?</h1>
<p>Subfield: [% mss.tagsubfield | html %]</p>
<p>Description: [% mss.liblibrarian | html_entity %]</p>
<form action="[% delete_link | html %]" method="post"><input type="hidden" name="op" value="delete_confirmed" />
<input type="hidden" name="tagfield" value="[% mss.tagfield | html %]" />
<input type="hidden" name="tagsubfield" value="[% mss.tagsubfield | html %]" />
<input type="hidden" name="frameworkcode" value="[% mss.frameworkcode | html %]" />
<button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> Yes, delete this subfield</button>
</form>
<form action="[% script_name | html %]" method="post">
<input type="hidden" name="tagfield" value="[% mss.tagfield | html %]" />
<input type="hidden" name="tagsubfield" value="[% mss.tagsubfield | html %]" />
<input type="hidden" name="frameworkcode" value="[% mss.frameworkcode | html %]" />
<button type="submit" class="deny"><i class="fa fa-fw fa-remove"></i> No, do not delete</button>
</form>
</div> <!-- /.dialog.alert -->
[% END # /IF ( delete_confirm ) %]
[% IF ( else ) %]
<h1>MARC subfield structure admin for [% tagfield | html %] [% IF ( frameworkcode ) %](framework [% frameworkcode | html %])[% ELSE %](default framework)[% END %]</h1>
<p>This screen shows the subfields associated with the selected tag. You can edit subfields or add a new one by clicking on edit.</p>
<p>The column 'Koha field' shows that the subfield is linked with a Koha field.</p>
<table id="table_marcsubfieldstructure">
<thead>
<tr>
<th>Subfield</th>
<th>Text</th>
<th>Constraints</th>
<th class="NoSort noExport">Actions</th>
</tr>
</thead>
<tbody>
[% FOREACH loo IN loop %]
<tr>
<td><a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&amp;tagfield=[% loo.tagfield | uri %]&amp;frameworkcode=[% frameworkcode | uri %]#sub[% loo.tagsubfield | uri %]field">[% loo.tagsubfield | html %]</a></td>
<td>
[% IF loo.tab == -1 %]
<em>[% loo.liblibrarian | html_entity %]</em>
[% ELSE %]
[% loo.liblibrarian | html_entity %]
[% END %]
</td>
<td>
[% IF loo.tab == -1 %]
<em>subfield ignored</em>
[% ELSE %]
<span>Tab:</span>[% loo.tab | html %],
[% IF ( loo.kohafield ) %] | <span>Koha field:</span> [% loo.kohafield | html %], [% END %]
[% IF ( loo.repeatable ) %]<span>Repeatable</span>, [% ELSE %]<span>Not repeatable</span>,[% END %]
[% IF ( loo.mandatory ) %]<span>Mandatory</span>, [% ELSE %]<span>Not mandatory</span>,[% END %]
[% IF ( loo.important ) %]<span>Important</span>, [% ELSE %]<span>Not important</span>,[% END %]
[% IF ( loo.seealso ) %] | <span>See also:</span> [% loo.seealso | html %],[% END %]
[% IF ( loo.hidden ) %]<span>hidden</span>,[% END %]
[% IF ( loo.isurl ) %]<span>is a URL</span>,[% END %]
[% IF ( loo.authorised_value ) %] | <span>Auth value:</span>[% loo.authorised_value | html %],[% END %]
[% IF ( loo.authtypecode ) %] | <span>Authority:</span>[% loo.authtypecode | html %],[% END %]
[% IF ( loo.value_builder ) %] | <span>Plugin:</span>[% loo.value_builder | html %],[% END %]
[% IF ( loo.link ) %] | <span>Link:</span>[% loo.link | html %],[% END %]
[% END %]
</td>
<td class="actions">
<a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&amp;tagfield=[% loo.tagfield | uri %]&tagsubfield=[% loo.tagsubfield | uri %]&amp;frameworkcode=[% frameworkcode | uri %]#sub[% loo.tagsubfield | uri %]field" class="btn btn-default btn-xs"><i class="fa fa-pencil"></i> Edit</a>
<a href="/cgi-bin/koha/admin/marc_subfields_structure.pl?op=delete_confirm&amp;tagfield=[% loo.tagfield | uri %]&amp;tagsubfield=[% loo.tagsubfield | uri %]&amp;frameworkcode=[% frameworkcode | uri %]" class="btn btn-default btn-xs"><i class="fa fa-trash"></i> Delete</a>
</td>
</tr>
[% END %]
</tbody>
</table> <!-- /#table_marcsubfieldstructure -->
<form action="[% script_name | html %]" method="get">
<fieldset class="action"><input type="hidden" name="op" value="add_form" />
<input type="hidden" name="tagfield" value="[% edit_tagfield | html %]" />
<input type="hidden" name="frameworkcode" value="[% edit_frameworkcode | html %]" />
<input type="submit" value="Edit subfields" />
<a class="cancel" href="marctagstructure.pl?searchfield=[% tagfield | uri %]&amp;frameworkcode=[% frameworkcode | html %]">Cancel</a>
</fieldset>
</form>
[% END # /IF else %]
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
[% INCLUDE 'admin-menu.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div> <!-- /.row -->
[% MACRO jsinclude BLOCK %]
[% INCLUDE 'datatables.inc' %]
[% Asset.js("js/admin-menu.js") | $raw %]
<script>
var tagsubfield = "[% tagsubfield | html %]";
</script>
[% Asset.js("js/marc_subfields_structure.js") | $raw %]
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]