added default search location and depth preference
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 9 Aug 2006 13:11:52 +0000 (13:11 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 9 Aug 2006 13:11:52 +0000 (13:11 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5401 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/opac/common/js/config.js
Open-ILS/web/opac/common/js/init.js
Open-ILS/web/opac/skin/default/js/myopac.js
Open-ILS/web/opac/skin/default/js/sidebar.js
Open-ILS/web/opac/skin/default/xml/myopac/myopac_prefs.xml

index d656bbd..4ad57ec 100644 (file)
@@ -130,6 +130,8 @@ var LOGOUT_WARNING_TIME = 30; /* "head up" for session timeout */
 var PREF_HITS_PER              = 'opac.hits_per_page';
 var PREF_DEF_FONT              = 'opac.default_font';
 var PREF_HOLD_NOTIFY = 'opac.hold_notify';
+var PREF_DEF_LOCATION = 'opac.default_search_location';
+var PREF_DEF_DEPTH     = 'opac.default_search_depth';
 
 
 /* container for global variables shared accross pages */
index 28a2242..2fd2eda 100644 (file)
@@ -12,15 +12,20 @@ try{ attachEvt("common", "unload", cleanRemoteRequests);} catch(e){}
 
 function init() {
 
-
        runEvt('common','init');
        if( getOrigLocation() == 0 ) ORIGLOC = LOCATION;
 
        var cgi = new CGI();
        if( grabUser() ) {
                if( cgi.param(PARAM_LOCATION) == null ) {
-                       LOCATION = G.user.ws_ou();
-                       DEPTH = findOrgDepth(G.user.ws_ou());
+                       var org = G.user.prefs[PREF_DEF_LOCATION];
+                       var depth = G.user.prefs[PREF_DEF_DEPTH];
+
+                       if(!org) org = G.use.ws_ou();
+                       if(!depth) depth = findOrgDepth(org);
+
+                       LOCATION = org;
+                       DEPTH = DEPTH;
                }
        }
 
index a1bec6f..0c71e80 100644 (file)
@@ -578,6 +578,9 @@ function myOPACSavePrefs() {
        G.user.prefs[PREF_HITS_PER] = getSelectorVal($('prefs_hits_per'));
        G.user.prefs[PREF_DEF_FONT] = getSelectorVal($('prefs_def_font'));
        G.user.prefs[PREF_HOLD_NOTIFY] = getSelectorVal($('prefs_hold_notify'));
+       G.user.prefs[PREF_DEF_LOCATION] = getSelectorVal($('prefs_def_location'));
+       G.user.prefs[PREF_DEF_DEPTH] = getSelectorVal($('prefs_def_range'));
+
        if(commitUserPrefs())
                alert($('prefs_update_success').innerHTML);
        else alert($('prefs_update_failure').innerHTML);
@@ -614,9 +617,45 @@ function myOPACShowPrefs() {
        myOPACShowHitsPer();
        myOPACShowDefFont();
        myOPACShowHoldNotify();
+       myOPACShowDefLocation();
        hideMe($('myopac_prefs_loading'));
 }
 
+var defSearchLocationDrawn = false;
+var defDepthIndex = 0;
+function myOPACShowDefLocation() {
+
+       var selector = $('prefs_def_location');
+       var rsel = $('prefs_def_range');
+
+       var org = G.user.prefs[PREF_DEF_LOCATION];
+       if(!org) org = G.user.home_ou();
+
+       if(!defSearchLocationDrawn) {
+               defSearchLocationDrawn = true;
+               buildOrgSel(selector, globalOrgTree, 0);
+
+               globalOrgTypes = globalOrgTypes.sort(
+                       function(a, b) {
+                               if( a.depth() < b.depth() ) return -1;
+                               return 1;
+                       }
+               );
+
+               iterate(globalOrgTypes,
+                       function(t) {
+                               if( t.depth() <= findOrgDepth(org) ) {
+                                       setSelectorVal(rsel, defDepthIndex++, t.opac_label(), t.depth());
+                                       if( t.depth() == findOrgDepth(org) ) 
+                                               setSelector(rsel, t.depth());
+                               }
+                       }
+               );
+       }
+
+       setSelector(selector, org);
+}
+
 function myOPACShowHitsPer() {
        var hits = 10;
        if(G.user.prefs[PREF_HITS_PER])
index d70d026..fb7e2c5 100644 (file)
@@ -80,7 +80,15 @@ function loggedInOK() {
        unHideMe(G.ui.sidebar.logged_in_as);
        hideMe(G.ui.sidebar.loginbox);
        runEvt( 'common', 'loggedIn');
-       runEvt( "common", "locationChanged", G.user.home_ou(), findOrgDepth(G.user.home_ou()) );
+       
+       var org = G.user.prefs[PREF_DEF_LOCATION];
+       if(!org) org = G.user.home_ou();
+
+       var depth = G.user.prefs[PREF_DEF_DEPTH];
+       if(! ( depth && depth <= findOrgDepth(org)) ) 
+               depth = findOrgDepth(org);
+
+       runEvt( "common", "locationChanged", org, depth);
 }
 
 
index 0559276..431cd11 100644 (file)
                        </tr>
 
 
+                       <tr>
+                               <td>Default Search Location</td>
+                               <td>
+                                       <select id='prefs_def_location'>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>Default Search Range</td>
+                               <td>
+                                       <select id='prefs_def_range'>
+                                       </select>
+                               </td>
+                       </tr>
+
+
+
                        <!-- Save the preferences -->
                        <tr><td colspan='2'><br/></td></tr>