From 23ebae3bbcf09e4472e5bce1d15782c78484ace5 Mon Sep 17 00:00:00 2001 From: Lebbeous Fogle-Weekley Date: Wed, 2 Nov 2011 12:23:47 -0400 Subject: [PATCH] Acq: minor usability improvements to receiving copies from invoice 1) Show an "X out of Y copies received" message near the top of the display. 2) Provide a button to return to the primary interface for invoice view. Signed-off-by: Lebbeous Fogle-Weekley Signed-off-by: Mike Rylander --- Open-ILS/src/templates/acq/invoice/receive.tt2 | 5 +++ Open-ILS/web/js/dojo/openils/acq/nls/acq.js | 3 +- Open-ILS/web/js/ui/default/acq/invoice/receive.js | 30 +++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletions(-) diff --git a/Open-ILS/src/templates/acq/invoice/receive.tt2 b/Open-ILS/src/templates/acq/invoice/receive.tt2 index 6a2abb9..f728a7b 100644 --- a/Open-ILS/src/templates/acq/invoice/receive.tt2 +++ b/Open-ILS/src/templates/acq/invoice/receive.tt2 @@ -21,7 +21,9 @@

[% ctx.page_title %]

+

+

The remaining are listed below.

[ Use List Mode ] [ Use Numeric Mode ] @@ -57,6 +59,9 @@

+

+ +

diff --git a/Open-ILS/web/js/dojo/openils/acq/nls/acq.js b/Open-ILS/web/js/dojo/openils/acq/nls/acq.js index 9e29f0f..7d4ce58 100644 --- a/Open-ILS/web/js/dojo/openils/acq/nls/acq.js +++ b/Open-ILS/web/js/dojo/openils/acq/nls/acq.js @@ -85,5 +85,6 @@ "ADD_LI_TO_PO_BAD_LI_STATE" : "The selected lineitem is not in a state that can be added to a purchase order", "INVOICE_NUMBER": "Invoice #${0}", "COPIES_TO_RECEIVE": "Number of copies to receive: ", - "CREATE_PO_INVALID": "A purchase order must have an ordering agency and a provider." + "CREATE_PO_INVALID": "A purchase order must have an ordering agency and a provider.", + "INVOICE_COPY_COUNT_INFO": "Copies received on this invoice: ${0} out of ${1}." } diff --git a/Open-ILS/web/js/ui/default/acq/invoice/receive.js b/Open-ILS/web/js/ui/default/acq/invoice/receive.js index 3930b52..d414676 100644 --- a/Open-ILS/web/js/ui/default/acq/invoice/receive.js +++ b/Open-ILS/web/js/ui/default/acq/invoice/receive.js @@ -118,6 +118,24 @@ function ReceivableCopyTable() { // return n > 0 ? n : 0; }; + this._render_copy_count_info = function() { + dojo.byId("inv-copy-count-info").innerHTML = + dojo.string.substitute( + localeStrings.INVOICE_COPY_COUNT_INFO, + [this.copy_number_received, this.copy_number_total] + ); + }; + + this._increment_copy_count_info = function(li) { + var all_uncanceled = li.lineitem_details().filter( + function(lid) { return !lid.cancel_reason(); } + ); + this.copy_number_total += all_uncanceled.length; + this.copy_number_received += all_uncanceled.filter( + function(lid) { return Boolean(lid.recv_time()); } + ).length; + }; + this._add_lineitem_number_mode = function(details, li, preselect_count) { var tr = dojo.create("tr", null, this.tbody); var td = dojo.create("td", { @@ -181,6 +199,10 @@ function ReceivableCopyTable() { * that are still receivable, and preselect lineitem details up to the * number specified in ie.phys_item_count() */ this.add_lineitem = function(ie, li, displayHTML) { + /* This call only affects the blurb about received vs. total copies + * on the invoice near the top of the display. */ + this._increment_copy_count_info(li); + var receivable_details = this._get_receivable_details(li); if (!receivable_details.length) return; @@ -211,6 +233,8 @@ function ReceivableCopyTable() { this.user_has_acked = []; this.li_by_lid = {}; + this.copy_number_received = 0; + this.copy_number_total = 0; if (this.spinners) { for (var key in this.spinners) @@ -253,6 +277,8 @@ function ReceivableCopyTable() { } ); + this._render_copy_count_info(); + if (openils.Util.objectProperties(this.li_by_lid).length) { openils.Util.show("non-empty"); openils.Util.hide("empty"); @@ -345,6 +371,10 @@ function ReceivableCopyTable() { ); }; + this.back_to_invoice = function() { + location.href = oilsBasePath + "/acq/invoice/view/" + this.inv_id; + }; + this._init.apply(this, arguments); } -- 1.7.2.5