FELIX-3290 Unify cookie handling:
- global prefix "felix-webconsole-" with local names (bundlelist, locale)
- sticky cookie for 20 years
- bind to web console root path
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1222209 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/src/main/resources/res/lib/support.js b/webconsole/src/main/resources/res/lib/support.js
index fdcc3c4..0698624 100644
--- a/webconsole/src/main/resources/res/lib/support.js
+++ b/webconsole/src/main/resources/res/lib/support.js
@@ -268,6 +268,30 @@
return element;
}
+/**
+ * Sets the name cookie at the appRoot (/system/console by default) path
+ * to last for 20 years.
+ * @param name The name of the cookie
+ * @param value The value for the cookie
+ */
+function setCookie( /* String */name, /* String */value) {
+ var date = new Date();
+ date.setFullYear(date.getFullYear() + 20);
+ $.cookies.set("felix-webconsole-" + name, value, {
+ expiresAt : date,
+ path : appRoot
+ });
+}
+
+/**
+ * Returns the value of the name cookie or nothing if the cookie does
+ * not exist or is not accessible.
+ * @param name The name of the cookie
+ */
+/* String */ function getCookie(/*String */name) {
+ $.cookies.get("felix-webconsole-" + name);
+}
+
// language selection element
var langSelect = false;
$(document).ready(function() {
@@ -275,14 +299,10 @@
function() { $(this).find('.flags').show('blind') },
function() { $(this).find('.flags').hide('blind') });
langSelect.find('.flags img').click(function() {
- var date = new Date();
- date.setFullYear(date.getFullYear() + 20);
- $.cookies.set('felix.webconsole.locale',
- $(this).attr('alt'),
- { expiresAt: date });
+ setCookie("locale", $(this).attr('alt'));
location.reload();
});
- var locale = $.cookies.get('felix.webconsole.locale');
+ var locale = getCookie("locale");
if (locale) {
if ( !$.datepicker.regional[locale] ) locale = '';
$.datepicker.setDefaults($.datepicker.regional[locale]);