show payments tab when the user has any payments, even if there is no money owed
authorberick <berick@esilibrary.com>
Wed, 30 Mar 2011 18:58:12 +0000 (14:58 -0400)
committerberick <berick@esilibrary.com>
Wed, 30 Mar 2011 18:58:12 +0000 (14:58 -0400)
Open-ILS/web/opac/skin/kcls/js/myopac.js
Open-ILS/web/opac/skin/kcls/xml/myopac/myopac_summary.xml

index 52344e8..26ed394 100644 (file)
@@ -157,7 +157,7 @@ function myOPACChangePage( page ) {
 
        switch( page ) {
                case "summary": unHideMe(ss);
-                       if($('show_fines_link').innerHTML=="Hide Overdue Materials") unHideMe(ff);
+                       if($('show_fines_link').innerHTML=="Hide Overdue Materials" || userHasPayments) unHideMe(ff);
             oncomplete = myOPACDrawSummary;
                        break;
 
@@ -250,6 +250,7 @@ function myOPACGrabPageData(page, oncomplete) {
 }
 
 
+var userHasPayments = false;
 function myOPACDrawSummary() {
     var stats = userVitalStats; // see misc.js
        if(!stats) return;
@@ -263,7 +264,31 @@ function myOPACDrawSummary() {
                showFinesDiv($('show_fines_link'));
                unHideMe($('pay_fines_btn1'));
                unHideMe($('show_fines_link'));
+               unHideMe($('acct_fines_tab'));
     }
+
+    // If the user has any payment, make sure the payments tab is visible
+    var before = new Date()
+    before.setFullYear(before.getFullYear() - 1);
+    var req = new Request(
+        'open-ils.actor:open-ils.actor.user.payments.retrieve.atomic', 
+        G.user.session, G.user.id(), 
+        {"where":{"payment_ts":{">=":dojo.date.stamp.toISOString(before)}}, "limit":1});
+
+    req.callback(
+        function(r) {
+            var pays = r.getResultObject();
+            if(pays && pays.length) {
+                userHasPayments = true;
+                unHideMe($('myopac_fines_div'));
+                unHideMe($('acct_payments_tab'));
+                // if the user has no owed fines, show the payments by default
+                if(stats.fines.balance_owed == 0)
+                    myopacDrawPayments();
+            }
+        }
+    );
+    req.send();
 }
 
 function myOPACInitTemplates() {
@@ -1435,7 +1460,7 @@ function myopacDrawPayments() {
     // KCLS limits payment history view to 1 year.  This will eventually be expanded 
     // out to a history view page, but for now, just fetch what's needed.
     var req = new Request(
-        'open-ils.actor:open-ils.actor.user.payments.retrieve', 
+        'open-ils.actor:open-ils.actor.user.payments.retrieve.atomic', 
         G.user.session, G.user.id(), 
         {"where":{"payment_ts":{">=":dojo.date.stamp.toISOString(before)}}});
 
index f07d086..e013cae 100644 (file)
@@ -51,8 +51,8 @@
     <!-- tab-like options for selection Fines or Payments view -->
     <div id='fines_payments_wrapper' style='padding-left: 5px; padding-right: 5px;'>
         <div id='acct_fines_tabs'>
-            <a id='acct_fines_tab' href='javascript:;' onclick='showFinesTab();'></a>
-            <a id='acct_payments_tab' href='javascript:;' onclick='myopacDrawPayments();'></a>
+            <a id='acct_fines_tab' href='javascript:;' onclick='showFinesTab();' class='hide_me'></a>
+            <a id='acct_payments_tab' href='javascript:;' onclick='myopacDrawPayments();' class='hide_me'></a>
         </div>
     </div>