mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
New build scripts
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5282 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
130
source/web/scripts/ajax/dojo/src/io/cookie.js
Normal file
130
source/web/scripts/ajax/dojo/src/io/cookie.js
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
Copyright (c) 2004-2006, The Dojo Foundation
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Academic Free License version 2.1 or above OR the
|
||||
modified BSD license. For more information on Dojo licensing, see:
|
||||
|
||||
http://dojotoolkit.org/community/licensing.shtml
|
||||
*/
|
||||
|
||||
dojo.provide("dojo.io.cookie");
|
||||
|
||||
dojo.io.cookie.setCookie = function(/*String*/name, /*String*/value,
|
||||
/*Number?*/days, /*String?*/path,
|
||||
/*String?*/domain, /*boolean?*/secure){
|
||||
//summary: sets a cookie.
|
||||
var expires = -1;
|
||||
if((typeof days == "number")&&(days >= 0)){
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime()+(days*24*60*60*1000));
|
||||
expires = d.toGMTString();
|
||||
}
|
||||
value = escape(value);
|
||||
document.cookie = name + "=" + value + ";"
|
||||
+ (expires != -1 ? " expires=" + expires + ";" : "")
|
||||
+ (path ? "path=" + path : "")
|
||||
+ (domain ? "; domain=" + domain : "")
|
||||
+ (secure ? "; secure" : "");
|
||||
}
|
||||
|
||||
dojo.io.cookie.set = dojo.io.cookie.setCookie;
|
||||
|
||||
dojo.io.cookie.getCookie = function(/*String*/name){
|
||||
//summary: Gets a cookie with the given name.
|
||||
|
||||
// FIXME: Which cookie should we return?
|
||||
// If there are cookies set for different sub domains in the current
|
||||
// scope there could be more than one cookie with the same name.
|
||||
// I think taking the last one in the list takes the one from the
|
||||
// deepest subdomain, which is what we're doing here.
|
||||
var idx = document.cookie.lastIndexOf(name+'=');
|
||||
if(idx == -1) { return null; }
|
||||
var value = document.cookie.substring(idx+name.length+1);
|
||||
var end = value.indexOf(';');
|
||||
if(end == -1) { end = value.length; }
|
||||
value = value.substring(0, end);
|
||||
value = unescape(value);
|
||||
return value; //String
|
||||
}
|
||||
|
||||
dojo.io.cookie.get = dojo.io.cookie.getCookie;
|
||||
|
||||
dojo.io.cookie.deleteCookie = function(/*String*/name){
|
||||
//summary: Deletes a cookie with the given name.
|
||||
dojo.io.cookie.setCookie(name, "-", 0);
|
||||
}
|
||||
|
||||
dojo.io.cookie.setObjectCookie = function( /*String*/name, /*Object*/obj,
|
||||
/*Number?*/days, /*String?*/path,
|
||||
/*String?*/domain, /*boolean?*/secure,
|
||||
/*boolean?*/clearCurrent){
|
||||
//summary: Takes an object, serializes it to a cookie value, and either
|
||||
//sets a cookie with the serialized value.
|
||||
//description: If clearCurrent is true, then any current cookie value
|
||||
//for this object will be replaced with the the new serialized object value.
|
||||
//If clearCurrent is false, then the existing cookie value will be modified
|
||||
//with any changes from the new object value.
|
||||
//Objects must be simple name/value pairs where the value is either a string
|
||||
//or a number. Any other value will be ignored.
|
||||
if(arguments.length == 5){ // for backwards compat
|
||||
clearCurrent = domain;
|
||||
domain = null;
|
||||
secure = null;
|
||||
}
|
||||
var pairs = [], cookie, value = "";
|
||||
if(!clearCurrent){
|
||||
cookie = dojo.io.cookie.getObjectCookie(name);
|
||||
}
|
||||
if(days >= 0){
|
||||
if(!cookie){ cookie = {}; }
|
||||
for(var prop in obj){
|
||||
if(obj[prop] == null){
|
||||
delete cookie[prop];
|
||||
}else if((typeof obj[prop] == "string")||(typeof obj[prop] == "number")){
|
||||
cookie[prop] = obj[prop];
|
||||
}
|
||||
}
|
||||
prop = null;
|
||||
for(var prop in cookie){
|
||||
pairs.push(escape(prop) + "=" + escape(cookie[prop]));
|
||||
}
|
||||
value = pairs.join("&");
|
||||
}
|
||||
dojo.io.cookie.setCookie(name, value, days, path, domain, secure);
|
||||
}
|
||||
|
||||
dojo.io.cookie.getObjectCookie = function(/*String*/name){
|
||||
//summary: Gets an object value for the given cookie name. The complement of
|
||||
//dojo.io.cookie.setObjectCookie().
|
||||
var values = null, cookie = dojo.io.cookie.getCookie(name);
|
||||
if(cookie){
|
||||
values = {};
|
||||
var pairs = cookie.split("&");
|
||||
for(var i = 0; i < pairs.length; i++){
|
||||
var pair = pairs[i].split("=");
|
||||
var value = pair[1];
|
||||
if( isNaN(value) ){ value = unescape(pair[1]); }
|
||||
values[ unescape(pair[0]) ] = value;
|
||||
}
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
dojo.io.cookie.isSupported = function(){
|
||||
//summary: Tests the browser to see if cookies are enabled.
|
||||
if(typeof navigator.cookieEnabled != "boolean"){
|
||||
dojo.io.cookie.setCookie("__TestingYourBrowserForCookieSupport__",
|
||||
"CookiesAllowed", 90, null);
|
||||
var cookieVal = dojo.io.cookie.getCookie("__TestingYourBrowserForCookieSupport__");
|
||||
navigator.cookieEnabled = (cookieVal == "CookiesAllowed");
|
||||
if(navigator.cookieEnabled){
|
||||
// FIXME: should we leave this around?
|
||||
this.deleteCookie("__TestingYourBrowserForCookieSupport__");
|
||||
}
|
||||
}
|
||||
return navigator.cookieEnabled; //boolean
|
||||
}
|
||||
|
||||
// need to leave this in for backwards-compat from 0.1 for when it gets pulled in by dojo.io.*
|
||||
if(!dojo.io.cookies){ dojo.io.cookies = dojo.io.cookie; }
|
Reference in New Issue
Block a user