[open-ils-commits] r7790 - in trunk/Open-ILS/xul/staff_client/server: circ patron

svn at svn.open-ils.org svn at svn.open-ils.org
Fri Sep 14 21:55:10 EDT 2007


Author: phasefx
Date: 2007-09-14 21:46:58 -0400 (Fri, 14 Sep 2007)
New Revision: 7790

Modified:
   trunk/Open-ILS/xul/staff_client/server/circ/util.js
   trunk/Open-ILS/xul/staff_client/server/patron/holds.js
   trunk/Open-ILS/xul/staff_client/server/patron/holds.xul
   trunk/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul
Log:
freeze/thaw support for holds, and a typo fix and some wording changes

Modified: trunk/Open-ILS/xul/staff_client/server/circ/util.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/circ/util.js	2007-09-15 00:16:32 UTC (rev 7789)
+++ trunk/Open-ILS/xul/staff_client/server/circ/util.js	2007-09-15 01:46:58 UTC (rev 7790)
@@ -767,6 +767,14 @@
 			'persist' : 'hidden width ordinal', 'id' : 'hold_type', 'label' : getString('staff.ahr_hold_type_label'), 'flex' : 0,
 			'primary' : false, 'hidden' : true,  'render' : function(my) { return my.ahr.hold_type(); },
 		},
+        {
+			'persist' : 'hidden width ordinal', 'id' : 'frozen', 'label' : 'Frozen?', 'flex' : 0,
+			'primary' : false, 'hidden' : true,  'render' : function(my) { return get_bool( my.ahr.frozen() ) ? 'Yes' : 'No'; },
+        },
+        {
+			'persist' : 'hidden width ordinal', 'id' : 'thaw_date', 'label' : 'Thaw Date', 'flex' : 0,
+			'primary' : false, 'hidden' : true,  'render' : function(my) { return my.ahr.thaw_date() == null ? 'No Date' : my.ahr.thaw_date().substr(0,10); },
+        },
 		{
 			'persist' : 'hidden width ordinal', 'id' : 'pickup_lib', 'label' : 'Pickup Lib (Full Name)', 'flex' : 1,
 			'primary' : false, 'hidden' : true,  

Modified: trunk/Open-ILS/xul/staff_client/server/patron/holds.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/patron/holds.js	2007-09-15 00:16:32 UTC (rev 7789)
+++ trunk/Open-ILS/xul/staff_client/server/patron/holds.js	2007-09-15 01:46:58 UTC (rev 7790)
@@ -235,6 +235,8 @@
 						obj.controller.view.cmd_holds_edit_phone_notify.setAttribute('disabled','false');
 						obj.controller.view.cmd_holds_edit_email_notify.setAttribute('disabled','false');
 						obj.controller.view.cmd_holds_edit_selection_depth.setAttribute('disabled','false');
+						obj.controller.view.cmd_holds_edit_thaw_date.setAttribute('disabled','false');
+						obj.controller.view.cmd_holds_edit_freeze.setAttribute('disabled','false');
 						obj.controller.view.cmd_show_notifications.setAttribute('disabled','false');
 						obj.controller.view.cmd_holds_retarget.setAttribute('disabled','false');
 						obj.controller.view.cmd_holds_cancel.setAttribute('disabled','false');
@@ -249,6 +251,8 @@
 						obj.controller.view.cmd_holds_edit_phone_notify.setAttribute('disabled','true');
 						obj.controller.view.cmd_holds_edit_email_notify.setAttribute('disabled','true');
 						obj.controller.view.cmd_holds_edit_selection_depth.setAttribute('disabled','true');
+						obj.controller.view.cmd_holds_edit_thaw_date.setAttribute('disabled','true');
+						obj.controller.view.cmd_holds_edit_freeze.setAttribute('disabled','true');
 						obj.controller.view.cmd_show_notifications.setAttribute('disabled','true');
 						obj.controller.view.cmd_holds_retarget.setAttribute('disabled','true');
 						obj.controller.view.cmd_holds_cancel.setAttribute('disabled','true');
@@ -431,7 +435,7 @@
 										var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]);
 										if (typeof robj.ilsevent != 'undefined') throw(robj);
 									}
-									obj.retrieve();
+									obj.retrieve(true);
 								}
 							} catch(E) {
 								obj.error.standard_unexpected_error_alert('Holds not likely modified.',E);
@@ -489,7 +493,7 @@
 										var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]);
 										if (typeof robj.ilsevent != 'undefined') throw(robj);
 									}
