support open-ils.write_in_user_chrome_directory pref
authorpines <pines@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 23 Feb 2007 18:45:28 +0000 (18:45 +0000)
committerpines <pines@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 23 Feb 2007 18:45:28 +0000 (18:45 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_0@7012 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/chrome/content/util/file.js
Open-ILS/xul/staff_client/defaults/preferences/prefs.js

index 8bfa12f..ca57ff8 100644 (file)
@@ -29,13 +29,23 @@ util.file.prototype = {
                        if (!fname) { fname = this.name; } else { this.name = fname; }
                        if (!fname) throw('Must specify a filename.');
 
+                       try {
+                               netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead UniversalFileRead");
+                               var pref = Components.classes["@mozilla.org/preferences-service;1"]
+                                       .getService(Components.interfaces.nsIPrefBranch);
+                               if (!path && pref.getBoolPref("open-ils.write_in_user_chrome_directory")) path = 'uchrome';
+                       } catch(E) {
+                               // getBoolPref throws an exception if "open-ils.write_in_user_chrome_directory" is not defined at all
+                               // in defaults/preferences/prefs.js
+                       }
+
                        switch(path) {
-                               case 'profile' :
+                               case 'uchrome' :
                                        this._file = this.dirService.get( "UChrm",  Components.interfaces.nsIFile );
                                        //this._file = this.dirService.get( "ProfD",  Components.interfaces.nsIFile );
                                break;
-                               case 'chrome' : 
                                default:
+                               case 'chrome' : 
                                        this._file = this.dirService.get( "AChrom",  Components.interfaces.nsIFile );
                                        this._file.append(myPackageDir); 
                                        this._file.append("content"); 
@@ -50,7 +60,7 @@ util.file.prototype = {
                        return this._file;
 
                } catch(E) {
-                       this.error.sdump('D_ERROR',this._file.path + '\nutil.file.get(): ' + E);
+                       this.error.standard_unexpected_error_alert('error in util.file.get('+fname+','+path+')',E);
                        throw(E);
                }
        },
index d13c84c..3ae015f 100644 (file)
@@ -5,6 +5,9 @@
 // This one is required for XUL Runner
 pref("toolkit.defaultChromeURI", "chrome://open_ils_staff_client/content/main/main.xul");
 
+// This one is specific for Open-ILS
+pref("open-ils.write_in_user_chrome_directory", true);
+
 // This one just makes things speedier.  We use a lot of XMLHttpRequest
 pref("network.http.max-persistent-connections-per-server",8);