Skip to content
Snippets Groups Projects
Commit 1c5f7481 authored by Adrian Lang's avatar Adrian Lang
Browse files

Update jquery-cookie, cleanup dw_cookie

Pulled the current jquery-cookie version from https://github.com/carhartl/jquery-cookie.
parent 511885dd
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Handles the cookie used by several JavaScript functions * Handles the cookie used by several JavaScript functions
* *
* Only a single cookie is written and read. You may only save * Only a single cookie is written and read. You may only save
* sime name-value pairs - no complex types! * simple name-value pairs - no complex types!
* *
* You should only use the getValue and setValue methods * You should only use the getValue and setValue methods
* *
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* @author Michal Rezler <m.rezler@centrum.cz> * @author Michal Rezler <m.rezler@centrum.cz>
*/ */
DokuCookie = { DokuCookie = {
data: Array(), data: {},
name: 'DOKU_PREFS', name: 'DOKU_PREFS',
/** /**
...@@ -19,21 +19,17 @@ DokuCookie = { ...@@ -19,21 +19,17 @@ DokuCookie = {
* @author Andreas Gohr <andi@splitbrain.org> * @author Andreas Gohr <andi@splitbrain.org>
*/ */
setValue: function(key,val){ setValue: function(key,val){
var text = '';
this.init(); this.init();
this.data[key] = val; this.data[key] = val;
// prepare expire date
var now = new Date();
this.fixDate(now);
now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); //expire in a year
//save the whole data array //save the whole data array
var text = ''; jQuery.each(this.data, function (val, key) {
for(var key in this.data){ if (this.data.hasOwnProperty(key)) {
if (!this.data.hasOwnProperty(key)) continue; text += '#'+encodeURIComponent(key)+'#'+encodeURIComponent(val);
text += '#'+escape(key)+'#'+this.data[key]; }
} });
this.setCookie(this.name,text.substr(1),now,DOKU_BASE); jQuery.cookie(this.name,text.substr(1), {expires: 365, path: DOKU_BASE});
}, },
/** /**
...@@ -52,51 +48,16 @@ DokuCookie = { ...@@ -52,51 +48,16 @@ DokuCookie = {
* @author Andreas Gohr <andi@splitbrain.org> * @author Andreas Gohr <andi@splitbrain.org>
*/ */
init: function(){ init: function(){
if(this.data.length) return; var text, parts, i;
var text = this.getCookie(this.name); if(!jQuery.isEmptyObject(this.data)) {
return;
}
text = jQuery.cookie(this.name);
if(text){ if(text){
var parts = text.split('#'); parts = text.split('#');
for(var i=0; i<parts.length; i+=2){ for(i = 0; i < parts.length; i += 2){
this.data[unescape(parts[i])] = unescape(parts[i+1]); this.data[decodeURIComponent(parts[i])] = decodeURIComponent(parts[i+1]);
} }
} }
},
/**
* This sets a cookie by JavaScript
*
* @link http://www.webreference.com/js/column8/functions.html
*/
setCookie: function(name, value, expires_, path_, domain_, secure_) {
var params = {
expires: expires_,
path: path_,
domain: domain_,
secure: secure_,
};
jQuery.cookie(name, value, params);
},
/**
* This reads a cookie by JavaScript
*
* @link http://www.webreference.com/js/column8/functions.html
*/
getCookie: function(name) {
return unescape(jQuery.cookie(name));
},
/**
* This is needed for the cookie functions
*
* @link http://www.webreference.com/js/column8/functions.html
*/
fixDate: function(date) {
var base = new Date(0);
var skew = base.getTime();
if (skew > 0){
date.setTime(date.getTime() - skew);
}
} }
}; };
/** /**
* Cookie plugin * jQuery Cookie plugin
* *
* Copyright (c) 2006 Klaus Hartl (stilbuero.de) * Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses: * Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php * http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html * http://www.gnu.org/licenses/gpl.html
* *
*/ */
jQuery.cookie = function (key, value, options) {
/** // key and at least value given, set cookie...
* Create a cookie with the given name and value and other optional parameters. if (arguments.length > 1 && String(value) !== "[object Object]") {
* options = jQuery.extend({}, options);
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
* used when the cookie was set.
*
* @param String name The name of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
* If set to null or omitted, the cookie will be a session cookie and will not be retained
* when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
* require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
/** if (value === null || value === undefined) {
* Get the value of a cookie with the given name.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String name The name of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1; options.expires = -1;
} }
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { if (typeof options.expires === 'number') {
var date; var days = options.expires, t = options.expires = new Date();
if (typeof options.expires == 'number') { t.setDate(t.getDate() + days);
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
// CAUTION: Needed to parenthesize options.path and options.domain
// in the following expressions, otherwise they evaluate to undefined
// in the packed version for some reason...
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
} }
return cookieValue;
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(''));
} }
};
\ No newline at end of file // 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;
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment