[tabs] do not use an ajax call to set cookie value, use jquery.cookie helper instead (closes #1944522)
--- a/web/data/cubicweb.ajax.js Wed Sep 21 19:00:49 2011 +0200
+++ b/web/data/cubicweb.ajax.js Wed Sep 21 19:04:33 2011 +0200
@@ -705,7 +705,7 @@
function setTab(tabname, cookiename) {
// set appropriate cookie
- loadRemote('json', ajaxFuncArgs('set_cookie', null, cookiename, tabname));
+ jQuery.cookie(cookiename, tabname, {path: '/'});
// trigger show + tabname event
triggerLoad(tabname);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/data/jquery.cookie.js Wed Sep 21 19:04:33 2011 +0200
@@ -0,0 +1,41 @@
+/**
+ * jQuery Cookie plugin
+ *
+ * Copyright (c) 2010 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+jQuery.cookie = function (key, value, options) {
+
+ // key and at least value given, set cookie...
+ if (arguments.length > 1 && String(value) !== "[object Object]") {
+ options = jQuery.extend({}, options);
+
+ if (value === null || value === undefined) {
+ options.expires = -1;
+ }
+
+ if (typeof options.expires === 'number') {
+ var days = options.expires, t = options.expires = new Date();
+ t.setDate(t.getDate() + days);
+ }
+
+ value = String(value);
+
+ return (document.cookie = [
+ encodeURIComponent(key), '=',
+ options.raw ? value : encodeURIComponent(value),
+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+ options.path ? '; path=' + options.path : '',
+ options.domain ? '; domain=' + options.domain : '',
+ options.secure ? '; secure' : ''
+ ].join(''));
+ }
+
+ // key and possibly options given, get cookie...
+ options = value || {};
+ var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
+ return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
+};
--- a/web/views/tabs.py Wed Sep 21 19:00:49 2011 +0200
+++ b/web/views/tabs.py Wed Sep 21 19:04:33 2011 +0200
@@ -128,7 +128,7 @@
entity.view(default, w=self.w)
return
self._cw.add_css('jquery.ui.css')
- self._cw.add_js(('jquery.ui.js', 'cubicweb.ajax.js'))
+ self._cw.add_js(('jquery.ui.js', 'cubicweb.ajax.js', 'jquery.cookie.js'))
# prune tabs : not all are to be shown
tabs, active_tab = self.prune_tabs(tabs, default)
# build the html structure