Koha/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-request-article.tt
Wainui Witika-Park d3ab8dbeec Bug 28242: added captions to tables and legends to forms
Ensured that in the OPAC, all tables have relevant captions and all forms have relevant legends.

Many of these have class="sr-only" so they are not visible but will be
available for people who use screen-readers.

To test:
1) Go to OPAC
2) Apply patch and dependencies
3) Check that on all pages, any tables have a caption (many of them will
    not be visible, but will be in the markup code)
4) Check that on all pages, any forms have a legend (many of them will
    not be visible, but will be in the markup code)
5) Check that the captions are appropriate and relevant
6) Check that the legends are appropriate and relevant

Sponsored-by: Catalyst IT

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-06-21 14:05:30 +02:00

247 lines
13 KiB
Text

[% USE Koha %]
[% USE Branches %]
[% USE ItemTypes %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Request article &rsaquo; [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog</title>
[% INCLUDE 'doc-head-close.inc' %]
[% BLOCK cssinclude %][% END %]
</head>
[% INCLUDE 'bodytag.inc' bodyid='opac-request-article' %]
[% INCLUDE 'masthead.inc' %]
<div class="main">
<nav aria-label="breadcrumb">
<ul class="breadcrumb">
<li class="breadcrumb-item">
<a href="/cgi-bin/koha/opac-main.pl">Home</a>
</li>
<li class="breadcrumb-item">
<a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% biblio.biblionumber | uri %]">Details for: [% biblio.title | html %]</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="#">Request article</a>
</li>
</ul>
</nav>
<div class="container-fluid maincontent">
<div class="row">
<div class="col">
[% IF biblio.can_article_request( patron ) %]
[% SET article_request_type = biblio.article_request_type( patron ) %]
[% IF article_request_type == 'yes' %] [% SET mandatory_fields = Koha.Preference('ArticleRequestsMandatoryFields') %] [% END %]
[% IF article_request_type == 'bib_only' %] [% SET mandatory_fields = Koha.Preference('ArticleRequestsMandatoryFieldsRecordOnly') %] [% END %]
[% IF article_request_type == 'item_only' %] [% SET mandatory_fields = Koha.Preference('ArticleRequestsMandatoryFieldsItemOnly') %] [% END %]
<h1>Place article request for [% biblio.title | html %]</h1>
<form id="place-article-request" method="post" action="/cgi-bin/koha/opac-request-article.pl">
<legend class="sr-only">Place article request</legend>
<input type="hidden" name="action" value="create" />
<input type="hidden" name="biblionumber" id="biblionumber" value="[% biblio.biblionumber | html %]" />
<fieldset class="rows">
<ul>
<li>
[% IF mandatory_fields.search('title') %]
<label for="title" class="required">Title:</label>
<input type="text" required="required" name="title" id="title" size="50"/>
[% ELSE %]
<label for="title">Title:</label>
<input type="text" name="title" id="title" size="50"/>
[% END %]
</li>
<li>
[% IF mandatory_fields.search('author') %]
<label for="author" class="required">Author:</label>
<input type="text" required="required" name="author" id="author" size="50"/>
[% ELSE %]
<label for="author">Author:</label>
<input type="text" name="author" id="author" size="50"/>
[% END %]
</li>
<li>
[% IF mandatory_fields.search('volume') %]
<label for="volume" class="required">Volume:</label>
<input type="text" required="required" name="volume" id="volume" size="50"/>
[% ELSE %]
<label for="volume">Volume:</label>
<input type="text" name="volume" id="volume" size="50"/>
[% END %]
</li>
<li>
[% IF mandatory_fields.search('issue') %]
<label for="issue" class="required">Issue:</label>
<input type="text" required="required" name="issue" id="issue" size="50"/>
[% ELSE %]
<label for="issue">Issue:</label>
<input type="text" name="issue" id="issue" size="50"/>
[% END %]
</li>
<li>
[% IF mandatory_fields.search('date') %]
<label for="date" class="required">Date:</label>
<input type="text" required="required" name="date" id="date" size="50"/>
[% ELSE %]
<label for="date">Date:</label>
<input type="text" name="date" id="date" size="50"/>
[% END %]
</li>
<li>
[% IF mandatory_fields.search('pages') %]
<label for="pages" class="required">Pages:</label>
<input type="text" required="required" name="pages" id="pages" size="50"/>
[% ELSE %]
<label for="pages">Pages:</label>
<input type="text" name="pages" id="pages" size="50"/>
[% END %]
</li>
<li>
[% IF mandatory_fields.search('chapters') %]
<label for="chapters" class="required">Chapters:</label>
<input type="text" required="required" name="chapters" id="chapters" size="50"/>
[% ELSE %]
<label for="chapters">Chapters:</label>
<input type="text" name="chapters" id="chapters" size="50"/>
[% END %]
</li>
<li>
<label for="patron_notes">Notes:</label>
<input type="text" name="patron_notes" id="patron_notes" size="50"/>
</li>
<li>
<label for="branchcode">Pickup library:</label>
<select name="branchcode" id="branchcode" required="required">
[% FOREACH b IN Branches.all %]
[% IF b.branchcode == Branches.GetLoggedInBranchcode %]
<option value="[% b.branchcode | html %]" selected="selected">[% b.branchname | html %]</option>
[% ELSE %]
<option value="[% b.branchcode | html %]">[% b.branchname | html %]</option>
[% END %]
[% END %]
</select>
</li>
</ul>
</fieldset>
[% IF article_request_type != 'bib_only' %]
<table class="copiesrow table table-bordered table-striped">
<caption>Select a specific item:</caption>
<thead>
<tr>
<th>&nbsp;</th>
<th>Item type</th>
<th>Barcode</th>
<th>Home library</th>
<th>Call number</th>
<th>Enumeration</th>
</tr>
</thead>
<tbody>
[% FOREACH item IN biblio.items %]
[% IF item.can_article_request( patron ) %]
<tr>
<td>
[% IF article_request_type == 'item_only' && !checked %]
[% SET checked = 1 %]
<input type="radio" name="itemnumber" value="[% item.itemnumber | html %]" checked="checked" />
[% ELSE %]
<input type="radio" name="itemnumber" value="[% item.itemnumber | html %]" />
[% END %]
</td>
<td>
[% ItemTypes.GetDescription( item.itype ) | html %]
</td>
<td>
[% item.barcode | html %]
</td>
<td>
[% Branches.GetName( item.homebranch ) | html %]
</td>
<td>
[% item.itemcallnumber | html %]
</td>
<td>
[% item.enumchron | html %]
</td>
</tr>
[% END %]
[% END %]
[% IF article_request_type != 'item_only' %]
<tr>
<td>
<input type="radio" name="itemnumber" value="" checked="checked"/>
</td>
<td colspan="6">
Any item
</td>
</tr>
[% END %]
</tbody>
</table>
[% END %]
<input type="submit" class="btn btn-primary" value="Place request" />
</form>
[% ELSE %]
<h1 class="title">[% biblio.title | html %]</h1>
<div class="alert alert-info">
No article requests can be made for this record.
</div>
[% END %]
</div> <!-- /.col -->
</div> <!-- /.row -->
</div> <!-- / .container-fluid -->
</div> <!-- / .main -->
[% INCLUDE 'opac-bottom.inc' %]
[% BLOCK jsinclude %]
<script>
allow_submit = false;
$('#place-article-request').on('submit', function( event ){
if ( ! allow_submit ) {
event.preventDefault();
[% IF article_request_type == 'item_only' %]
if ( ! $("input:radio[name='itemnumber']").is(":checked") ) {
alert( _("Please select a specific item for this article request.") );
return 0;
}
[% END %]
var mandatory_fields = "[% mandatory_fields | html %]";
var m = new Array();
if ( mandatory_fields ) m = mandatory_fields.split(",");
var f = new Array();
for (i = 0; i < m.length; i++) {
if ( ! $("#" + m[i]).val() ) {
f.push( m[i] );
}
}
if ( f.length ) {
alert( _("The following fields are required and not filled in: ") + f.join(", ") );
return 0;
}
allow_submit = true;
$('#place-article-request').submit();
}
});
</script>
[% END %]