sort xacts newest to oldest; select no xacts for payment by default; improved date...
authorBill Erickson <berick@esilibrary.com>
Wed, 9 Feb 2011 19:20:14 +0000 (14:20 -0500)
committerBill Erickson <berick@esilibrary.com>
Wed, 9 Feb 2011 19:20:14 +0000 (14:20 -0500)
Open-ILS/web/opac/skin/kcls/js/myopac.js
Open-ILS/web/opac/skin/kcls/xml/myopac/myopac_summary.xml

index 1cfbd94..168bc5f 100644 (file)
@@ -1363,6 +1363,14 @@ function myOPACShowTransactions(r) {
        removeChildren($('myopac_trans_tbody'));\r
        removeChildren($('myopac_circ_trans_tbody'));\r
        transCache = [];\r
+\r
+    transactions = transactions.sort(\r
+        function(a, b) {\r
+            if(a.transaction.xact_start() < b.transaction.xact_start())\r
+                return 1;\r
+            else return -1;\r
+        }\r
+    );\r
        \r
        for( var idx in transactions ) {\r
                var trans       = transactions[idx].transaction;\r
@@ -1414,8 +1422,12 @@ function _myopacDrawPayments(r) {
             );\r
             $n(row, 'for').innerHTML = (payment.title) ? payment.title : payment.last_billing_type;\r
             $n(row, 'amount').innerHTML += Number(payment.mp.amount()).toFixed(2);\r
-            $n(row, 'print_recpt').onclick = function () { printPaymentReceipt([payment.mp.id()]) };\r
-            $n(row, 'email_recpt').onclick = function () { emailPaymentReceipt([payment.mp.id()]) };\r
+            if(payment.mp.payment_type() == 'credit_card_payment') {\r
+                $n(row, 'print_recpt').onclick = function () { printPaymentReceipt([payment.mp.id()]) };\r
+                $n(row, 'email_recpt').onclick = function () { emailPaymentReceipt([payment.mp.id()]) };\r
+            } else {\r
+                $n(row, 'print_recpt').parentNode.style.visibility = 'hidden';\r
+            }\r
             tbody.appendChild(row);\r
         }\r
     );\r
@@ -1438,12 +1450,20 @@ function emailPaymentReceipt(paymentIds) {
     );\r
 }\r
 \r
+function dateFromISO(d) {\r
+    if(!d) return '';\r
+    return dojo.date.locale.format( \r
+        dojo.date.stamp.fromISOString(d),\r
+        {selector:'date', fullYear: true}\r
+    );\r
+}\r
+\r
 function myopacShowGenericTransaction( trans ) {\r
        var tbody = $('myopac_trans_tbody');\r
 \r
        var row = myopacGenericTransTemplate.cloneNode(true);\r
-       $n(row,'myopac_trans_start').appendChild(text(_trimSeconds(trans.xact_start())));\r
-       $n(row,'myopac_trans_last_payment').appendChild(text(_trimSeconds(trans.last_payment_ts())));\r
+       $n(row,'myopac_trans_start').appendChild(text(dateFromISO(trans.xact_start())));\r
+       $n(row,'myopac_trans_last_payment').appendChild(text(dateFromISO(trans.last_payment_ts())));\r
        $n(row,'myopac_trans_init_amount').appendChild(text(_finesFormatNumber(trans.total_owed())));\r
        $n(row,'myopac_trans_total_paid').appendChild(text(_finesFormatNumber(trans.total_paid())));\r
        $n(row,'myopac_trans_balance').appendChild(text(_finesFormatNumber(trans.balance_owed())));\r
@@ -1477,10 +1497,10 @@ function myOPACShowCircTransaction(trans, record, circ) {
                }\r
        }\r
        \r
-       $n(row,'myopac_circ_trans_start').appendChild(text(_trimTime(trans.xact_start())));\r
+       $n(row,'myopac_circ_trans_start').appendChild(text(dateFromISO(trans.xact_start())));\r
 \r
-    var due = _trimTime(circ.due_date());\r
-       var checkin = _trimTime(circ.stop_fines_time());\r
+    var due = dateFromISO(circ.due_date());\r
+       var checkin = dateFromISO(circ.stop_fines_time());\r
 \r
        $n(row,'myopac_circ_trans_due').appendChild(text(due))\r
        if(checkin) appendClear($n(row,'myopac_circ_trans_finished'), text(checkin));\r
