aboutsummaryrefslogtreecommitdiffstats
path: root/resources/lib/jquery/jquery.cookie.js
diff options
context:
space:
mode:
authorpaladox <thomasmulhall410@yahoo.com>2014-06-12 12:45:54 -0700
committerKrinkle <krinklemail@gmail.com>2014-07-12 10:26:15 +0000
commit5ec8e1ed10046ed21eef593b4e7629f1ff06ce37 (patch)
tree78a4107bb177fab6db9d66fed3a16c100d7894da /resources/lib/jquery/jquery.cookie.js
parentcc543d28e14d7ef96a79cef539addb12708fd724 (diff)
downloadmediawikicore-5ec8e1ed10046ed21eef593b4e7629f1ff06ce37.tar.gz
mediawikicore-5ec8e1ed10046ed21eef593b4e7629f1ff06ce37.zip
Update jQuery Cookie to v1.2.0
Source * https://github.com/carhartl/jquery-cookie/blob/v1.2.0/jquery.cookie.js Change log * https://github.com/carhartl/jquery-cookie/blob/v1.2.0/CHANGELOG.md README * https://github.com/carhartl/jquery-cookie/blob/v1.2.0/README.md We're upgrading from an early alpha version of v1.1 (faa09dc). The main change is the addition of $.removeCookie() for deleting cookies, usage of $.cookie('key', null) has been deprecated. We should eventually upgrade to v1.4.1, but that has a breaking change. Namely, it drops support for $.cookie('key', null) which needs to be replaced by $.removeCookie which didn't exist until v1.2.0. Change-Id: I511138518fcd8bffc86fc3feaf5dbe253c7d786f
Diffstat (limited to 'resources/lib/jquery/jquery.cookie.js')
-rw-r--r--resources/lib/jquery/jquery.cookie.js103
1 files changed, 64 insertions, 39 deletions
diff --git a/resources/lib/jquery/jquery.cookie.js b/resources/lib/jquery/jquery.cookie.js
index 6d5974a2c573..95001fb0d4bc 100644
--- a/resources/lib/jquery/jquery.cookie.js
+++ b/resources/lib/jquery/jquery.cookie.js
@@ -1,5 +1,6 @@
+/*jshint eqnull:true */
/*!
- * jQuery Cookie Plugin
+ * jQuery Cookie Plugin v1.2
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2011, Klaus Hartl
@@ -7,41 +8,65 @@
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/GPL-2.0
*/
-(function($) {
- $.cookie = function(key, value, options) {
-
- // key and at least value given, set cookie...
- if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
- options = $.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 decode = options.raw ? function(s) { return s; } : decodeURIComponent;
-
- var pairs = document.cookie.split('; ');
- for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
- if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
- }
- return null;
- };
-})(jQuery);
+(function ($, document, undefined) {
+
+ var pluses = /\+/g;
+
+ function raw(s) {
+ return s;
+ }
+
+ function decoded(s) {
+ return decodeURIComponent(s.replace(pluses, ' '));
+ }
+
+ $.cookie = function (key, value, options) {
+
+ // key and at least value given, set cookie...
+ if (value !== undefined && !/Object/.test(Object.prototype.toString.call(value))) {
+ options = $.extend({}, $.cookie.defaults, options);
+
+ if (value === null) {
+ 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 || $.cookie.defaults || {};
+ var decode = options.raw ? raw : decoded;
+ var cookies = document.cookie.split('; ');
+ for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) {
+ if (decode(parts.shift()) === key) {
+ return decode(parts.join('='));
+ }
+ }
+
+ return null;
+ };
+
+ $.cookie.defaults = {};
+
+ $.removeCookie = function (key, options) {
+ if ($.cookie(key, options) !== null) {
+ $.cookie(key, null, options);
+ return true;
+ }
+ return false;
+ };
+
+})(jQuery, document);