added ability to set / unset email hold notifications in my holds display
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 13 Mar 2006 17:10:13 +0000 (17:10 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 13 Mar 2006 17:10:13 +0000 (17:10 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@3347 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/opac/common/js/config.js
Open-ILS/web/opac/skin/default/js/myopac.js
Open-ILS/web/opac/skin/default/xml/myopac/myopac_holds.xml

index ffaa602..b0a8acf 100644 (file)
@@ -284,6 +284,7 @@ var FLESH_PUBLIC_CONTAINER          = 'open-ils.actor:open-ils.actor.container.public.fl
 var UPDATE_CONTAINER                           = 'open-ils.actor:open-ils.actor.container.update';
 var FETCH_COPY                                         = 'open-ils.search:open-ils.search.asset.copy.retrieve';
 var CHECK_HOLD_POSSIBLE                        = 'open-ils.circ:open-ils.circ.title_hold.is_possible';
+var UPDATE_HOLD                                        = 'open-ils.circ:open-ils.circ.hold.update';
 var FETCH_BIBLIO_NOTES                 = 'open-ils.circ:open-ils.circ.biblio_notes.public.batch.retrieve';
 /* ---------------------------------------------------------------------------- */
 
index e4a55f8..9dd9a46 100644 (file)
@@ -6,6 +6,7 @@ attachEvt('common','locationUpdated', myopacReload );
 
 var fleshedUser = null;
 var fleshedContainers = {};
+var holdCache = {};
 
 
 function clearNodes( node, keepArray ) {
@@ -247,6 +248,7 @@ function myOPACDrawHolds(r) {
        for( var i = 0; i != holds.length; i++ ) {
 
                var h = holds[i];
+               holdCache[h.id()] = h;
                var row = holdsTemplateRow.cloneNode(true);
                row.id = "myopac_holds_row_" + h.id() + '_' + h.target();
 
@@ -257,8 +259,13 @@ function myOPACDrawHolds(r) {
 
                $n(row, "myopac_holds_location").
                        appendChild(text(findOrgUnit(h.pickup_lib()).name()));
-               $n(row, "myopac_holds_email_link").
-                       appendChild(text(h.email_notify()));
+
+               if(h.email_notify()) 
+                       $n(row, "myopac_holds_email_link").checked = true;
+               else
+                       $n(row, "myopac_holds_email_link").checked = false;
+
+
                $n(row, "myopac_holds_phone_link").
                        appendChild(text(h.phone_notify()));
                tbody.appendChild(row);
@@ -271,6 +278,31 @@ function myOPACDrawHolds(r) {
        }
 }
 
+function myopacChangeEmailNotify(node) {
+       var id = node.parentNode.parentNode.id.replace(/myopac_holds_row_/,"").replace(/_\d+$/,"");
+       var hold = holdCache[id];
+
+       if(!confirm($('myopac_hold_email_verify').innerHTML)) {
+               if( hold.email_notify() ) node.checked = true;
+               else node.checked = false;
+               return;
+       }
+
+       if( hold.email_notify() ) {
+               hold.email_notify(0);
+               node.checked = false;
+       } else {
+               hold.email_notify(1);
+               node.checked = true;
+       }
+
+       var req = new Request(UPDATE_HOLD, G.user.session, hold);
+       req.send(true);
+       var x = req.result();
+       holdsTemplateRow = null
+       myOPACShowHolds();
+}
+
 function myOPACCancelHold(holdid) {
        if( confirm($('myopac_holds_cancel_verify').innerHTML) ) {
                holdsCancel(holdid);
index 7d237ea..31b5878 100644 (file)
                                <td width='40%'>Title</td>
                                <td width='20%'>Author</td>
                                <td>Formats</td>
-                               <td align='center' nowrap='nowrap'>Pickup Location</td>
-                               <td align='center' nowrap='nowrap'>Email Notify</td>
-                               <td align='center' nowrap='nowrap'>Phone Notify</td>
-                               <td align='center' nowrap='nowrap'>Cancel</td>
+                               <td align='center'>Pickup Location</td>
+                               <td align='center'>Enable Email Notification</td>
+                               <td align='center'>Notification Phone Number</td>
+                               <td align='center'>Cancel This Hold</td>
                        </tr>
                </thead>
 
 
                                <td align='center' name='myopac_holds_location' class='light_border'> </td>
 
+                               <!--
                                <td align='center' name='myopac_holds_email' class='light_border'>
                                        <a href='javascript:void(0);' name='myopac_holds_email_link'></a>
                                </td>
+                               -->
+                               <td align='center' class='light_border'>
+                                       <input type='checkbox' name='myopac_holds_email_link' onclick='myopacChangeEmailNotify(this);'/>
+                               </td>
 
                                <td align='center' name='myopac_holds_phone' class='light_border'>
                                        <a href='javascript:void(0);' name='myopac_holds_phone_link'></a>
 
        <div class='hide_me' id='myopac_holds_cancel_verify'>Are you sure you wish to cancel the selected hold?</div>
 
+       <span class='hide_me' id='myopac_hold_email_verify'>
+               Are you sure you wish to set/unset the email notification for this hold?
+       </span>
+
 
 </div>