From 86ec0cf9989aaa1afdad2f6a36a62d6515489e1b Mon Sep 17 00:00:00 2001
From: miker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Fri, 12 Nov 2010 20:39:09 +0000
Subject: [PATCH] Cache the language set (per locale) in a cookie

git-svn-id: svn://svn.open-ils.org/ILS/trunk@18719 dcc99617-32d9-48b4-a31d-7c20da2025e4
---
 Open-ILS/web/js/dojo/openils/I18N.js | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/Open-ILS/web/js/dojo/openils/I18N.js b/Open-ILS/web/js/dojo/openils/I18N.js
index 72f1dee280..120c395e78 100644
--- a/Open-ILS/web/js/dojo/openils/I18N.js
+++ b/Open-ILS/web/js/dojo/openils/I18N.js
@@ -25,7 +25,18 @@ if(!dojo._hasResource["openils.I18N"]) {
 
     dojo.declare('openils.I18N', null, {});
 
-	openils.I18N.BaseLocales = fieldmapper.standardRequest( [ 'open-ils.fielder', 'open-ils.fielder.i18n_l.atomic'], [ { cache : 1, query : { code : { '!=' :  null }  } } ] );
+	var x = dojo.cookie('I18Nset');
+	if (x) {
+		openils.I18N.BaseLocales = dojo.fromJson(x);
+	} else {
+		openils.I18N.BaseLocales = fieldmapper.standardRequest( [ 'open-ils.fielder', 'open-ils.fielder.i18n_l.atomic'], [ { cache : 1, query : { code : { '!=' :  null }  } } ] );
+		dojo.cookie(
+			'I18Nset',
+			dojo.toJson(openils.I18N.BaseLocales),
+			{ path : location.href.replace(/^https?:\/\/[^\/]+(\/.*\w{2}-\w{2}\/).*/, "$1") }
+		);
+	}
+
 	openils.I18N.localeStore = new dojo.data.ItemFileWriteStore( { data : {identifier : 'locale', label : 'label', items : [] } } );
 	openils.I18N.BaseLocales = openils.I18N.BaseLocales.sort(
         function(a, b) {
-- 
2.11.0