@@ -1511,20 +1531,23 @@ function showFinesDiv(el) {
 function showPaymentForm() {\r
        unHideMe($('pay_fines_now'));\r
        hideMe($('acct_sum'));\r
+    hideMe($('cc-payment-error-message'));\r
        drawPayFinesPage(\r
                G.user,\r
                getSelectedFinesTotal(),\r
                getSelectedFineTransactions(),\r
                function(resp) {\r
+            unHideMe($('cc-payment-error-message'));\r
                        if(resp.textcode) {\r
                                var message = resp.textcode+'\n'+resp.desc + '';\r
                                if(resp.textcode == 'CREDIT_PROCESSOR_DECLINED_TRANSACTION' && resp.payload)\r
                                        message += '\n' + resp.payload.error_message;\r
-                               alert(message);\r
+                alert(js2JSON(resp));\r
+                $('cc-payment-error-message').innerHTML = message;\r
                                return;\r
                        }\r
                        G.user.last_xact_id(resp.last_xact_id); // update to match latest from server\r
-                       alert('Payment Successful\nTRANSACTION ID: '+resp.last_xact_id);\r
+            $('cc-payment-error-message').innerHTML = 'Payment Successful\nTRANSACTION ID: '+resp.last_xact_id;\r
                        printPaymentReceipt(resp.payments);\r
                        hideMe($('pay_fines_now'));unHideMe($('acct_sum'));\r
                        finesShown = false;\r
index f385399..38890c4 100644 (file)
@@ -46,6 +46,7 @@
                </tbody>\r
        </table>\r
 \r
+    <!-- tab-like options for selection Fines or Payments view -->\r
     <style>\r
         .myopac_xact_tab { font-size: 150%; border: 1px solid #888; background: #3399cc;}\r
         .myopac_xact_tab_selected { background: #FFF; }\r
@@ -60,7 +61,7 @@
                     addCSSClass($("myopac_fines_tab_link").parentNode, "myopac_xact_tab_selected");\r
                     removeCSSClass($("myopac_payments_tab_link").parentNode, "myopac_xact_tab_selected");'>Fines</a>\r
         </span>\r
-        <span class='myopac_xact_tab'>\r
+        <span class='myopac_xact_tab' style='margin-left: 15px;'>\r
             <a href='javascript:;' id='myopac_payments_tab_link' onclick='myopacDrawPayments()'>Payments</a>\r
         </span>\r
     </div>\r
                                        <td>&myopac.fines.returned;</td>\r
                                        <td>&myopac.fines.balance;</td>\r
                                        <td align="center" nowrap="nowrap" style="white-space:nowrap;"><label for="pay_fines_box1">Pay Fines</label><br />\r
-                        <input id="pay_fines_box1" checked="checked" type="checkbox" \r
+                        <input id="pay_fines_box1" type="checkbox" \r
                             onclick="checkAll($('myopac_circ_trans_tbody'), this, 'selector');" class="" title="Click to (un)select all fines" />\r
                     </td>\r
                                </tr>\r
                                        <td name='myopac_circ_trans_due'> </td>\r
                                        <td name='myopac_circ_trans_finished'><span style='color:red;'>&myopac.fines.accruing;</span></td>\r
                                        <td><span style='color: red; font-weight: bold;' name='myopac_circ_trans_balance'>&common.currency;</span></td>\r
-                                       <td align="center"><input type="checkbox" class="" checked="checked" name="selector" title="pay this fine" /></td>\r
+                                       <td align="center"><input type="checkbox" class="" name="selector" title="pay this fine" /></td>\r
                                </tr>\r
                        </tbody>\r
                </table>\r
                        <thead>\r
                                <tr><td colspan='8' style='padding: 6px'><b>&myopac.fines.other;</b></td></tr>\r
                                <tr>\r
-                                       <td width='16%'>&myopac.fines.time.start;</td>\r
+                                       <td width='16%'>Date Applied</td>\r
                                        <td width='16%'>&myopac.fines.time.paid;</td>\r
                                        <td width='16%'>&myopac.fines.owed.initial;</td>\r
                                        <td width='16%'>&myopac.fines.paid.amount;</td>\r
                                        <td width='16%'>&myopac.fines.balance;</td>\r
                                        <td width='16%'>&myopac.fines.type;</td>\r
-                                       <td width='4%' align="center" nowrap="nowrap" style="white-space:nowrap;"><label for="pay_fines_box2">Pay Fines</label><br /><input id="pay_fines_box2" checked="checked" class="" type="checkbox" onclick="checkAll($('myopac_trans_tbody'), this, 'selector');" title="Click to (un)select all fines" /></td>\r
+                                       <td width='4%' align="center" nowrap="nowrap" style="white-space:nowrap;"><label for="pay_fines_box2">Pay Fines</label><br /><input id="pay_fines_box2" class="" type="checkbox" onclick="checkAll($('myopac_trans_tbody'), this, 'selector');" title="Click to (un)select all fines" /></td>\r
                                </tr>\r
                        </thead>\r
        \r
                                                <span name='myopac_trans_balance'>&common.currency;</span>\r
                                        </td>\r
                                        <td name='myopac_trans_bill_type'> </td>\r
-                                       <td align="center"><input type="checkbox" name='selector' title='pay this fine' checked="checked" /></td>\r
+                                       <td align="center"><input type="checkbox" name='selector' title='pay this fine' /></td>\r
                                </tr>\r
                        </tbody>\r
                </table>\r
 </div>\r
 \r
 <div id="pay_fines_now" class="hide_me">\r
+<div id='cc-payment-error-message' style='font-weight: bold; color: red; padding: 10px; border: 1px solid #888' class='hide_me'/>\r
 <table id='oils-selfck-cc-payment-table'>\r
     <tbody>\r
                <tr>\r