LP#1982217: include ebooks in My Account circ/hold counts in Bootstrap
authorJeff Davis <jdavis@sitka.bclibraries.ca>
Tue, 19 Jul 2022 19:44:07 +0000 (12:44 -0700)
committerJeff Davis <jdavis@sitka.bclibraries.ca>
Mon, 24 Oct 2022 19:00:01 +0000 (12:00 -0700)
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Open-ILS/src/templates-bootstrap/opac/parts/myopac/base.tt2
Open-ILS/web/js/ui/default/opac/ebook_api/loggedin.js

index 1cf7185..4039bf8 100755 (executable)
@@ -9,15 +9,15 @@
 
         {children => 0, parent => "parent", url => "messages", text => l("<i class='fas fa-envelope' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Messages",  ctx.user_stats.messages.unread), name => l("Messages")},
 
-        {children => 3, parent => "parent",url => "circs", text => l("<i class='fas fa-book' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Items Checked Out", ctx.user_stats.checkouts.total_out), name = l("Circulations")},
-        {children => 0, parent => "circs", url => "circs", text => l("<i class='fas fa-book-reader' aria-hidden='true'></i> Items Checked Out"), name=> l("Circulations")},
-        {children => 0, parent => "circs", url => "ebook_circs", text => l("<i class='fas fa-desktop' aria-hidden='true'></i> E-Items Checked Out"), name => l("E-Items Checked Out")},
+        {children => 3, parent => "parent",url => "circs", text => l("<i class='fas fa-book' aria-hidden='true'></i> <span class='sumNum' id='my_nav_all_checked'>[_1]</span>Items Checked Out", ctx.user_stats.checkouts.total_out), name = l("Circulations")},
+        {children => 0, parent => "circs", url => "circs", text => l("<i class='fas fa-book-reader' aria-hidden='true'></i> <span class='sumNum' id='my_nav_checked'>[_1]</span>Items Checked Out", ctx.user_stats.checkouts.total_out), name=> l("Circulations")},
+        {children => 0, parent => "circs", url => "ebook_circs", text => l("<i class='fas fa-desktop' aria-hidden='true'></i> <span class='sumNum' id='my_nav_e_checked'>0</span>E-Items Checked Out"), name => l("E-Items Currently Checked Out")},
         {children => 0, parent => "circs", url => "circ_history", text => l("<i class='fas fa-history' aria-hidden='true'></i> Check Out History"), name => l("Check Out History")},
 
-        {children => 5, parent => "parent",url => "holds", text => l("<i class='fas fa-clock' aria-hidden='true'></i> <span class='sumNum'>[_1]</span>Holds / <span class='sumNum'>[_2]</span> Ready", ctx.user_stats.holds.total, ctx.user_stats.holds.ready), name => l("Holds")},
-        {children => 0, parent => "holds", url => "holds", text => l("<i class='fas fa-hands' aria-hidden='true'></i> Items on Hold"), name => l("Holds")},
-        {children => 0, parent => "holds", url => "ebook_holds", text => l("<i class='fas fa-desktop' aria-hidden='true'></i> E-Items on Hold"), name => l("E-Items on Hold")},
-        {children => 0, parent => "holds", url => "ebook_holds_ready", text => l("<i class='fas fa-download' aria-hidden='true'></i>  E-Items Ready for Checkout"), name => l("E-Items Ready for Checkout")},
+        {children => 5, parent => "parent",url => "holds", text => l("<i class='fas fa-clock' aria-hidden='true'></i> <span class='sumNum' id='my_nav_all_holds'>[_1]</span>Holds / <span class='sumNum' id='my_nav_all_pickup'>[_2]</span> Ready", ctx.user_stats.holds.total, ctx.user_stats.holds.ready), name => l("Holds")},
+        {children => 0, parent => "holds", url => "holds", text => l("<i class='fas fa-hands' aria-hidden='true'></i> <span class='sumNum' id='my_nav_holds'>[_1]</span>Items on Hold", ctx.user_stats.holds.total), name => l("Holds")},
+        {children => 0, parent => "holds", url => "ebook_holds", text => l("<i class='fas fa-desktop' aria-hidden='true'></i> <span class='sumNum' id='my_nav_e_holds'>0</span>E-Items on Hold"), name => l("E-Items on Hold")},
+        {children => 0, parent => "holds", url => "ebook_holds_ready", text => l("<i class='fas fa-download' aria-hidden='true'></i> <span class='sumNum' id='my_nav_e_ready'>0</span>E-Items Ready for Checkout"), name => l("E-Items Ready for Checkout")},
         {children => 0, parent => "holds", url => "hold_history", text => l("<i class='fas fa-history' aria-hidden='true'></i> Holds History"), name => l("Holds History")},
 
         {children => 4, parent => "parent", url => "prefs", text => l("<i class='fas fa-cog' aria-hidden='true'></i> Preferences"),name => l("Preferences")},
index 9b7323a..7901c45 100644 (file)
@@ -58,6 +58,7 @@ dojo.addOnLoad(function() {
 function addTotalsToPage() {
     console.log('updating page with transaction totals');
     updateDashboard();
+    updateMyAccountNav();
     updateMyAccountSummary();
 }
 
@@ -113,6 +114,29 @@ function updateDashboard() {
     }
 }
 
+function updateMyAccountNav() {
+    console.log('updating My Account nav menu');
+    var total_checkouts = (typeof xacts.checkouts === 'undefined') ? 0 : xacts.checkouts.length;
+    var total_holds_pending = (typeof xacts.holds_pending === 'undefined') ? 0 : xacts.holds_pending.length;
+    var total_holds_ready = (typeof xacts.holds_ready === 'undefined') ? 0 : xacts.holds_ready.length;
+
+    // update totals
+    var allCheckout = parseInt( document.getElementById('my_nav_all_checked').innerHTML, 10 );
+    if (!isNaN(allCheckout))
+        document.getElementById('my_nav_all_checked').innerHTML = allCheckout + total_checkouts;
+
+    var allHolds = parseInt( document.getElementById('my_nav_all_holds').innerHTML, 10 );
+    if (!isNaN(allHolds))
+        document.getElementById('my_nav_all_holds').innerHTML = allHolds + total_holds_pending;
+
+    var allPickup = parseInt( document.getElementById('my_nav_all_pickup').innerHTML, 10 );
+    if (!isNaN(allPickup))
+        document.getElementById('my_nav_all_pickup').innerHTML = allPickup + total_holds_ready;
+
+    document.getElementById('my_nav_e_checked').innerHTML = total_checkouts;
+    document.getElementById('my_nav_e_holds').innerHTML = total_holds_pending;
+    document.getElementById('my_nav_e_ready').innerHTML = total_holds_ready;
+}
 
 function updateMyAccountSummary() {
     if (myopac_page === 'main') {
@@ -125,9 +149,11 @@ function updateMyAccountSummary() {
         dojo.byId('acct_sum_ebook_hold_total').innerHTML = total_holds_pending;
         dojo.byId('acct_sum_ebook_hold_ready_total').innerHTML = total_holds_ready;
         // unhide display elements
+        /*
         dojo.removeClass('acct_sum_ebook_circs', "hidden");
         dojo.removeClass('acct_sum_ebook_holds', "hidden");
         dojo.removeClass('acct_sum_ebook_holds_ready', "hidden");
+        */
     }
 }