LP#1770981 Apply OpenSRF locale on webstaff page load
authorBill Erickson <berickxx@gmail.com>
Tue, 14 Aug 2018 19:22:49 +0000 (15:22 -0400)
committerBen Shum <ben@evergreener.net>
Wed, 15 Aug 2018 16:42:27 +0000 (12:42 -0400)
Translate the locale from the locale cookie into the global
OpenSRF.locale variable so network calls are stamped with the correct
locale.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Ben Shum <ben@evergreener.net>

Open-ILS/web/js/ui/default/staff/services/startup.js

index d947d75..41c6977 100644 (file)
@@ -21,7 +21,9 @@ angular.module('egCoreMod')
 
 .factory('egStartup', 
        ['$q','$rootScope','$location','$window','egIDL','egAuth','egEnv','egOrg',
-function($q,  $rootScope,  $location,  $window,  egIDL,  egAuth,  egEnv , egOrg ) {
+        '$cookies',
+function($q,  $rootScope,  $location,  $window,  egIDL,  egAuth,  egEnv , egOrg ,
+         $cookies) {
 
     var service = { promise : null }
 
@@ -89,6 +91,16 @@ function($q,  $rootScope,  $location,  $window,  egIDL,  egAuth,  egEnv , egOrg
             return service.promise;
         } 
 
+        // Apply the locale from the cookie before any network 
+        // calls are made.
+        var locale = $cookies.get('eg_locale');
+        if (locale) {
+            // Cookie is stored aa_bb.  OpenSRF wants aa-BB
+            var parts = locale.split(/_/);
+            OpenSRF.locale = parts[0] + '-' + parts[1].toUpperCase();
+            console.debug('Applying locale ' + OpenSRF.locale);
+        }
+
         // create a new promise and fire off startup
         var deferred = $q.defer();
         service.promise = deferred.promise;