[open-ils-commits] r15254 - in trunk/Open-ILS: web/opac/locale/en-US xul/staff_client/chrome/content/main xul/staff_client/chrome/locale/en-US xul/staff_client/server/admin (phasefx)
svn at svn.open-ils.org
svn at svn.open-ils.org
Wed Dec 30 15:55:32 EST 2009
Author: phasefx
Date: 2009-12-30 15:55:27 -0500 (Wed, 30 Dec 2009)
New Revision: 15254
Added:
trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.js
trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.xul
Modified:
trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js
trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties
Log:
maintenance interface for patrons with negative balances. TODO: add library filter
Modified: trunk/Open-ILS/web/opac/locale/en-US/lang.dtd
===================================================================
--- trunk/Open-ILS/web/opac/locale/en-US/lang.dtd 2009-12-30 20:37:57 UTC (rev 15253)
+++ trunk/Open-ILS/web/opac/locale/en-US/lang.dtd 2009-12-30 20:55:27 UTC (rev 15254)
@@ -181,6 +181,9 @@
<!ENTITY staff.admin.work_log.list1.retrieve_patron_btn.accesskey "P">
<!ENTITY staff.admin.work_log.list2.retrieve_patron_btn.label "Retrieve Patron">
<!ENTITY staff.admin.work_log.list2.retrieve_patron_btn.accesskey "n">
+<!ENTITY staff.admin.patrons_due_refunds.caption "Patrons With Negative Balances">
+<!ENTITY staff.admin.patrons_due_refunds.menu.actions.label "Actions for Selected Patrons">
+<!ENTITY staff.admin.patrons_due_refunds.menu.actions.accesskey "A">
<!ENTITY staff.auth.login_header "Log in">
<!ENTITY staff.auth.logoff_prompt "Log off">
<!ENTITY staff.auth.logoff_prompt.accesskey "f">
@@ -654,6 +657,8 @@
<!ENTITY staff.main.menu.admin.local_admin.hold_matrix_matchpoint.label "Hold Policies">
<!ENTITY staff.main.menu.admin.local_admin.work_log.label "Work Log">
<!ENTITY staff.main.menu.admin.local_admin.work_log.accesskey "W">
+<!ENTITY staff.main.menu.admin.local_admin.patrons_due_refunds.label "Patrons with Negative Balances">
+<!ENTITY staff.main.menu.admin.local_admin.patrons_due_refunds.accesskey "N">
<!ENTITY staff.main.menu.admin.server_admin.label "Server Administration">
<!ENTITY staff.main.menu.admin.server_admin.conify.org_unit_type.label "Organization Types">
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js 2009-12-30 20:37:57 UTC (rev 15253)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/constants.js 2009-12-30 20:55:27 UTC (rev 15254)
@@ -152,6 +152,7 @@
'FM_ATEV_APROPOS_CIRC_VIA_COPY' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.copy.events.circ', 'secure' : true },
'FM_ATEV_CANCEL' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.event.cancel.batch', 'secure' : false },
'FM_ATEV_RESET' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.event.reset.batch', 'secure' : false },
+ 'FM_AU_BLOBS_WITH_NEGATIVE_BALANCE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.users.negative_balance' },
'FM_AU_ID_RETRIEVE_VIA_BARCODE_OR_USERNAME' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.retrieve_id_by_barcode_or_username' },
'FM_AU_IDS_RETRIEVE_VIA_HASH' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.patron.search.advanced' },
'FM_AU_LIST_RETRIEVE_VIA_GROUP' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.usergroup.members.retrieve' },
@@ -356,6 +357,7 @@
'XUL_PATRON_DISPLAY' : '/xul/server/patron/display.xul',
'XUL_PATRON_HORIZ_DISPLAY' : '/xul/server/patron/display_horiz.xul',
'XUL_PATRON_EDIT' : '/eg/actor/user/register',
+ 'XUL_PATRONS_DUE_REFUNDS' : '/xul/server/admin/patrons_due_refunds.xul',
'XUL_USER_PERM_EDITOR' : '/xul/server/patron/user_edit.xhtml',
'XUL_PATRON_HOLDS' : '/xul/server/patron/holds.xul',
'XUL_PATRON_INFO_NOTES' : '/xul/server/patron/info_notes.xul',
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js 2009-12-30 20:37:57 UTC (rev 15253)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js 2009-12-30 20:55:27 UTC (rev 15254)
@@ -581,6 +581,16 @@
);
}
],
+ 'cmd_local_admin_patrons_due_refunds' : [
+ ['oncommand'],
+ function() {
+ obj.set_tab(
+ obj.url_prefix(urls.XUL_PATRONS_DUE_REFUNDS),
+ { 'tab_name' : offlineStrings.getString('menu.local_admin.patrons_due_refunds.tab') },
+ {}
+ );
+ }
+ ],
'cmd_server_admin_org_type' : [
['oncommand'],
function() { open_conify_page('actor/org_unit_type', null); }
Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul 2009-12-30 20:37:57 UTC (rev 15253)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul 2009-12-30 20:55:27 UTC (rev 15254)
@@ -114,6 +114,7 @@
<command id="cmd_local_admin_circ_matrix_matchpoint"/>
<command id="cmd_local_admin_hold_matrix_matchpoint"/>
<command id="cmd_local_admin_work_log"/>
+ <command id="cmd_local_admin_patrons_due_refunds"/>
<!-- server admin menu commands -->
<command id="cmd_server_admin_org_type"/>
@@ -320,6 +321,7 @@
<menuitem label="&staff.server.admin.index.transit_list;" command="cmd_local_admin_transit_list"/>
<menuitem label="&staff.main.menu.admin.local_admin.circ_matrix_matchpoint.label;" command="cmd_local_admin_circ_matrix_matchpoint"/>
<menuitem label="&staff.main.menu.admin.local_admin.hold_matrix_matchpoint.label;" command="cmd_local_admin_hold_matrix_matchpoint"/>
+ <menuitem label="&staff.main.menu.admin.local_admin.patrons_due_refunds.label;" accesskey="&staff.main.menu.admin.local_admin.patrons_due_refunds.accesskey;" command="cmd_local_admin_patrons_due_refunds"/>
<menuitem label="&staff.main.menu.admin.local_admin.work_log.label;" accesskey="&staff.main.menu.admin.local_admin.work_log.accesskey;" command="cmd_local_admin_work_log"/>
</menupopup>
</menu>
Modified: trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties 2009-12-30 20:37:57 UTC (rev 15253)
+++ trunk/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties 2009-12-30 20:55:27 UTC (rev 15254)
@@ -240,6 +240,7 @@
menu.local_admin.circ_matrix_matchpoint.tab=Circulation Policies
menu.local_admin.hold_matrix_matchpoint.tab=Hold Policies
menu.local_admin.work_log.tab=Work Log
+menu.local_admin.patrons_due_refunds.tab=Patrons With Negative Balances
menu.circulation.staged_patrons.tab=Pending Patrons
load_printer_settings_error_description=Printer settings did not load cleanly with this version of Evergreen. You should reconfigure your printer under Printer Settings Editor.
load_printer_settings_error_title=Printer Settings
Added: trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.js (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.js 2009-12-30 20:55:27 UTC (rev 15254)
@@ -0,0 +1,173 @@
+var list; var error; var net; var rows;
+
+function $(id) { return document.getElementById(id); }
+
+//// parent interfaces often call these
+function default_focus() { $('au_list').focus(); }
+function refresh() { populate_list(); }
+////
+
+function patrons_due_refunds_init() {
+ try {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ if (typeof JSAN == 'undefined') {
+ throw(
+ $('commonStrings').getString('common.jsan.missing')
+ );
+ }
+
+ JSAN.errorLevel = "die"; // none, warn, or die
+ JSAN.addRepository('..');
+
+ JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
+
+ JSAN.use('util.error'); error = new util.error();
+ JSAN.use('util.network'); net = new util.network();
+ JSAN.use('patron.util');
+ JSAN.use('util.list');
+ JSAN.use('util.money');
+ JSAN.use('util.functional');
+ JSAN.use('util.widgets');
+
+ dojo.require('openils.Util');
+ dojo.require('dojo.date.locale');
+ dojo.require('dojo.date.stamp');
+
+ init_list();
+ $('list_actions').appendChild( list.render_list_actions() );
+ list.set_list_actions();
+ $('retrieve_patron').addEventListener('command', handle_retrieve, false);
+ populate_list();
+ default_focus();
+
+ } catch(E) {
+ var err_prefix = 'patrons_due_refundss.js -> patrons_due_refunds_init() : ';
+ if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
+ }
+}
+
+function handle_retrieve() {
+ try {
+ var sel = list.retrieve_selection();
+ var ids = util.functional.map_list( sel, function(o) { return JSON2js( o.getAttribute('retrieve_id') ); } );
+
+ var seen = {};
+ for (var i = 0; i < ids.length; i++) {
+ var patron_id = ids[i];
+ if (typeof patron_id == 'null') continue;
+ if (seen[patron_id]) continue; seen[patron_id] = true;
+ xulG.new_patron_tab(
+ {},
+ { 'id' : patron_id }
+ );
+ }
+
+ } catch(E) {
+ alert('Error in admin/patrons_due_refunds.js, handle_retrieve(): ' + E);
+ }
+}
+
+function init_list() {
+ try {
+
+ list = new util.list( 'au_list' );
+ list.init(
+ {
+ 'columns' : [].concat(
+ list.fm_columns('au',{
+ '*' : { 'hidden' : true },
+ 'au_family_name' : { 'hidden' : false },
+ 'au_first_given_name' : { 'hidden' : false },
+ 'au_second_given_name' : { 'hidden' : false },
+ 'au_barred' : { 'hidden' : false },
+ 'au_dob' : { 'hidden' : false }
+ })
+ ).concat([
+ {
+ 'id' : 'balance_owed', 'label' : 'Balance Owed', 'sort_type' : 'money', 'render' : function(my) {
+ return util.money.sanitize( my.balance_owed );
+ }
+ },
+ {
+ 'id' : 'last_billing_activity', 'label' : 'Last Billing Activity', 'sort_type' : 'date', 'render' : function(my) {
+ return dojo.date.locale.format( dojo.date.stamp.fromISOString(my.last_billing_activity) );
+ }
+ }
+ ]),
+ 'retrieve_row' : retrieve_row,
+ 'on_select' : handle_selection
+ }
+ );
+
+ } catch(E) {
+ var err_prefix = 'patron_due_refunds.js -> init_list() : ';
+ if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
+ }
+}
+
+function retrieve_row(params) { // callback function for fleshing rows in a list
+ params.row_node.setAttribute('retrieve_id',params.row.my.au.id());
+ params.on_retrieve(params.row);
+ return params.row;
+}
+
+function handle_selection(ev) { // handler for list row selection event
+ var sel = list.retrieve_selection();
+ if (sel.length > 0) {
+ $('retrieve_patron').setAttribute('disabled','false');
+ } else {
+ $('retrieve_patron').setAttribute('disabled','true');
+ }
+};
+
+function populate_list() {
+ try {
+
+ rows = {};
+ list.clear();
+ $('progress').hidden = false;
+
+ function onResponse(r) {
+ try {
+ var robj = openils.Util.readResponse(r);
+ var row_params = {
+ 'row' : {
+ 'my' : {
+ 'au' : robj.usr,
+ 'balance_owed' : robj.balance_owed,
+ 'last_billing_activity' : robj.last_billing_activity
+ }
+ }
+ };
+ rows[ robj.usr.id() ] = list.append( row_params );
+ } catch(E) {
+ alert('Error in patrons_due_refunds.js, populate_list, onResponse(): ' + E);
+ }
+ }
+
+ function onError(r) {
+ try {
+ var robj = openils.Util.readResponse(r);
+ alert('error, robj = ' + js2JSON(robj));
+ } catch(E) {
+ alert('Error in patrons_due_refunds.js, populate_list, onError(): ' + E);
+ }
+ }
+
+ fieldmapper.standardRequest(
+ [api['FM_AU_BLOBS_WITH_NEGATIVE_BALANCE'].app, api['FM_AU_BLOBS_WITH_NEGATIVE_BALANCE'].method ],
+ { async: true,
+ params: [ses()],
+ onresponse : onResponse,
+ onerror : onError,
+ oncomplete : function() {
+ $('progress').hidden = true;
+ }
+ }
+ );
+
+ } catch(E) {
+ alert('Error in patrons_due_refunds.js, populate_list(): ' + E);
+ }
+}
Added: trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.xul (rev 0)
+++ trunk/Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.xul 2009-12-30 20:55:27 UTC (rev 15254)
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!-- Application: Evergreen Staff Client -->
+<!-- Screen: Cancel/Reset Action::Trigger Events for Patron -->
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- PRESENTATION -->
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- LOCALIZATION -->
+<!DOCTYPE window PUBLIC "" ""[
+ <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
+]>
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- OVERLAYS -->
+<?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
+
+<window id="patrons_due_refunds_win" onload="try { font_helper(); persist_helper(); patrons_due_refunds_init(); } catch(E) { alert(E); }"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+ <!-- BEHAVIOR -->
+ <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true;</script>
+ <scripts id="openils_util_scripts"/>
+
+ <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
+ <script type="text/javascript" src="patrons_due_refunds.js"/>
+
+ <messagecatalog id="patronStrings" src="/xul/server/locale/<!--#echo var='locale'-->/patron.properties" />
+
+ <commandset id="patrons_due_refunds_cmds">
+ <command id="retrieve_patron" label="&staff.patron.display_overlay.retrieve_patron.label;" accesskey="&staff.patron.display_overlay.retrieve_patron.accesskey;" />
+ </commandset>
+
+ <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+ <!-- CONTENT -->
+ <groupbox id="patrons_due_refunds_groupbox" flex="1" class="my_overflow">
+ <caption id="patrons_due_refunds_caption" label="&staff.admin.patrons_due_refunds.caption;"/>
+ <vbox flex="0">
+ <hbox flex="1">
+ <spacer flex="1" />
+ <progressmeter id="progress" flex="1" hidden="true" mode="undetermined"/>
+ <menubar>
+ <menu label="&staff.admin.patrons_due_refunds.menu.actions.label;"
+ accesskey="&staff.admin.patrons_due_refunds.menu.actions.accesskey;"
+ style="-moz-user-focus: normal">
+ <menupopup>
+ <menuitem command="retrieve_patron" />
+ </menupopup>
+ </menu>
+ </menubar>
+ </hbox>
+ </vbox>
+ <tree id="au_list" flex="1" enableColumnDrag="true" context="au_actions" />
+ <hbox id="list_actions" />
+ </groupbox>
+
+ <popupset id="au_popupset">
+ <popup id="au_actions" position="at_pointer">
+ <menuitem command="retrieve_patron" />
+ </popup>
+ </popupset>
+
+</window>
+
More information about the open-ils-commits
mailing list