07e06d56eecc0be52d49103de6fe7159b071829a
[roojs1] / docs / src / Roo_state_CookieProvider.js.html
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">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11 /**
12  * @class Roo.state.CookieProvider
13  * @extends Roo.state.Provider
14  * The default Provider implementation which saves state via cookies.
15  * &lt;br /&gt;Usage:
16  &lt;pre&gt;&lt;code&gt;
17    var cp = new Roo.state.CookieProvider({
18        path: &quot;/cgi-bin/&quot;,
19        expires: new Date(new Date().getTime()+(1000*60*60*24*30)); //30 days
20        domain: &quot;roojs.com&quot;
21    })
22    Roo.state.Manager.setProvider(cp);
23  &lt;/code&gt;&lt;/pre&gt;
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)
31  * @constructor
32  * Create a new CookieProvider
33  * @param {Object} config The configuration object
34  */
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">&quot;/&quot;</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">();
43 };
44
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">&quot;undefined&quot; </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">;
51         }
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">);
54     },
55
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">);
60     },
61
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">&quot;;&quot;</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">&amp;&amp; </span><span class="jsdoc-var">name.substring</span><span class="jsdoc-syntax">(0,3) == </span><span class="jsdoc-string">&quot;ys-&quot;</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">);
73             }
74         }
75         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cookies</span><span class="jsdoc-syntax">;
76     },
77
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">&quot;ys-&quot;</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;=&quot; </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">&quot;&quot; </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">&quot;; expires=&quot; </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">&quot;&quot; </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">&quot;; path=&quot; </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">&quot;&quot; </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">&quot;; domain=&quot; </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">&quot;; secure&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
85     },
86
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">&quot;ys-&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;=null; expires=Thu, 01-Jan-70 00:00:01 GMT&quot; </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">&quot;&quot; </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">&quot;; path=&quot; </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">&quot;&quot; </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-string">&quot;; domain=&quot; </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">&quot;; secure&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
93     }
94 });</span></code></body></html>