Koha/koha-tmpl/intranet-tmpl/prog/en/modules/members/housebound.tt
Lucas Gass 3cf3ab9a8d
Bug 34660: Make deliveries table on housebound.tt a DataTable
To test:
1. Turn on the housebound module ( HouseboundModule )
2. From a staff account add at leats one staff member as a Deliverer and a Chooser.
3. From a patron account click on the 'Housebound' tab. Add some deliveries.
4. Notice they sort with the oldest deilivery first.
5. Apply patch and reload the page.
6. Now the table is a DataTable and can be dymacially sorted.

Signed-off-by: Rhonda Kuiper <rkuiper@roundrocktexas.gov>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-09-18 15:31:51 -03:00

463 lines
24 KiB
Text

[% USE raw %]
[% USE Asset %]
[% USE Koha %]
[% USE KohaDates %]
[% USE AuthorisedValues %]
[% USE Branches %]
[% PROCESS 'i18n.inc' %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>[% FILTER collapse %]
[% t("Details for") | html %] [% INCLUDE 'patron-title.inc' no_html = 1 %] &rsaquo;
[% t("Housebound") | html %] &rsaquo;
[% t("Koha") | html %]
[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="housebound-home" class="housebound">
[% WRAPPER 'header.inc' %]
[% INCLUDE 'patron-search-header.inc' %]
[% END %]
[% BLOCK 'homebound-details' %]
<div class="rows">
<ol>
<li>
<span class="label" class="required"> Delivery day:</span>
[% hpd = housebound_profile.day %]
[% IF hpd == 'any' %]<span>Any</span>
[% ELSIF hpd == 'monday' %]<span>Monday</span>
[% ELSIF hpd == 'tuesday' %]<span>Tuesday</span>
[% ELSIF hpd == 'wednesday' %]<span>Wednesday</span>
[% ELSIF hpd == 'thursday' %]<span>Thursday</span>
[% ELSIF hpd == 'friday' %]<span>Friday</span>
[% ELSIF hpd == 'saturday' %]<span>Saturday</span>
[% ELSIF hpd == 'sunday' %]<span>Sunday</span>
[% END %]
</li>
<li>
<span class="label" class="required">Frequency:</span>
[% AuthorisedValues.GetByCode( 'HSBND_FREQ', housebound_profile.frequency, 0 ) || housebound_profile.frequency | html %]
</li>
<li>
<span class="label">Material:</span><br />
[% housebound_profile.fav_itemtypes | html | html_line_break %]
</li>
<li>
<span class="label">Subjects:</span><br />
[% housebound_profile.fav_subjects | html | html_line_break %]
</li>
<li>
<span class="label">Authors:</span><br />
[% housebound_profile.fav_authors | html | html_line_break %]
</li>
<li>
<span class="label">Referral:</span><br />
[% housebound_profile.referral | html | html_line_break %]
</li>
<li>
<span class="label">Notes:</span><br />
[% housebound_profile.notes | html | html_line_break %]
</li>
</ol>
</div>
[% END %]
[% WRAPPER 'sub-header.inc' %]
[% WRAPPER breadcrumbs %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
[% END %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% INCLUDE 'patron-title.inc' %]</a>
[% END %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>Housebound details</span>
[% END %]
[% END #/ WRAPPER breadcrumbs %]
[% END #/ WRAPPER sub-header.inc %]
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% INCLUDE 'members-toolbar.inc' %]
<h1>Housebound details for [% INCLUDE 'patron-title.inc' %]</h1>
[% FOR m IN messages %]
<div class="dialog [% m.type | html %]">
[% SWITCH m.code %]
[% CASE 'error_on_profile_store' %]
<span>An error occurred whilst updating this housebound profile</span>
[% CASE 'error_on_profile_create' %]
<span>An error occurred whilst creating this housebound profile</span>
[% CASE 'error_on_visit_load' %]
<span>An error occurred whilst loading the housebound visit</span>
[% CASE 'error_on_visit_delete' %]
<span>An error occurred whilst deleting a housebound visit</span>
[% CASE 'error_on_visit_store' %]
<span>An error occurred whilst updating a housebound visit</span>
[% CASE 'error_on_visit_create' %]
<span>An error occurred whilst creating a new housebound visit</span>
[% CASE %]
<span>[% m.code | html %]</span>
[% END %]
<span>Please try again later</span>
</div>
[% END %]
<!-- Create or edit housebound_profile -->
[% IF ( method == 'update_or_create' ) %]
<form id="editform" method="post" name="editform"
action="/cgi-bin/koha/members/housebound.pl">
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
[% IF ( housebound_profile ) %]
<input type="hidden" name="method" value="updateconfirm" />
[% ELSE %]
<input type="hidden" name="method" value="createconfirm" />
[% END %]
<fieldset id="houseboundentry" class="rows">
<legend>Manage housebound profile</legend>
<ol>
<li>
<label for="day" class="required">Delivery day:</label>
<select id="day" name="day" class="required" required="required">
<option value="">Select a day</option>
[% IF ( housebound_profile ) %]
[% IF ( housebound_profile.day == 'any' ) %]
<option value="any" selected='selected'>Any</option>
[% ELSE %]
<option value="any">Any</option>
[% END %]
[% IF ( housebound_profile.day == 'monday' ) %]
<option value="monday" selected='selected'>Monday</option>
[% ELSE %]
<option value="monday">Monday</option>
[% END %]
[% IF ( housebound_profile.day == 'tuesday' ) %]
<option value="tuesday" selected='selected'>Tuesday</option>
[% ELSE %]
<option value="tuesday">Tuesday</option>
[% END %]
[% IF ( housebound_profile.day == 'wednesday' ) %]
<option value="wednesday" selected='selected'>Wednesday</option>
[% ELSE %]
<option value="wednesday">Wednesday</option>
[% END %]
[% IF ( housebound_profile.day == 'thursday' ) %]
<option value="thursday" selected='selected'>Thursday</option>
[% ELSE %]
<option value="thursday">Thursday</option>
[% END %]
[% IF ( housebound_profile.day == 'friday' ) %]
<option value="friday" selected='selected'>Friday</option>
[% ELSE %]
<option value="friday">Friday</option>
[% END %]
[% IF ( housebound_profile.day == 'saturday' ) %]
<option value="saturday" selected='selected'>Saturday</option>
[% ELSE %]
<option value="saturday">Saturday</option>
[% END %]
[% IF ( housebound_profile.day == 'sunday' ) %]
<option value="sunday" selected='selected'>Sunday</option>
[% ELSE %]
<option value="sunday">Sunday</option>
[% END %]
[% ELSE %]
<option value="any">Any</option>
<option value="monday">Monday</option>
<option value="tuesday">Tuesday</option>
<option value="wednesday">Wednesday</option>
<option value="thursday">Thursday</option>
<option value="friday">Friday</option>
<option value="saturday">Saturday</option>
<option value="sunday">Sunday</option>
[% END %]
</select>
<span class="required">Required</span>
</li>
<li>
<label for="frequency" class="required">Frequency:</label>
<select id="frequency" name="frequency" class="required" required="required">
<option value="">Select a frequency</option>
[% FOREACH frequency IN AuthorisedValues.GetAuthValueDropbox('HSBND_FREQ') %]
[% IF housebound_profile.frequency == frequency.authorised_value %]
<option value="[% frequency.authorised_value | html %]" selected="selected">[% frequency.lib | html %]</option>
[% ELSE %]
<option value="[% frequency.authorised_value | html %]">[% frequency.lib | html %]</option>
[% END %]
[% END %]
</select>
<span class="required">Required</span>
</li>
<li>
<label for="fav_itemtypes">Preferred materials:</label>
[% IF ( housebound_profile ) %]
<textarea id="fav_itemtypes" name="fav_itemtypes" cols="110" rows="10">[% housebound_profile.fav_itemtypes | html %]</textarea>
[% ELSE %]
<textarea id="fav_itemtypes" name="fav_itemtypes" cols="110" rows="10"></textarea>
[% END %]
</li>
<li>
<label for="fav_subjects">Subjects:</label>
[% IF ( housebound_profile ) %]
<textarea id="fav_subjects" name="fav_subjects" cols="110" rows="10">[% housebound_profile.fav_subjects | html %]</textarea>
[% ELSE %]
<textarea id="fav_subjects" name="fav_subjects" cols="110" rows="10"></textarea>
[% END %]
</li>
<li>
<label for="fav_authors">Authors:</label>
[% IF ( housebound_profile ) %]
<textarea id="fav_authors" name="fav_authors" cols="110" rows="10">[% housebound_profile.fav_authors | html %]</textarea>
[% ELSE %]
<textarea id="fav_authors" name="fav_authors" cols="110" rows="10"></textarea>
[% END %]
</li>
<li>
<label for="referral">Referral:</label>
[% IF ( housebound_profile ) %]
<textarea id="referral" name="referral" cols="110" rows="10">[% housebound_profile.referral | html %]</textarea>
[% ELSE %]
<textarea id="referral" name="referral" cols="110" rows="10"></textarea>
[% END %]
</li>
<li>
<label for="notes">Notes:</label>
[% IF ( housebound_profile ) %]
<textarea id="notes" name="notes" cols="110" rows="10">[% housebound_profile.notes | html %]</textarea>
[% ELSE %]
<textarea id="notes" name="notes" cols="110" rows="10"></textarea>
[% END %]
</li>
</ol>
</fieldset>
<fieldset class="action">
<button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> Save changes</button>
<a class="cancel btn btn-link"
href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% patron.borrowernumber | html %]">
Cancel
</a>
</fieldset>
</form>
<!-- Create or edit housebound_visit -->
[% ELSIF ( method == 'visit_update_or_create' ) %]
<h4>Manage housebound deliveries</h4>
<form name="form" id="instance_form" method="post"
action="/cgi-bin/koha/members/housebound.pl">
[% IF ( visit ) %]
<input type="hidden" name="method" value="editvisitconfirm" />
<input type="hidden" name="visit_id" value="[% visit.id | html %]" />
[% ELSE %]
<input type="hidden" name="method" value="addvisitconfirm" />
[% END %]
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
<fieldset class="rows" id="instance">
<legend>Delivery details</legend>
<ol>
<li>
<label for="date" class="required">Date: </label>
[% IF ( visit ) %]
<input type="text" id="date" class="flatpickr required"
value="[% visit.appointment_date | $KohaDates %]"
name="date" size="20" required="required"/>
[% ELSE %]
<input type="text" id="date" class="flatpickr required"
value="" name="date" size="20" required="required"/>
[% END %]
<span class="required">Required</span>
<div class="hint">[% INCLUDE 'date-format.inc' %]</div>
</li>
<li>
<label for="segment" class="required">Time:</label>
<select id="segment" name="segment" required="required"
class="required">
<option value="">Select a time</option>
[% IF ( visit ) %]
[% IF ( visit.day_segment == 'morning' ) %]
<option value="morning" selected="selected">
Morning
</option>
[% ELSE %]
<option value="morning">Morning</option>
[% END %]
[% IF ( visit.day_segment == 'afternoon' ) %]
<option value="afternoon" selected="selected">
Afternoon
</option>
[% ELSE %]
<option value="afternoon">Afternoon</option>
[% END %]
[% IF ( visit.day_segment == 'evening' ) %]
<option value="evening" selected="selected">
Evening
</option>
[% ELSE %]
<option value="evening">Evening</option>
[% END %]
[% ELSE %]
<option value="morning">Morning</option>
<option value="afternoon">Afternoon</option>
<option value="evening">Evening</option>
[% END %]
</select>
<span class="required">Required</span>
</li>
<li>
<label for="chooser" class="required"> Chooser:</label>
<select id="chooser" name="chooser" class="required" required="required">
<option value="">Select a chooser</option>
[% IF ( visit ) %]
[% FOREACH chooser IN choosers %]
[% IF ( visit.chooser_brwnumber == chooser.borrowernumber ) %]
<option value="[% chooser.borrowernumber | html %]" selected="selected">
[% INCLUDE 'patron-title.inc' patron = chooser invert_name = 0 %]
</option>
[% ELSE %]
<option value="[% chooser.borrowernumber | html %]">
[% INCLUDE 'patron-title.inc' patron = chooser invert_name = 0 %]
</option>
[% END %]
[% END %]
[% ELSE %]
[% FOREACH chooser IN choosers %]
<option value="[% chooser.borrowernumber | html %]">
[% INCLUDE 'patron-title.inc' patron = chooser invert_name = 0 %]
</option>
[% END %]
[% END %]
</select>
<span class="required">Required</span>
</li>
<li>
<label for="deliverer" class="required">Deliverer:</label>
<select id="deliverer" name="deliverer" class="required" required="required">
<option value="">Select a deliverer</option>
[% IF ( visit ) %]
[% FOREACH deliverer IN deliverers %]
[% IF ( visit.deliverer_brwnumber == deliverer.borrowernumber ) %]
<option value="[% deliverer.borrowernumber | html %]" selected="selected">
[% INCLUDE 'patron-title.inc' patron = deliverer invert_name = 0 %]
</option>
[% ELSE %]
<option value="[% deliverer.borrowernumber | html %]">
[% INCLUDE 'patron-title.inc' patron = deliverer invert_name = 0 %]
</option>
[% END %]
[% END %]
[% ELSE %]
[% FOREACH deliverer IN deliverers %]
<option value="[% deliverer.borrowernumber | html %]">
[% INCLUDE 'patron-title.inc' patron = deliverer invert_name = 0 %]
</option>
[% END %]
[% END %]
</select>
<span class="required">Required</span>
</li>
</ol>
</fieldset>
<fieldset class="action">
<button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-save"></i> Save</button>
<a class="cancel"
href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% patron.borrowernumber | html %]">
Cancel
</a>
</fieldset>
</form>
<div class="page-section">
<h3>Housebound details</h3>
[% PROCESS 'homebound-details' %]
<!-- Display a housebound_profile -->
</div> <!-- /.page-section -->
[% ELSIF ( housebound_profile ) %]
<div class="page-section">
[% PROCESS 'homebound-details' %]
<div class="action">
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/members/housebound.pl?borrowernumber=[% patron.borrowernumber | html %]&method=update_or_create"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a>
</div>
</div> <!-- /.page-section -->
<div class="page-section">
<h3>Deliveries</h3>
[% housebound_visits = housebound_profile.housebound_visits %]
[% IF housebound_visits.count > 0 %]
<table id="deliveries">
<thead>
<tr>
<th>ID</th>
<th>Date</th>
<th>Chooser</th>
<th>Deliverer</th>
<th class="noExport">Actions</th>
</tr>
</thead>
<tbody>
[% FOREACH entry IN housebound_visits %]
<tr>
<td>[% entry.id | html %]</td>
<td>[% entry.appointment_date | $KohaDates %] ([% entry.day_segment | html %])</td>
<td>
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% entry.chooser.borrowernumber | uri %]">
[% INCLUDE 'patron-title.inc' patron = entry.chooser invert_name = 0 %]
</a>
</td>
<td>
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% entry.deliverer.borrowernumber | uri %]">
[% INCLUDE 'patron-title.inc' patron = entry.deliverer invert_name = 0 %]
</a>
</td>
<td class="actions">
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/members/housebound.pl?method=visit_update_or_create&visit_id=[% entry.id | html %]&borrowernumber=[% patron.borrowernumber | html %]"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a>
<a class="delete btn btn-default btn-xs" href="/cgi-bin/koha/members/housebound.pl?method=visit_delete&visit_id=[% entry.id | html %]&borrowernumber=[% patron.borrowernumber | html %]"><i class="fa fa-trash-can"></i> Delete</a>
</td>
</tr>
[% END %]
</tbody>
</table>
[% END %]
<div class="action">
<a href="/cgi-bin/koha/members/housebound.pl?method=visit_update_or_create&borrowernumber=[% patron.borrowernumber | uri %]"
class="btn btn-default btn-sm">
<i class="fa fa-plus"></i> Add a new delivery
</a>
</div>
</div> <!-- /.page-section -->
[% END %]
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
[% INCLUDE 'circ-menu.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div> <!-- /.row -->
[% MACRO jsinclude BLOCK %]
[% INCLUDE 'calendar.inc' %]
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
<script>
$(document).ready(function() {
$("a.delete").click(function(){
return confirm(_("Are you sure you want to delete this delivery?"));
});
});
KohaTable("deliveries", {
"sPaginationType": "full",
"autoWidth": false,
});
</script>
[% INCLUDE 'str/members-menu.inc' %]
[% Asset.js("js/members-menu.js") | $raw %]
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]