From e5edc8c0e9cb4152f795b4bc712271c080341cd7 Mon Sep 17 00:00:00 2001
From: Agustin Moyano <agustinmoyano@theke.io>
Date: Wed, 20 Mar 2019 00:16:05 -0300
Subject: [PATCH] Bug 22538: Add a noticeable alert about waiting holds

In SCO, bug 21772 introduced holds information, but it lacked the
capability to attract atention when any of those holds was in waiting
status. Because SCO and opac-user uses the same include file for holds
table, this bug applies to both modules.

To test:
1) Have a patron with holds in waiting status and pending status.
2) Enable SCO module.
3) Holds tab label contains holds count, but doesn't inform that there
   is something that requires attention.
5) Holds tab content has no visual aid to recognize without reading
   effort which holds are in waiting status.
6) Apply this patch
   => SUCCESS: Holds tab label has a visual aid to indicate that
      something requires attention, and in
      holds table it's easy to recognize waiting holds without reading
      effort.
7) Sign off

Sponsored-by: Theke Solutions

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
---
 .../bootstrap/en/includes/holds-table.inc        |  1 +
 .../bootstrap/en/modules/sco/sco-main.tt         | 16 ++++++++++++++--
 opac/sco/sco-main.pl                             |  6 ++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc
index 9673d5b106..e96a73caa0 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc
@@ -104,6 +104,7 @@
                         <td class="status">
                             <span class="tdlabel">Status:</span>
                             [% IF ( HOLD.is_waiting ) %]
+                                <i class="fa fa-exclamation-circle text-warning"></i>
                                 [% IF ( HOLD.is_at_destination ) %]
                                     [% IF ( HOLD.found ) %]
                                         Item waiting at <b> [% HOLD.branch.branchname | html %]</b>
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt
index 44084590ba..8477016426 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt
@@ -9,9 +9,14 @@
 <title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha [% END %] &rsaquo; Self checkout </title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="generator" content="Koha [% Version | html %]" /> <!-- leave this for stats -->
-<link rel="shortcut icon" href="[% IF ( Koha.Preference('OpacFavicon') ) %][% Koha.Preference('OpacFavicon') | url %][% ELSE %][% interface | html %]/[% theme | html %]/images/favicon.ico[% END %]" type="image/x-icon" />
+[% IF ( Koha.Preference('OpacFavicon') ) %]
+<link rel="shortcut icon" href="[% Koha.Preference('OpacFavicon') | url %]" type="image/x-icon" />
+[% ELSE %]
+<link rel="shortcut icon" href="[% interface | html %]/[% theme | html %]/images/favicon.ico" type="image/x-icon" />
+[% END %]
 [% Asset.css("lib/bootstrap/css/bootstrap.min.css") | $raw %]
 [% Asset.css("lib/jquery/jquery-ui.css") | $raw %]
+[% Asset.css("lib/font-awesome/css/font-awesome.min.css") | $raw %]
 [% Asset.css("css/sco.css") | $raw %]
 [% IF ( Koha.Preference('OPACUserCSS') ) %]<style>[% Koha.Preference('OPACUserCSS') | $raw %]</style>[% END %]
 [% IF ( Koha.Preference('SCOUserCSS') ) %]<style>[% Koha.Preference('SCOUserCSS') | $raw %]</style>[% END %]
@@ -254,7 +259,14 @@
                         <div class="tabbable">
                             <ul class="nav nav-tabs">
                                 <li class="active"><a href="#checkouts-tab" data-toggle="tab">Checkouts ([% issues_count | html %])</a></li>
-                                <li><a href="#holds-tab" data-toggle="tab">Holds ([% HOLDS.count | html %])</a></li>
+                                <li>
+                                    <a href="#holds-tab" data-toggle="tab">
+                                        [% IF waiting_holds_count %]
+                                            <i class="fa fa-exclamation"></i>
+                                        [% END %]
+                                        Holds ([% HOLDS.count | html %])
+                                    </a>
+                                </li>
                                 <li><a href="#account-tab" data-toggle="tab">Fines and charges ([% total | $Price %])</a></li>
                             </ul>
                             <div class="tab-content">
diff --git a/opac/sco/sco-main.pl b/opac/sco/sco-main.pl
index 7fd6ee8e40..c78b21cefe 100755
--- a/opac/sco/sco-main.pl
+++ b/opac/sco/sco-main.pl
@@ -299,6 +299,11 @@ if ($borrower) {
     }
 
     my $holds = $patron->holds;
+    my $waiting_holds_count = 0;
+
+    while(my $hold = $holds->next) {
+        $waiting_holds_count++ if $hold->is_waiting;
+    }
 
     $template->param(
         validuser => 1,
@@ -310,6 +315,7 @@ if ($borrower) {
         patronid => $patronid,
         patronlogin => $patronlogin,
         patronpw => $patronpw,
+        waiting_holds_count => $waiting_holds_count,
         noitemlinks => 1 ,
         borrowernumber => $borrower->{'borrowernumber'},
         SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'),
-- 
2.21.0