don't let util.error create sound objects (trying to reduce proliferation of such...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 26 Apr 2010 03:54:08 +0000 (03:54 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 26 Apr 2010 03:54:08 +0000 (03:54 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@16295 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/chrome/content/util/error.js
Open-ILS/xul/staff_client/chrome/content/util/fancy_prompt.xul
Open-ILS/xul/staff_client/chrome/content/util/network.js

index 7521c9e..adbab36 100644 (file)
@@ -18,7 +18,10 @@ util.error = function () {
 
         this.OpenILS = {};
 
-        JSAN.use('util.sound'); this.sound = new util.sound();
+        // Only use sounds if the context window has already created a sound object
+        if (typeof xulG != 'undefined' && xulG._sound) {
+            this.sound = xulG._sound;
+        }
 
     } catch(E) {
         alert('Error in util.error constructor: ' + E);
@@ -340,9 +343,6 @@ util.error.prototype = {
         dump('yns_alert:\n\ts = ' + s + '\n\ttitle = ' + title + '\n\tb1 = ' + b1 + '\n\tb2 = ' + b2 + '\n\tb3 = ' + b3 + '\n\tc = ' + c + '\n');
         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalBrowserWrite");
 
-        this.sound.bad();
-
-
         //FIXME - is that good enough of an escape job?
         s = s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
 
@@ -374,7 +374,7 @@ util.error.prototype = {
         if (typeof xulG != 'undefined') if (typeof xulG.url_prefix == 'function') url = xulG.url_prefix( url );
         JSAN.use('util.window'); var win = new util.window();
         var fancy_prompt_data = win.open(
-            url, 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500', { 'xml' : xml, 'title' : title }
+            url, 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500', { 'xml' : xml, 'title' : title, 'sound' : 'bad' }
         );
         if (fancy_prompt_data.fancy_status == 'complete') {
             switch(fancy_prompt_data.fancy_submit) {
@@ -417,9 +417,6 @@ util.error.prototype = {
         dump('yns_alert_formatted:\n\ts = ' + s + '\n\ttitle = ' + title + '\n\tb1 = ' + b1 + '\n\tb2 = ' + b2 + '\n\tb3 = ' + b3 + '\n\tc = ' + c + '\n');
         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalBrowserWrite");
 
-        this.sound.bad();
-
-
         //FIXME - is that good enough of an escape job?
         s = s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
 
@@ -451,7 +448,7 @@ util.error.prototype = {
         if (typeof xulG != 'undefined') if (typeof xulG.url_prefix == 'function') url = xulG.url_prefix( url );
         JSAN.use('util.window'); var win = new util.window();
         var fancy_prompt_data = win.open(
-            url, 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500', { 'xml' : xml, 'title' : title }
+            url, 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500', { 'xml' : xml, 'title' : title, 'sound' : 'bad' }
         );
         if (fancy_prompt_data.fancy_status == 'complete') {
             switch(fancy_prompt_data.fancy_submit) {
@@ -486,7 +483,7 @@ util.error.prototype = {
         dump('yns_alert_original:\n\ts = ' + s + '\n\ttitle = ' + title + '\n\tb1 = ' + b1 + '\n\tb2 = ' + b2 + '\n\tb3 = ' + b3 + '\n\tc = ' + c + '\n');
         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
 
-        this.sound.bad();
+        if (this.sound) { this.sound.bad(); }
 
         // get a reference to the prompt service component.
         var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
index 5a7aeea..50981b0 100644 (file)
                     if (focus_element) focus_element.focus();
                 }
 
+                var snd = xul_param('sound',{'modal_xulG':true});
+                if (snd) {
+                    try { JSAN.use('util.sound'); var sound = new util.sound(); sound[ snd ](); } catch(E) { alert(E); }
+                }
+
                 JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
                 xulG.fancy_status = 'incomplete';
                 var key = location.pathname + location.search + location.hash;
index 8d7cc36..b84644a 100644 (file)
@@ -447,7 +447,6 @@ util.network.prototype = {
                     }
 
                     netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
-                    obj.sound.bad();
                     var xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">' + 
                         '<groupbox><caption label="' + offlineStrings.getString('network.override.exceptions') + '"/>' + 
                         '<grid><columns><column/><column/></columns><rows>';
@@ -474,7 +473,7 @@ util.network.prototype = {
                         //+ '?xml_in_stash=temp_override_xml'
                         //+ '&title=' + window.escape(override_params.title),
                         'fancy_prompt', 'chrome,resizable,modal,width=700,height=500',
-                        { 'xml' : xml, 'title' : override_params.title }
+                        { 'xml' : xml, 'title' : override_params.title, 'sound' : 'bad' }
                     );
                     if (fancy_prompt_data.fancy_status == 'complete') {
                         req = obj._request(app,name + '.override',params);