get jquery.cookies working right
This commit is contained in:
parent
f1f337c871
commit
2066effe5d
36
Rakefile
36
Rakefile
@ -4,7 +4,14 @@ require 'zip/zip'
|
|||||||
|
|
||||||
sources = {
|
sources = {
|
||||||
'jquery.cookies' => [
|
'jquery.cookies' => [
|
||||||
'http://cookies.googlecode.com/svn/trunk/jquery.cookies.js'
|
'http://cookies.googlecode.com/svn/trunk/jquery.cookies.js',
|
||||||
|
'http://cookies.googlecode.com/svn/trunk/jaaulde.cookies.js',
|
||||||
|
lambda {
|
||||||
|
lines = File.readlines(cookies = 'vendor/assets/javascripts/jquery.cookies.js')
|
||||||
|
|
||||||
|
lines.unshift("//= require jaaulde.cookies")
|
||||||
|
File.open(cookies, 'wb') { |fh| fh.print lines.collect(&:strip).join("\n") }
|
||||||
|
}
|
||||||
],
|
],
|
||||||
'jquery-elastic' => lambda {
|
'jquery-elastic' => lambda {
|
||||||
process_zip_url('http://jquery-elastic.googlecode.com/files/jquery.elastic-1.6.11.zip', {
|
process_zip_url('http://jquery-elastic.googlecode.com/files/jquery.elastic-1.6.11.zip', {
|
||||||
@ -38,7 +45,7 @@ sources = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def process_zip_url(url, entries = {})
|
def process_zip_url(url, entries = {})
|
||||||
mkdir_p 'tmp'
|
mkdir_p 'tmp'
|
||||||
|
|
||||||
response = HTTParty.get(url)
|
response = HTTParty.get(url)
|
||||||
File.open(target = 'tmp/elastic.zip', 'wb') { |fh| fh.print response.body }
|
File.open(target = 'tmp/elastic.zip', 'wb') { |fh| fh.print response.body }
|
||||||
@ -69,18 +76,23 @@ task :update do
|
|||||||
case files
|
case files
|
||||||
when Array
|
when Array
|
||||||
files.each do |url|
|
files.each do |url|
|
||||||
puts "Retrieving #{url} for #{name}..."
|
case url
|
||||||
response = HTTParty.get(url, :format => 'application/octet-stream')
|
when String
|
||||||
|
puts "Retrieving #{url} for #{name}..."
|
||||||
|
response = HTTParty.get(url, :format => 'application/octet-stream')
|
||||||
|
|
||||||
case File.extname(url)
|
case File.extname(url)
|
||||||
when '.js'
|
when '.js'
|
||||||
target = Pathname('vendor/assets/javascripts')
|
target = Pathname('vendor/assets/javascripts')
|
||||||
when '.css'
|
when '.css'
|
||||||
target = Pathname('vendor/assets/stylesheets')
|
target = Pathname('vendor/assets/stylesheets')
|
||||||
|
end
|
||||||
|
|
||||||
|
target.mkpath
|
||||||
|
target.join(File.basename(url)).open('wb') { |fh| fh.print response.body }
|
||||||
|
when Proc
|
||||||
|
url.call
|
||||||
end
|
end
|
||||||
|
|
||||||
target.mkpath
|
|
||||||
target.join(File.basename(url)).open('wb') { |fh| fh.print response.body }
|
|
||||||
end
|
end
|
||||||
when Proc
|
when Proc
|
||||||
puts "Executing code for #{name}..."
|
puts "Executing code for #{name}..."
|
||||||
|
422
vendor/assets/javascripts/jaaulde.cookies.js
vendored
Normal file
422
vendor/assets/javascripts/jaaulde.cookies.js
vendored
Normal file
@ -0,0 +1,422 @@
|
|||||||
|
/**
|
||||||
|
* jaaulde.cookies.js
|
||||||
|
*
|
||||||
|
* Copyright (c) 2005 - 2011, James Auldridge
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the BSD, MIT, and GPL (your choice!) Licenses:
|
||||||
|
* @link http://code.google.com/p/cookies/wiki/License
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
( function( global )
|
||||||
|
{
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/* localize globals */
|
||||||
|
var document = global.document,
|
||||||
|
Object = global.Object,
|
||||||
|
JSON = global.JSON,
|
||||||
|
/* localize first party support */
|
||||||
|
jaaulde = global.jaaulde = ( global.jaaulde || {} );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jaaulde.utils Namespace
|
||||||
|
*/
|
||||||
|
jaaulde.utils = jaaulde.utils || {};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The library
|
||||||
|
*/
|
||||||
|
jaaulde.utils.cookies = ( function()
|
||||||
|
{
|
||||||
|
var defaultOptions,
|
||||||
|
resolveOptions, assembleOptionsString, isNaN, trim, parseCookies, Constructor;
|
||||||
|
|
||||||
|
defaultOptions = {
|
||||||
|
expiresAt: null,
|
||||||
|
path: '/',
|
||||||
|
domain: null,
|
||||||
|
secure: false
|
||||||
|
};
|
||||||
|
|
||||||
|
resolveOptions = function( options )
|
||||||
|
{
|
||||||
|
var returnValue, expireDate;
|
||||||
|
|
||||||
|
if( typeof options !== 'object' || options === null )
|
||||||
|
{
|
||||||
|
returnValue = defaultOptions;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnValue = {
|
||||||
|
expiresAt: defaultOptions.expiresAt,
|
||||||
|
path: defaultOptions.path,
|
||||||
|
domain: defaultOptions.domain,
|
||||||
|
secure: defaultOptions.secure
|
||||||
|
};
|
||||||
|
|
||||||
|
if( typeof options.expiresAt === 'object' && options.expiresAt instanceof Date )
|
||||||
|
{
|
||||||
|
returnValue.expiresAt = options.expiresAt;
|
||||||
|
}
|
||||||
|
else if( typeof options.hoursToLive === 'number' && options.hoursToLive !== 0 )
|
||||||
|
{
|
||||||
|
expireDate = new global.Date();
|
||||||
|
expireDate.setTime( expireDate.getTime() + ( options.hoursToLive * 60 * 60 * 1000 ) );
|
||||||
|
returnValue.expiresAt = expireDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( typeof options.path === 'string' && options.path !== '' )
|
||||||
|
{
|
||||||
|
returnValue.path = options.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( typeof options.domain === 'string' && options.domain !== '' )
|
||||||
|
{
|
||||||
|
returnValue.domain = options.domain;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( options.secure === true )
|
||||||
|
{
|
||||||
|
returnValue.secure = options.secure;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
assembleOptionsString = function( options )
|
||||||
|
{
|
||||||
|
options = resolveOptions( options );
|
||||||
|
|
||||||
|
return (
|
||||||
|
( typeof options.expiresAt === 'object' && options.expiresAt instanceof Date ? '; expires=' + options.expiresAt.toGMTString() : '' ) +
|
||||||
|
'; path=' + options.path +
|
||||||
|
( typeof options.domain === 'string' ? '; domain=' + options.domain : '' ) +
|
||||||
|
( options.secure === true ? '; secure' : '' )
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Some logic borrowed from http://jquery.com/
|
||||||
|
*/
|
||||||
|
trim = global.String.prototype.trim ?
|
||||||
|
function( data )
|
||||||
|
{
|
||||||
|
return global.String.prototype.trim.call( data );
|
||||||
|
} :
|
||||||
|
( function()
|
||||||
|
{
|
||||||
|
var trimLeft, trimRight;
|
||||||
|
|
||||||
|
trimLeft = /^\s+/;
|
||||||
|
trimRight = /\s+$/;
|
||||||
|
|
||||||
|
return function( data )
|
||||||
|
{
|
||||||
|
return data.replace( trimLeft, '' ).replace( trimRight, '' );
|
||||||
|
};
|
||||||
|
}() );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Borrowed from http://jquery.com/
|
||||||
|
*/
|
||||||
|
isNaN = ( function()
|
||||||
|
{
|
||||||
|
var rdigit = /\d/, isNaN = global.isNaN;
|
||||||
|
return function( obj )
|
||||||
|
{
|
||||||
|
return ( obj === null || ! rdigit.test( obj ) || isNaN( obj ) );
|
||||||
|
};
|
||||||
|
}() );
|
||||||
|
|
||||||
|
parseCookies = ( function()
|
||||||
|
{
|
||||||
|
var parseJSON, rbrace;
|
||||||
|
|
||||||
|
parseJSON = JSON && JSON.parse ?
|
||||||
|
function( data )
|
||||||
|
{
|
||||||
|
var returnValue = null;
|
||||||
|
|
||||||
|
if( typeof data === 'string' && data !== '' )
|
||||||
|
{
|
||||||
|
// Make sure leading/trailing whitespace is removed (IE can't handle it)
|
||||||
|
data = trim( data );
|
||||||
|
|
||||||
|
if( data !== '' )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
returnValue = JSON.parse( data );
|
||||||
|
}
|
||||||
|
catch( e1 )
|
||||||
|
{
|
||||||
|
returnValue = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
} :
|
||||||
|
function()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
rbrace = /^(?:\{.*\}|\[.*\])$/;
|
||||||
|
|
||||||
|
return function()
|
||||||
|
{
|
||||||
|
var cookies, splitOnSemiColons, cookieCount, i, splitOnEquals, name, rawValue, value;
|
||||||
|
|
||||||
|
cookies = {};
|
||||||
|
splitOnSemiColons = document.cookie.split( ';' );
|
||||||
|
cookieCount = splitOnSemiColons.length;
|
||||||
|
|
||||||
|
for( i = 0; i < cookieCount; i = i + 1 )
|
||||||
|
{
|
||||||
|
splitOnEquals = splitOnSemiColons[i].split( '=' );
|
||||||
|
|
||||||
|
name = trim( splitOnEquals.shift() );
|
||||||
|
if( splitOnEquals.length >= 1 )
|
||||||
|
{
|
||||||
|
rawValue = splitOnEquals.join( '=' );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rawValue = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
value = decodeURIComponent( rawValue );
|
||||||
|
}
|
||||||
|
catch( e2 )
|
||||||
|
{
|
||||||
|
value = rawValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Logic borrowed from http://jquery.com/ dataAttr method
|
||||||
|
try
|
||||||
|
{
|
||||||
|
value = value === 'true' ?
|
||||||
|
true :
|
||||||
|
value === 'false' ?
|
||||||
|
false :
|
||||||
|
! isNaN( value ) ?
|
||||||
|
parseFloat( value ) :
|
||||||
|
rbrace.test( value ) ?
|
||||||
|
parseJSON( value ) :
|
||||||
|
value;
|
||||||
|
}
|
||||||
|
catch( e3 ) {}
|
||||||
|
|
||||||
|
cookies[name] = value;
|
||||||
|
}
|
||||||
|
return cookies;
|
||||||
|
};
|
||||||
|
}() );
|
||||||
|
|
||||||
|
Constructor = function(){};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get - get one, several, or all cookies
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @paramater Mixed cookieName - String:name of single cookie; Array:list of multiple cookie names; Void (no param):if you want all cookies
|
||||||
|
* @return Mixed - Value of cookie as set; Null:if only one cookie is requested and is not found; Object:hash of multiple or all cookies (if multiple or all requested);
|
||||||
|
*/
|
||||||
|
Constructor.prototype.get = function( cookieName )
|
||||||
|
{
|
||||||
|
var returnValue, item, cookies;
|
||||||
|
|
||||||
|
cookies = parseCookies();
|
||||||
|
|
||||||
|
if( typeof cookieName === 'string' )
|
||||||
|
{
|
||||||
|
returnValue = ( typeof cookies[cookieName] !== 'undefined' ) ? cookies[cookieName] : null;
|
||||||
|
}
|
||||||
|
else if( typeof cookieName === 'object' && cookieName !== null )
|
||||||
|
{
|
||||||
|
returnValue = {};
|
||||||
|
for( item in cookieName )
|
||||||
|
{
|
||||||
|
if( Object.prototype.hasOwnProperty.call( cookieName, item ) )
|
||||||
|
{
|
||||||
|
if( typeof cookies[cookieName[item]] !== 'undefined' )
|
||||||
|
{
|
||||||
|
returnValue[cookieName[item]] = cookies[cookieName[item]];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnValue[cookieName[item]] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
returnValue = cookies;
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* filter - get array of cookies whose names match the provided RegExp
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @paramater Object RegExp - The regular expression to match against cookie names
|
||||||
|
* @return Mixed - Object:hash of cookies whose names match the RegExp
|
||||||
|
*/
|
||||||
|
Constructor.prototype.filter = function( cookieNameRegExp )
|
||||||
|
{
|
||||||
|
var cookieName, returnValue, cookies;
|
||||||
|
|
||||||
|
returnValue = {};
|
||||||
|
cookies = parseCookies();
|
||||||
|
|
||||||
|
if( typeof cookieNameRegExp === 'string' )
|
||||||
|
{
|
||||||
|
cookieNameRegExp = new RegExp( cookieNameRegExp );
|
||||||
|
}
|
||||||
|
|
||||||
|
for( cookieName in cookies )
|
||||||
|
{
|
||||||
|
if( Object.prototype.hasOwnProperty.call( cookies, cookieName ) && cookieName.match( cookieNameRegExp ) )
|
||||||
|
{
|
||||||
|
returnValue[cookieName] = cookies[cookieName];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* set - set or delete a cookie with desired options
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @paramater String cookieName - name of cookie to set
|
||||||
|
* @paramater Mixed value - Any JS value. If not a string, will be JSON encoded (http://code.google.com/p/cookies/wiki/JSON); NULL to delete
|
||||||
|
* @paramater Object options - optional list of cookie options to specify
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
Constructor.prototype.set = function( cookieName, value, options )
|
||||||
|
{
|
||||||
|
if( typeof options !== 'object' || options === null )
|
||||||
|
{
|
||||||
|
options = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: consider value serialization method to parallel parse cookies
|
||||||
|
if( typeof value === 'undefined' || value === null )
|
||||||
|
{
|
||||||
|
value = '';
|
||||||
|
options.hoursToLive = -8760;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Logic borrowed from http://jquery.com/ dataAttr method and reversed
|
||||||
|
value = value === true ?
|
||||||
|
'true' :
|
||||||
|
value === false ?
|
||||||
|
'false' :
|
||||||
|
! isNaN( value ) ?
|
||||||
|
'' + value :
|
||||||
|
value;
|
||||||
|
if( typeof value !== 'string' )
|
||||||
|
{
|
||||||
|
if( typeof JSON === 'object' && JSON !== null && typeof JSON.stringify === 'function' )
|
||||||
|
{
|
||||||
|
value = JSON.stringify( value );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Error( 'cookies.set() received value which could not be serialized.' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var optionsString = assembleOptionsString( options );
|
||||||
|
|
||||||
|
document.cookie = cookieName + '=' + encodeURIComponent( value ) + optionsString;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* del - delete a cookie (domain and path options must match those with which the cookie was set; this is really an alias for set() with parameters simplified for this use)
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @paramater MIxed cookieName - String name of cookie to delete, or Bool true to delete all
|
||||||
|
* @paramater Object options - optional list of cookie options to specify ( path, domain )
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
Constructor.prototype.del = function( cookieName, options )
|
||||||
|
{
|
||||||
|
var allCookies, name;
|
||||||
|
|
||||||
|
allCookies = {};
|
||||||
|
|
||||||
|
if( typeof options !== 'object' || options === null )
|
||||||
|
{
|
||||||
|
options = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
if( typeof cookieName === 'boolean' && cookieName === true )
|
||||||
|
{
|
||||||
|
allCookies = this.get();
|
||||||
|
}
|
||||||
|
else if( typeof cookieName === 'string' )
|
||||||
|
{
|
||||||
|
allCookies[cookieName] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( name in allCookies )
|
||||||
|
{
|
||||||
|
if( Object.prototype.hasOwnProperty.call( allCookies, name ) && typeof name === 'string' && name !== '' )
|
||||||
|
{
|
||||||
|
this.set( name, null, options );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* test - test whether the browser is accepting cookies
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @return Boolean
|
||||||
|
*/
|
||||||
|
Constructor.prototype.test = function()
|
||||||
|
{
|
||||||
|
var returnValue, testName, testValue;
|
||||||
|
|
||||||
|
testName = 'cookiesCT';
|
||||||
|
testValue = 'data';
|
||||||
|
|
||||||
|
this.set( testName, testValue );
|
||||||
|
|
||||||
|
if( this.get( testName ) === testValue )
|
||||||
|
{
|
||||||
|
this.del( testName );
|
||||||
|
returnValue = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* setOptions - set default options for calls to cookie methods
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @param Object options - list of cookie options to specify
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
Constructor.prototype.setOptions = function( options )
|
||||||
|
{
|
||||||
|
if( typeof options !== 'object' )
|
||||||
|
{
|
||||||
|
options = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultOptions = resolveOptions( options );
|
||||||
|
};
|
||||||
|
|
||||||
|
return new Constructor();
|
||||||
|
}() );
|
||||||
|
}( window ) );
|
413
vendor/assets/javascripts/jquery.cookies.js
vendored
413
vendor/assets/javascripts/jquery.cookies.js
vendored
@ -1,238 +1,239 @@
|
|||||||
|
//= require jaaulde.cookies
|
||||||
/**
|
/**
|
||||||
* jquery.cookies.js
|
* jquery.cookies.js
|
||||||
*
|
*
|
||||||
* Copyright (c) 2005 - 2011, James Auldridge
|
* Copyright (c) 2005 - 2011, James Auldridge
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the BSD, MIT, and GPL (your choice!) Licenses:
|
* Licensed under the BSD, MIT, and GPL (your choice!) Licenses:
|
||||||
* @link http://code.google.com/p/cookies/wiki/License
|
* @link http://code.google.com/p/cookies/wiki/License
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
( function( global )
|
( function( global )
|
||||||
{
|
{
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/* localize 3rd party support */
|
/* localize 3rd party support */
|
||||||
var $ = global.jQuery,
|
var $ = global.jQuery,
|
||||||
/* localize first party support */
|
/* localize first party support */
|
||||||
jaaulde = global.jaaulde,
|
jaaulde = global.jaaulde,
|
||||||
cookies = jaaulde.utils.cookies,
|
cookies = jaaulde.utils.cookies,
|
||||||
/* declarations */
|
/* declarations */
|
||||||
NameTokenAttrResolver;
|
NameTokenAttrResolver;
|
||||||
|
|
||||||
/* alias cookies lib under jQ to meet general audience expectations */
|
/* alias cookies lib under jQ to meet general audience expectations */
|
||||||
$.cookies = cookies;
|
$.cookies = cookies;
|
||||||
|
|
||||||
NameTokenAttrResolver = function()
|
NameTokenAttrResolver = function()
|
||||||
{
|
{
|
||||||
var nameTokenAttrs = ['name', 'id'];
|
var nameTokenAttrs = ['name', 'id'];
|
||||||
this.current = null;
|
this.current = null;
|
||||||
this.nextAttrName = function()
|
this.nextAttrName = function()
|
||||||
{
|
{
|
||||||
this.current = nameTokenAttrs.shift();
|
this.current = nameTokenAttrs.shift();
|
||||||
return !! this.current;
|
return !! this.current;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
$.each( {
|
$.each( {
|
||||||
/**
|
/**
|
||||||
* $( 'selector' ).cookify - set the value of an input field, or the innerHTML of an element, to a cookie by the name or id of the field or element
|
* $( 'selector' ).cookify - set the value of an input field, or the innerHTML of an element, to a cookie by the name or id of the field or element
|
||||||
* (field or element MUST have name or id attribute)
|
* (field or element MUST have name or id attribute)
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @param options OBJECT - list of cookie options to specify
|
* @param options OBJECT - list of cookie options to specify
|
||||||
* @return jQuery
|
* @return jQuery
|
||||||
*/
|
*/
|
||||||
cookify: function( options )
|
cookify: function( options )
|
||||||
{
|
{
|
||||||
this
|
this
|
||||||
.not( ':input' )
|
.not( ':input' )
|
||||||
/*
|
/*
|
||||||
Iterate non input elements
|
Iterate non input elements
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
var $this, NTAR, nameToken, value;
|
var $this, NTAR, nameToken, value;
|
||||||
|
|
||||||
$this = $( this );
|
$this = $( this );
|
||||||
|
|
||||||
NTAR = new NameTokenAttrResolver();
|
NTAR = new NameTokenAttrResolver();
|
||||||
|
|
||||||
while( NTAR.nextAttrName() )
|
while( NTAR.nextAttrName() )
|
||||||
{
|
{
|
||||||
nameToken = $this.attr( NTAR.current );
|
nameToken = $this.attr( NTAR.current );
|
||||||
if( typeof nameToken === 'string' && nameToken !== '' )
|
if( typeof nameToken === 'string' && nameToken !== '' )
|
||||||
{
|
{
|
||||||
value = $this.html();
|
value = $this.html();
|
||||||
|
|
||||||
cookies.set(
|
cookies.set(
|
||||||
nameToken,
|
nameToken,
|
||||||
( typeof value === 'string' && value !== '' ) ? value : null,
|
( typeof value === 'string' && value !== '' ) ? value : null,
|
||||||
options
|
options
|
||||||
);
|
);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
.end()
|
.end()
|
||||||
.filter( ':input')
|
.filter( ':input')
|
||||||
.filter( ':radio' )
|
.filter( ':radio' )
|
||||||
/*
|
/*
|
||||||
Iterate radio inputs
|
Iterate radio inputs
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
|
|
||||||
} )
|
} )
|
||||||
.end()
|
.end()
|
||||||
.filter( ':checkbox' )
|
.filter( ':checkbox' )
|
||||||
/*
|
/*
|
||||||
Iterate checkbox inputs
|
Iterate checkbox inputs
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
|
|
||||||
} )
|
} )
|
||||||
.end()
|
.end()
|
||||||
.not( ':radio, :checkbox' )
|
.not( ':radio, :checkbox' )
|
||||||
/*
|
/*
|
||||||
Iterate all other inputs
|
Iterate all other inputs
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
var $this, NTAR, nameToken, value;
|
var $this, NTAR, nameToken, value;
|
||||||
|
|
||||||
$this = $( this );
|
$this = $( this );
|
||||||
|
|
||||||
NTAR = new NameTokenAttrResolver();
|
NTAR = new NameTokenAttrResolver();
|
||||||
|
|
||||||
while( NTAR.nextAttrName() )
|
while( NTAR.nextAttrName() )
|
||||||
{
|
{
|
||||||
nameToken = $this.attr( NTAR.current );
|
nameToken = $this.attr( NTAR.current );
|
||||||
if( typeof nameToken === 'string' && nameToken !== '' )
|
if( typeof nameToken === 'string' && nameToken !== '' )
|
||||||
{
|
{
|
||||||
value = $this.val();
|
value = $this.val();
|
||||||
|
|
||||||
cookies.set(
|
cookies.set(
|
||||||
nameToken,
|
nameToken,
|
||||||
( typeof value === 'string' && value !== '' ) ? value : null,
|
( typeof value === 'string' && value !== '' ) ? value : null,
|
||||||
options
|
options
|
||||||
);
|
);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* $( 'selector' ).cookieFill - set the value of an input field or the innerHTML of an element from a cookie by the name or id of the field or element
|
* $( 'selector' ).cookieFill - set the value of an input field or the innerHTML of an element from a cookie by the name or id of the field or element
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @return jQuery
|
* @return jQuery
|
||||||
*/
|
*/
|
||||||
cookieFill: function()
|
cookieFill: function()
|
||||||
{
|
{
|
||||||
this
|
this
|
||||||
.not( ':input' )
|
.not( ':input' )
|
||||||
/*
|
/*
|
||||||
Iterate non input elements
|
Iterate non input elements
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
var $this, NTAR, nameToken, value;
|
var $this, NTAR, nameToken, value;
|
||||||
|
|
||||||
$this = $( this );
|
$this = $( this );
|
||||||
|
|
||||||
NTAR = new NameTokenAttrResolver();
|
NTAR = new NameTokenAttrResolver();
|
||||||
|
|
||||||
while( NTAR.nextAttrName() )
|
while( NTAR.nextAttrName() )
|
||||||
{
|
{
|
||||||
nameToken = $this.attr( NTAR.current );
|
nameToken = $this.attr( NTAR.current );
|
||||||
if( typeof nameToken === 'string' && nameToken !== '' )
|
if( typeof nameToken === 'string' && nameToken !== '' )
|
||||||
{
|
{
|
||||||
value = cookies.get( nameToken );
|
value = cookies.get( nameToken );
|
||||||
if( value !== null )
|
if( value !== null )
|
||||||
{
|
{
|
||||||
$this.html( value );
|
$this.html( value );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
.end()
|
.end()
|
||||||
.filter( ':input')
|
.filter( ':input')
|
||||||
.filter( ':radio' )
|
.filter( ':radio' )
|
||||||
/*
|
/*
|
||||||
Iterate radio inputs
|
Iterate radio inputs
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
|
|
||||||
} )
|
} )
|
||||||
.end()
|
.end()
|
||||||
.filter( ':checkbox' )
|
.filter( ':checkbox' )
|
||||||
/*
|
/*
|
||||||
Iterate checkbox inputs
|
Iterate checkbox inputs
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
|
|
||||||
} )
|
} )
|
||||||
.end()
|
.end()
|
||||||
.not( ':radio, :checkbox' )
|
.not( ':radio, :checkbox' )
|
||||||
/*
|
/*
|
||||||
Iterate all other inputs
|
Iterate all other inputs
|
||||||
*/
|
*/
|
||||||
.each( function()
|
.each( function()
|
||||||
{
|
{
|
||||||
var $this, NTAR, nameToken, value;
|
var $this, NTAR, nameToken, value;
|
||||||
|
|
||||||
$this = $( this );
|
$this = $( this );
|
||||||
|
|
||||||
NTAR = new NameTokenAttrResolver();
|
NTAR = new NameTokenAttrResolver();
|
||||||
|
|
||||||
while( NTAR.nextAttrName() )
|
while( NTAR.nextAttrName() )
|
||||||
{
|
{
|
||||||
nameToken = $this.attr( NTAR.current );
|
nameToken = $this.attr( NTAR.current );
|
||||||
if( typeof nameToken === 'string' && nameToken !== '' )
|
if( typeof nameToken === 'string' && nameToken !== '' )
|
||||||
{
|
{
|
||||||
value = cookies.get( nameToken );
|
value = cookies.get( nameToken );
|
||||||
if( value !== null )
|
if( value !== null )
|
||||||
{
|
{
|
||||||
$this.val( value );
|
$this.val( value );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* $( 'selector' ).cookieBind - call cookie fill on matching elements, and bind their change events to cookify()
|
* $( 'selector' ).cookieBind - call cookie fill on matching elements, and bind their change events to cookify()
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @param options OBJECT - list of cookie options to specify
|
* @param options OBJECT - list of cookie options to specify
|
||||||
* @return jQuery
|
* @return jQuery
|
||||||
*/
|
*/
|
||||||
cookieBind: function( options )
|
cookieBind: function( options )
|
||||||
{
|
{
|
||||||
return this.each( function()
|
return this.each( function()
|
||||||
{
|
{
|
||||||
var $this = $( this );
|
var $this = $( this );
|
||||||
$this.cookieFill().change( function()
|
$this.cookieFill().change( function()
|
||||||
{
|
{
|
||||||
$this.cookify( options );
|
$this.cookify( options );
|
||||||
} );
|
} );
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
}, function( i )
|
}, function( i )
|
||||||
{
|
{
|
||||||
$.fn[i] = this;
|
$.fn[i] = this;
|
||||||
} );
|
} );
|
||||||
}( window ) );
|
}( window ) );
|
Loading…
Reference in New Issue
Block a user