-									obj.retrieve();
+									obj.retrieve(true);
 								}
 							} catch(E) {
 								obj.error.standard_unexpected_error_alert('Holds not likely modified.',E);
@@ -531,7 +535,7 @@
 										var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]);
 										if (typeof robj.ilsevent != 'undefined') throw(robj);
 									}
-									obj.retrieve();
+									obj.retrieve(true);
 								}
 							} catch(E) {
 								obj.error.standard_unexpected_error_alert('Holds not likely modified.',E);
@@ -543,7 +547,7 @@
 						function() {
 							try {
 								var xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" style="overflow: vertical">';
-								xml += '<description>Send email notifications (when appropriate)?  The email address used is found in the hold recepient account.</description>';
+								xml += '<description>Send email notifications (when appropriate)?  The email address used is found in the hold recipient account.</description>';
 								xml += '<hbox><button value="email" label="Email" accesskey="E" name="fancy_submit"/>';
 								xml += '<button value="noemail" label="No Email" accesskey="N" name="fancy_submit"/></hbox>';
 								xml += '</vbox>';
@@ -572,15 +576,100 @@
 										var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]);
 										if (typeof robj.ilsevent != 'undefined') throw(robj);
 									}
-									obj.retrieve();
+									obj.retrieve(true);
 								}
 							} catch(E) {
 								obj.error.standard_unexpected_error_alert('Holds not likely modified.',E);
 							}
 						}
 					],
+                    'cmd_holds_edit_freeze' : [
+						['command'],
+						function() {
+							try {
+								var xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" style="overflow: vertical">';
+								xml += '<description>Freeze or un-freeze these holds?</description>';
+								xml += '<hbox><button value="freeze" label="Freeze" accesskey="F" name="fancy_submit"/>';
+								xml += '<button value="unfreeze" label="Un-Freeze" accesskey="U" name="fancy_submit"/></hbox>';
+								xml += '</vbox>';
+								var bot_xml = '<hbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" style="overflow: vertical">';
+								bot_xml += '<spacer flex="1"/><button label="Cancel" accesskey="C" name="fancy_cancel"/></hbox>';
+								netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
+								//obj.data.temp_mid = xml; obj.data.stash('temp_mid');
+								//obj.data.temp_bot = bot_xml; obj.data.stash('temp_bot');
+								JSAN.use('util.window'); var win = new util.window();
+								var fancy_prompt_data = win.open(
+									urls.XUL_FANCY_PROMPT,
+									//+ '?xml_in_stash=temp_mid'
+									//+ '&bottom_xml_in_stash=temp_bot'
+									//+ '&title=' + window.escape('Set Email Notification for Holds'),
+									'fancy_prompt', 'chrome,resizable,modal',
+									{ 'xml' : xml, 'bottom_xml' : bot_xml, 'title' : 'Set Email Notification for Holds' }
+								);
+								if (fancy_prompt_data.fancy_status == 'incomplete') { return; }
+								var freeze = fancy_prompt_data.fancy_submit == 'freeze' ? get_db_true() : get_db_false();
+								var msg = 'Are you sure you would like to ' + ( get_bool( freeze ) ? 'freeze' : 'un-freeze' ) + ' hold' + ( obj.retrieve_ids.length > 1 ? 's ' : ' ') + util.functional.map_list( obj.retrieve_ids, function(o){return o.id;}).join(', ') + '?';
+								var r = obj.error.yns_alert(msg,'Modifying Holds','Yes','No',null,'Check here to confirm this message');
+								if (r == 0) {
+									for (var i = 0; i < obj.retrieve_ids.length; i++) {
+										var hold = obj.holds_map[ obj.retrieve_ids[i].id ];
+										hold.frozen(  freeze ); hold.ischanged('1');
+										var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]);
+										if (typeof robj.ilsevent != 'undefined') throw(robj);
+									}
+									obj.retrieve(true);
+								}
+							} catch(E) {
+								obj.error.standard_unexpected_error_alert('Holds not likely modified.',E);
+							}
+						}
+					],
 
