From b760c3138d07220074d879bb6989e16dba2e63cb Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 15 Nov 2005 21:17:14 +0000 Subject: [PATCH] got much of myopac wired up (usernama, password, email address change) git-svn-id: svn://svn.open-ils.org/ILS/trunk@2034 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/common/js/config.js | 4 + Open-ILS/web/opac/common/js/opac_utils.js | 1 + Open-ILS/web/opac/common/js/utils.js | 10 +- Open-ILS/web/opac/skin/default/css/layout.css | 4 + Open-ILS/web/opac/skin/default/js/myopac.js | 133 +++++++++++++++--- .../opac/skin/default/xml/myopac_checked.xml | 1 + .../opac/skin/default/xml/myopac_summary.xml | 88 +++++++++++- 7 files changed, 210 insertions(+), 31 deletions(-) diff --git a/Open-ILS/web/opac/common/js/config.js b/Open-ILS/web/opac/common/js/config.js index 15d8b3015f..0ffbf6fa8b 100644 --- a/Open-ILS/web/opac/common/js/config.js +++ b/Open-ILS/web/opac/common/js/config.js @@ -196,6 +196,10 @@ var FETCH_TRANSACTIONS = "open-ils.actor:open-ils.actor.user.transactions.have var FETCH_CROSSREF = "open-ils.search:open-ils.search.authority.crossref"; var CREATE_HOLD = "open-ils.circ:open-ils.circ.holds.create"; var CANCEL_HOLD = "open-ils.circ:open-ils.circ.hold.cancel"; +var UPDATE_USERNAME = "open-ils.actor:open-ils.actor.user.username.update"; +var UPDATE_PASSWORD = "open-ils.actor:open-ils.actor.user.password.update"; +var UPDATE_EMAIL = "open-ils.actor:open-ils.actor.user.email.update"; +var RENEW_CIRC = "open-ils.circ:open-ils.circ.renew"; /* ---------------------------------------------------------------------------- */ diff --git a/Open-ILS/web/opac/common/js/opac_utils.js b/Open-ILS/web/opac/common/js/opac_utils.js index 1e81d04706..b17a0c4e68 100644 --- a/Open-ILS/web/opac/common/js/opac_utils.js +++ b/Open-ILS/web/opac/common/js/opac_utils.js @@ -253,6 +253,7 @@ function grabUser(ses, force) { } + /* sets the 'prefs' field of the user object to their preferences and returns the preferences */ function grabUserPrefs(user, force) { diff --git a/Open-ILS/web/opac/common/js/utils.js b/Open-ILS/web/opac/common/js/utils.js index 174b27d5cc..c6d8e2d699 100644 --- a/Open-ILS/web/opac/common/js/utils.js +++ b/Open-ILS/web/opac/common/js/utils.js @@ -83,6 +83,11 @@ function removeChildren(dom) { dom.removeChild(dom.childNodes[0]); } +function appendClear(node, child) { + removeChildren(node); + node.appendChild(child); +} + function instanceOf(object, constructorFunction) { @@ -226,10 +231,8 @@ function findNodeByName(root, nodeName) { if(root.nodeType != 1) return null; - if(root.getAttribute("name") == nodeName || - root.name == nodeName ) { + if(root.getAttribute("name") == nodeName || root.name == nodeName ) return root; - } var children = root.childNodes; @@ -239,7 +242,6 @@ function findNodeByName(root, nodeName) { } return null; - } diff --git a/Open-ILS/web/opac/skin/default/css/layout.css b/Open-ILS/web/opac/skin/default/css/layout.css index c0f11d910e..de00859e99 100644 --- a/Open-ILS/web/opac/skin/default/css/layout.css +++ b/Open-ILS/web/opac/skin/default/css/layout.css @@ -156,3 +156,7 @@ border-left: 1px solid #E0E0E0; border-top: 1px solid #E0E0E0; border-bottom: 1p .tips { padding: 2px; text-align: center; border: solid #E0E0E0 3px; -moz-border-radius: 3px; width: 99%; } .holds_cell { border: 1px solid #E0E0E0; padding: 5px; width: 50%;} +.myopac_update_cell { border: 3px solid #E0E0E0; width:100%; padding-top: 4px; padding-bottom: 4px;} +.myopac_update_span { padding: 5px;} + + diff --git a/Open-ILS/web/opac/skin/default/js/myopac.js b/Open-ILS/web/opac/skin/default/js/myopac.js index 30bceac6ac..c458d4b17c 100644 --- a/Open-ILS/web/opac/skin/default/js/myopac.js +++ b/Open-ILS/web/opac/skin/default/js/myopac.js @@ -92,6 +92,7 @@ function myOPACShowChecked() { var checkedRowTemplate; +var circsCache = new Array(); function myOPACDrawCheckedOut(r) { @@ -129,12 +130,26 @@ function myOPACDrawCheckedOut(r) { dlink.appendChild(text(due)); rlink.appendChild(text(circ.renewal_remaining())); unHideMe(row); - //rnlink /* set the renew action */ + rnlink.setAttribute('href', 'javascript:myOPACRenewCirc("'+circ.id()+'");'); + circsCache.push(circ); tbody.appendChild(row); } } +function myOPACRenewCirc(circid) { + var circ; + for( var i = 0; i != circsCache.length; i++ ) + if(circsCache[i].id() == circid) + circ = circsCache[i]; + + alert('renewing ' + circ.id()); + var req = new Request(RENEW_CIRC, G.user.session, circ ); + req.send(true); + req.result(); + alert($('myopac_renew_success').innerHTML); +} + function myOPACShowHolds() { @@ -324,27 +339,36 @@ function myOPACShowSummary() { req.send(); } +var addrRowTemplate; function _myOPACSummaryShowUer(r) { var user = r.getResultObject(); fleshedUser = user; - $('myopac_summary_first').appendChild(text(user.first_given_name())); - $('myopac_summary_middle').appendChild(text(user.second_given_name())); - $('myopac_summary_dayphone').appendChild(text(user.day_phone())); - $('myopac_summary_eveningphone').appendChild(text(user.evening_phone())); - $('myopac_summary_otherphone').appendChild(text(user.other_phone())); - $('myopac_summary_last').appendChild(text(user.family_name())); - $('myopac_summary_username').appendChild(text(user.usrname())); - $('myopac_summary_email').appendChild(text(user.email())); - $('myopac_summary_barcode').appendChild(text(user.card().barcode())); - $('myopac_summary_ident1').appendChild(text(user.ident_value())); - $('myopac_summary_ident2').appendChild(text(user.ident_value2())); - $('myopac_summary_homelib').appendChild(text(findOrgUnit(user.home_ou()).name())); - $('myopac_summary_create_date').appendChild(text(user.create_date())); + appendClear($('myopac_summary_first'),text(user.first_given_name())); + appendClear($('myopac_summary_middle'),text(user.second_given_name())); + appendClear($('myopac_summary_dayphone'),text(user.day_phone())); + appendClear($('myopac_summary_eveningphone'),text(user.evening_phone())); + appendClear($('myopac_summary_otherphone'),text(user.other_phone())); + appendClear($('myopac_summary_last'),text(user.family_name())); + appendClear($('myopac_summary_username'),text(user.usrname())); + appendClear($('myopac_summary_email'),text(user.email())); + appendClear($('myopac_summary_barcode'),text(user.card().barcode())); + appendClear($('myopac_summary_ident1'),text(user.ident_value())); + appendClear($('myopac_summary_ident2'),text(user.ident_value2())); + appendClear($('myopac_summary_homelib'),text(findOrgUnit(user.home_ou()).name())); + appendClear($('myopac_summary_create_date'),text(user.create_date())); var tbody = $('myopac_addr_tbody'); - var template = tbody.removeChild($('myopac_addr_row')); + var template; + + if(addrRowTemplate) { + template = addrRowTemplate; + } else { + template = tbody.removeChild($('myopac_addr_row')); + addrRowTemplate = template; + } + for( var a in user.addresses() ) { var row = template.cloneNode(true); myOPACDrawAddr(row, user.addresses()[a]); @@ -353,13 +377,80 @@ function _myOPACSummaryShowUer(r) { } function myOPACDrawAddr(row, addr) { - $n(row, 'myopac_addr_type').appendChild(text(addr.address_type())); + + appendClear($n(row, 'myopac_addr_type'),text(addr.address_type())); var street = (addr.street2()) ? addr.street1() + ", " + addr.street2() : addr.street1(); - $n(row, 'myopac_addr_street').appendChild(text(street)); - $n(row, 'myopac_addr_city').appendChild(text(addr.city())); - $n(row, 'myopac_addr_county').appendChild(text(addr.county())); - $n(row, 'myopac_addr_state').appendChild(text(addr.state())); - $n(row, 'myopac_addr_zip').appendChild(text(addr.post_code())); + appendClear($n(row, 'myopac_addr_street'),text(street)); + appendClear($n(row, 'myopac_addr_city'),text(addr.city())); + appendClear($n(row, 'myopac_addr_county'),text(addr.county())); + appendClear($n(row, 'myopac_addr_state'),text(addr.state())); + appendClear($n(row, 'myopac_addr_zip'),text(addr.post_code())); +} + + +function myOPACUpdateUsername() { + var username = $('myopac_new_username').value; + if(username == null || username == "") { + alert($('myopac_username_error').innerHTML); + return; + } + var req = new Request(UPDATE_USERNAME, G.user.session, username ); + req.send(true); + if(req.result()) { + G.user.usrname(username); + hideMe($('myopac_update_username_row')); + userShown = false; + myOPACShowSummary(); + return; + } + + alert($('myopac_username_failure').innerHTML); +} + +function myOPACUpdateEmail() { + var email = $('myopac_new_email').value; + if(email == null || email == "") { + alert($('myopac_email_error').innerHTML); + return; + } + + var req = new Request(UPDATE_EMAIL, G.user.session, email ); + req.send(true); + if(req.result()) { + G.user.usrname(email); + hideMe($('myopac_update_email_row')); + userShown = false; + myOPACShowSummary(); + return; + } + + alert($('myopac_email_failure').innerHTML); +} + + +function myOPACUpdatePassword() { + var curpassword = $('myopac_current_password').value; + var password = $('myopac_new_password').value; + var password2 = $('myopac_new_password2').value; + + if( curpassword == null || curpassword == "" || + password == null || password == "" || + password2 == null || password2 == "" || password != password2 ) { + alert($('myopac_password_error').innerHTML); + return; + } + + var req = new Request(UPDATE_PASSWORD, G.user.session, password, curpassword ); + req.send(true); + if(req.result()) { + G.user.usrname(password); + hideMe($('myopac_update_password_row')); + userShown = false; + myOPACShowSummary(); + return; + } + + alert($('myopac_password_failure').innerHTML); } diff --git a/Open-ILS/web/opac/skin/default/xml/myopac_checked.xml b/Open-ILS/web/opac/skin/default/xml/myopac_checked.xml index f3a734003d..55c6a28306 100644 --- a/Open-ILS/web/opac/skin/default/xml/myopac_checked.xml +++ b/Open-ILS/web/opac/skin/default/xml/myopac_checked.xml @@ -44,6 +44,7 @@ +
Item successfully renewed
diff --git a/Open-ILS/web/opac/skin/default/xml/myopac_summary.xml b/Open-ILS/web/opac/skin/default/xml/myopac_summary.xml index 2587bfb8b7..f77e149824 100644 --- a/Open-ILS/web/opac/skin/default/xml/myopac_summary.xml +++ b/Open-ILS/web/opac/skin/default/xml/myopac_summary.xml @@ -4,11 +4,11 @@
- +
- + @@ -35,19 +35,85 @@ + + + + + + + + + + + - + + + + + + @@ -72,9 +138,8 @@
First NameFirst Name
Username Change
+ Enter new username: + + + + + + + +
Password (not shown) Change
+ + + + + + + + + + + + + + +
Enter current password:
Enter new password:
Re-Enter new password:
+ + + + + + + +
Email Address ChangeChange
+ Enter new email address: + + + + + + + +
Primary Identification
-


- +


@@ -98,8 +163,19 @@ -
Addresses
+ +
Please enter a username
+
Username successfully updated
+
Username update failed
+ +
Please enter a valid email address
+
Email address successfully updated
+
Email address update failed
+ +
Passwords are empty or do not match
+
Password successfully updated
+
Password update failed
-- 2.43.2