From 0446f1b9caf5d3e2d185f9561a164dad86bb0083 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 4 Jun 2009 22:33:33 +0000 Subject: [PATCH] plugged in pending addr approval. just need to fill in replaced addr details git-svn-id: svn://svn.open-ils.org/ILS/trunk@13323 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/ui/default/actor/user/register.js | 72 ++++++++++++++++++++-- .../web/templates/default/actor/user/register.tt2 | 14 +++++ 2 files changed, 82 insertions(+), 4 deletions(-) diff --git a/Open-ILS/web/js/ui/default/actor/user/register.js b/Open-ILS/web/js/ui/default/actor/user/register.js index 943500246e..3bc893a4d4 100644 --- a/Open-ILS/web/js/ui/default/actor/user/register.js +++ b/Open-ILS/web/js/ui/default/actor/user/register.js @@ -484,22 +484,86 @@ function uEditNewAddr(evt, id) { if(id == null) id = --uEditAddrVirtId; dojo.forEach(addrTemplateRows, function(row) { + row = tbody.insertBefore(row.cloneNode(true), dojo.byId('new-addr-row')); row.setAttribute('type', ''); row.setAttribute('addr', id+''); + if(row.getAttribute('fmclass')) { fleshFMRow(row, 'aua', {addr:id}); + + } else if(row.getAttribute('name') == 'uedit-addr-pending-row') { + + var addr = patron.addresses().filter( + function(i) { return (i.id() == id) })[0]; + + // if it's a pending address, show the 'approve' button + if(addr && openils.Util.isTrue(addr.pending())) { + openils.Util.show(row, 'table-row'); + dojo.query('[name=approve-button]', row)[0].onclick = + function() { uEditApproveAddress(addr); }; + + if(addr.replaces()) { + var div = dojo.query('[name=replaced-addr]', row)[0] + div.innerHTML = addr.replaces(); + } else { + openils.Util.hide(dojo.query('[name=replaced-addr-div]', row)[0]); + } + } + } else { - var btn = dojo.query('[name=delete-button]', row)[0]; - if(btn) btn.onclick = function(){ uEditDeleteAddr(id) }; + var btn = dojo.query('[name=delete-button]', row)[0]; + if(btn) btn.onclick = function(){ uEditDeleteAddr(id) }; + } + } + ); +} + +function uEditApproveAddress(addr) { + fieldmapper.standardRequest( + ['open-ils.actor', 'open-ils.actor.user.pending_address.approve'], + { async: true, + params: [openils.User.authtoken, addr], + + oncomplete : function(r) { + var oldId = openils.Util.readResponse(r); + + // remove addrs from UI + dojo.forEach( + patron.addresses(), + function(addr) { uEditDeleteAddr(addr.id(), true); } + ); + + if(oldId != null) { + + // remove the replaced address + if(oldId != addr.id()) { + patron.addresses( + patron.addresses().filter( + function(i) { return (i.id() != oldId); } + ) + ); + } + + // fix the the new address + addr.id(oldId); + addr.replaces(null); + addr.pending('f'); + + } + + // redraw addrs + loadAllAddrs(); } } ); } -function uEditDeleteAddr(id) { - if(!confirm('Delete address ' + id)) return; /* XXX i18n */ +function uEditDeleteAddr(id, noAlert) { + if(!noAlert) { + if(!confirm('Delete address ' + id)) return; /* XXX i18n */ + } var rows = dojo.query('tr[addr='+id+']', tbody); for(var i = 0; i < rows.length; i++) rows[i].parentNode.removeChild(rows[i]); diff --git a/Open-ILS/web/templates/default/actor/user/register.tt2 b/Open-ILS/web/templates/default/actor/user/register.tt2 index 5c1d000a30..4c8f91f0c5 100644 --- a/Open-ILS/web/templates/default/actor/user/register.tt2 +++ b/Open-ILS/web/templates/default/actor/user/register.tt2 @@ -56,6 +56,8 @@ border-right:1px dashed #d9e8f9; } + .pending-addr-row td { border:1px solid #aaa; } + .uedit-addr-del-button {margin-left: 10px; color:red;} .dijitTextBoxFocused, .dijitFocused { border:1px dashed #3e3e3e; color: #303030; font-weight:bold;} @@ -110,6 +112,18 @@ + + + + This is a pending address: + +
+ This address replaces: +
+
+ + + -- 2.11.0