+                    'cmd_holds_edit_thaw_date' : [
+						['command'],
+						function() {
+							try {
+                                JSAN.use('util.date');
+                                function check_date(value) {
+                                    try {
+                                        if (! util.date.check('YYYY-MM-DD',value) ) { throw('Invalid Date'); }
+                                        if (util.date.check_past('YYYY-MM-DD',value) ) { 
+                                            throw('Thaw date for frozen holds needs to be after today.'); 
+                                        }
+                                        return true;
+                                    } catch(E) {
+                                        alert(E);
+                                        return false;
+                                    }
+                                }
 
+								var msg = 'Please enter a thaw date for hold' + ( obj.retrieve_ids.length > 1 ? 's ' : ' ') + util.functional.map_list( obj.retrieve_ids, function(o){return o.id;}).join(', ') + '\nOr set to blank to unset the thaw date for these holds.  Frozen holds without a thaw date will remain frozen until manually unfrozen, otherwise they unfreeze on the thaw date.';
+                                var value = 'YYYY-MM-DD';
+                                var title = 'Modifying Holds';
+								var thaw_date; var invalid = true;
+                                while(invalid) {
+                                    thaw_date = window.prompt(msg,value,title);
+                                    if (thaw_date) {
+                                        invalid = ! check_date(thaw_date);
+                                    } else { 
+                                        invalid = false;
+                                    }
+                                }
+                                if (thaw_date || thaw_date == '') {
+                                    for (var i = 0; i < obj.retrieve_ids.length; i++) {
+                                        var hold = obj.holds_map[ obj.retrieve_ids[i].id ];
+                                        hold.thaw_date(  thaw_date == '' ? null : util.date.formatted_date(thaw_date + ' 00:00:00','%{iso8601}') ); hold.ischanged('1');
+                                        var robj = obj.network.simple_request('FM_AHR_UPDATE',[ ses(), hold ]);
+                                        if (typeof robj.ilsevent != 'undefined') throw(robj);
+                                    }
+                                    obj.retrieve(true);
+                                }
+							} catch(E) {
+								obj.error.standard_unexpected_error_alert('Holds not likely modified.',E);
+							}
+						}
+					],
+
 					'cmd_holds_retarget' : [
 						['command'],
 						function() {

Modified: trunk/Open-ILS/xul/staff_client/server/patron/holds.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/patron/holds.xul	2007-09-15 00:16:32 UTC (rev 7789)
+++ trunk/Open-ILS/xul/staff_client/server/patron/holds.xul	2007-09-15 01:46:58 UTC (rev 7790)
@@ -81,6 +81,8 @@
 		<command id="cmd_holds_edit_pickup_lib" />
 		<command id="cmd_holds_edit_phone_notify" />
 		<command id="cmd_holds_edit_email_notify" />
+		<command id="cmd_holds_edit_thaw_date" />
+		<command id="cmd_holds_edit_freeze" />
 		<command id="cmd_holds_edit_selection_depth" disabled="true" hidden="true"/>
 		<command id="cmd_broken" disabled="true" hidden="true"/>
 		<command id="cmd_holds_retarget"/>

Modified: trunk/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul	2007-09-15 00:16:32 UTC (rev 7789)
+++ trunk/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul	2007-09-15 01:46:58 UTC (rev 7790)
@@ -21,7 +21,9 @@
 		<menuseparator />
 		<menuitem label="Edit Pickup Library" command="cmd_holds_edit_pickup_lib" accesskey="L"/>
 		<menuitem label="Edit Phone Notification" command="cmd_holds_edit_phone_notify" accesskey="P"/>
-		<menuitem label="Toggle Email Notification" command="cmd_holds_edit_email_notify" accesskey="E"/>
+		<menuitem label="Set Email Notification" command="cmd_holds_edit_email_notify" accesskey="E"/>
+		<menuitem label="Edit Thaw Date" command="cmd_holds_edit_thaw_date" accesskey="T"/>
+		<menuitem label="Set Freeze" command="cmd_holds_edit_freeze" accesskey="F"/>
 		<!--
 		<menuitem label="Edit Hold Range" command="cmd_holds_edit_selection_depth" accesskey="R"/>
 		<menuitem label="Edit Hold Focus" command="cmd_broken" accesskey="F"/>
@@ -70,7 +72,9 @@
 				<menuseparator />
 				<menuitem label="Edit Pickup Library" command="cmd_holds_edit_pickup_lib" accesskey="L"/>
 				<menuitem label="Edit Phone Notification" command="cmd_holds_edit_phone_notify" accesskey="P"/>
-				<menuitem label="Toggle Email Notification" command="cmd_holds_edit_email_notify" accesskey="E" />
+				<menuitem label="Set Email Notification" command="cmd_holds_edit_email_notify" accesskey="E" />
+		        <menuitem label="Edit Thaw Date" command="cmd_holds_edit_thaw_date" accesskey="T"/>
+        		<menuitem label="Set Freeze" command="cmd_holds_edit_freeze" accesskey="F"/>
 				<!--
 				<menuitem label="Edit Hold Range" command="cmd_holds_edit_selection_depth" accesskey="R" />
 				<menuitem label="Edit Hold Focus" command="cmd_broken" accesskey="F" />



More information about the open-ils-commits mailing list