1 <html><head><title>/home/edward/gitlive/roojs1/Roo/state/CookieProvider.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
12 * @class Roo.state.CookieProvider
13 * @extends Roo.state.Provider
14 * The default Provider implementation which saves state via cookies.
16 <pre><code>
17 var cp = new Roo.state.CookieProvider({
18 path: "/cgi-bin/",
19 expires: new Date(new Date().getTime()+(1000*60*60*24*30)); //30 days
20 domain: "roojs.com"
22 Roo.state.Manager.setProvider(cp);
23 </code></pre>
24 * @cfg {String} path The path for which the cookie is active (defaults to root '/' which makes it active for all pages in the site)
25 * @cfg {Date} expires The cookie expiration date (defaults to 7 days from now)
26 * @cfg {String} domain The domain to save the cookie for. Note that you cannot specify a different domain than
27 * your page is on, but you can specify a sub-domain, or simply the domain itself like 'roojs.com' to include
28 * all sub-domains if you need to access cookies across different sub-domains (defaults to null which uses the same
29 * domain the page is running on including the 'www' like 'www.roojs.com')
30 * @cfg {Boolean} secure True if the site is using SSL (defaults to false)
32 * Create a new CookieProvider
33 * @param {Object} config The configuration object
35 </span><span class="jsdoc-var">Roo.state.CookieProvider </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
36 </span><span class="jsdoc-var">Roo.state.CookieProvider.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
37 </span><span class="jsdoc-var">this.path </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">"/"</span><span class="jsdoc-syntax">;
38 </span><span class="jsdoc-var">this.expires </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">()+(1000*60*60*24*7)); </span><span class="jsdoc-comment">//7 days
39 </span><span class="jsdoc-var">this.domain </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
40 </span><span class="jsdoc-var">this.secure </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
41 </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
42 </span><span class="jsdoc-var">this.state </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.readCookies</span><span class="jsdoc-syntax">();
45 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.state.CookieProvider</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.state.Provider</span><span class="jsdoc-syntax">, {
46 </span><span class="jsdoc-comment">// private
47 </span><span class="jsdoc-var">set </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
48 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"undefined" </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
49 </span><span class="jsdoc-var">this.clear</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">);
50 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
52 </span><span class="jsdoc-var">this.setCookie</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
53 </span><span class="jsdoc-var">Roo.state.CookieProvider.superclass.set.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
56 </span><span class="jsdoc-comment">// private
57 </span><span class="jsdoc-var">clear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">){
58 </span><span class="jsdoc-var">this.clearCookie</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">);
59 </span><span class="jsdoc-var">Roo.state.CookieProvider.superclass.clear.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">);
62 </span><span class="jsdoc-comment">// private
63 </span><span class="jsdoc-var">readCookies </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
64 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cookies </span><span class="jsdoc-syntax">= {};
65 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.cookie </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">";"</span><span class="jsdoc-syntax">;
66 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">= /\s?(.*?)=(.*?);/g;
67 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">matches</span><span class="jsdoc-syntax">;
68 </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">matches </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">re.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">)) != </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
69 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">matches</span><span class="jsdoc-syntax">[1];
70 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">matches</span><span class="jsdoc-syntax">[2];
71 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">name.substring</span><span class="jsdoc-syntax">(0,3) == </span><span class="jsdoc-string">"ys-"</span><span class="jsdoc-syntax">){
72 </span><span class="jsdoc-var">cookies</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">name.substr</span><span class="jsdoc-syntax">(3)] = </span><span class="jsdoc-var">this.decodeValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
75 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cookies</span><span class="jsdoc-syntax">;
78 </span><span class="jsdoc-comment">// private
79 </span><span class="jsdoc-var">setCookie </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
80 </span><span class="jsdoc-var">document.cookie </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">"ys-"</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"=" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.encodeValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">) +
81 ((</span><span class="jsdoc-var">this.expires </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"" </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">"; expires=" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.expires.toGMTString</span><span class="jsdoc-syntax">())) +
82 ((</span><span class="jsdoc-var">this.path </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"" </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">"; path=" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.path</span><span class="jsdoc-syntax">)) +
83 ((</span><span class="jsdoc-var">this.domain </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"" </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">"; domain=" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.domain</span><span class="jsdoc-syntax">)) +
84 ((</span><span class="jsdoc-var">this.secure </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"; secure" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
87 </span><span class="jsdoc-comment">// private
88 </span><span class="jsdoc-var">clearCookie </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">){
89 </span><span class="jsdoc-var">document.cookie </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">"ys-" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"=null; expires=Thu, 01-Jan-70 00:00:01 GMT" </span><span class="jsdoc-syntax">+
90 ((</span><span class="jsdoc-var">this.path </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"" </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">"; path=" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.path</span><span class="jsdoc-syntax">)) +
91 ((</span><span class="jsdoc-var">this.domain </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"" </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">"; domain=" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.domain</span><span class="jsdoc-syntax">)) +
92 ((</span><span class="jsdoc-var">this.secure </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">"; secure" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
94 });</span></code></body></html>