| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
-   <title>The source code</title>
 
-   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
-   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
-   <style type="text/css">
 
-     .highlight { display: block; background-color: #ddd; }
 
-   </style>
 
-   <script type="text/javascript">
 
-     function highlight() {
 
-       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
 
-     }
 
-   </script>
 
- </head>
 
- <body onload="prettyPrint(); highlight();">
 
-   <pre class="prettyprint lang-js"><span id='Ext-state-CookieProvider'>/**
 
- </span> * A Provider implementation which saves and retrieves state via cookies. The CookieProvider supports the usual cookie
 
-  * options, such as:
 
-  *
 
-  * - {@link #path}
 
-  * - {@link #expires}
 
-  * - {@link #domain}
 
-  * - {@link #secure}
 
-  *
 
-  * Example:
 
-  *
 
-  *     var cp = Ext.create('Ext.state.CookieProvider', {
 
-  *         path: "/cgi-bin/",
 
-  *         expires: new Date(new Date().getTime()+(1000*60*60*24*30)), //30 days
 
-  *         domain: "sencha.com"
 
-  *     });
 
-  *
 
-  *     Ext.state.Manager.setProvider(cp);
 
-  *
 
-  */
 
- Ext.define('Ext.state.CookieProvider', {
 
-     extend: 'Ext.state.Provider',
 
- <span id='Ext-state-CookieProvider-cfg-path'>    /**
 
- </span>     * @cfg {String} path
 
-      * The path for which the cookie is active. Defaults to root '/' which makes it active for all pages in the site.
 
-      */
 
- <span id='Ext-state-CookieProvider-cfg-expires'>    /**
 
- </span>     * @cfg {Date} expires
 
-      * The cookie expiration date. Defaults to 7 days from now.
 
-      */
 
- <span id='Ext-state-CookieProvider-cfg-domain'>    /**
 
- </span>     * @cfg {String} domain
 
-      * The domain to save the cookie for. Note that you cannot specify a different domain than your page is on, but you can
 
-      * specify a sub-domain, or simply the domain itself like 'sencha.com' to include all sub-domains if you need to access
 
-      * cookies across different sub-domains. Defaults to null which uses the same domain the page is running on including
 
-      * the 'www' like 'www.sencha.com'.
 
-      */
 
- <span id='Ext-state-CookieProvider-cfg-secure'>    /**
 
- </span>     * @cfg {Boolean} [secure=false]
 
-      * True if the site is using SSL
 
-      */
 
- <span id='Ext-state-CookieProvider-method-constructor'>    /**
 
- </span>     * Creates a new CookieProvider.
 
-      * @param {Object} [config] Config object.
 
-      */
 
-     constructor : function(config){
 
-         var me = this;
 
-         me.path = "/";
 
-         me.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); //7 days
 
-         me.domain = null;
 
-         me.secure = false;
 
-         me.callParent(arguments);
 
-         me.state = me.readCookies();
 
-     },
 
-     // private
 
-     set : function(name, value){
 
-         var me = this;
 
-         if(typeof value == "undefined" || value === null){
 
-             me.clear(name);
 
-             return;
 
-         }
 
-         me.setCookie(name, value);
 
-         me.callParent(arguments);
 
-     },
 
-     // private
 
-     clear : function(name){
 
-         this.clearCookie(name);
 
-         this.callParent(arguments);
 
-     },
 
-     // private
 
-     readCookies : function(){
 
-         var cookies = {},
 
-             c = document.cookie + ";",
 
-             re = /\s?(.*?)=(.*?);/g,
 
-             prefix = this.prefix,
 
-             len = prefix.length,
 
-             matches,
 
-             name,
 
-             value;
 
-         while((matches = re.exec(c)) != null){
 
-             name = matches[1];
 
-             value = matches[2];
 
-             if (name && name.substring(0, len) == prefix){
 
-                 cookies[name.substr(len)] = this.decodeValue(value);
 
-             }
 
-         }
 
-         return cookies;
 
-     },
 
-     // private
 
-     setCookie : function(name, value){
 
-         var me = this;
 
-         document.cookie = me.prefix + name + "=" + me.encodeValue(value) +
 
-            ((me.expires == null) ? "" : ("; expires=" + me.expires.toGMTString())) +
 
-            ((me.path == null) ? "" : ("; path=" + me.path)) +
 
-            ((me.domain == null) ? "" : ("; domain=" + me.domain)) +
 
-            ((me.secure == true) ? "; secure" : "");
 
-     },
 
-     // private
 
-     clearCookie : function(name){
 
-         var me = this;
 
-         document.cookie = me.prefix + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" +
 
-            ((me.path == null) ? "" : ("; path=" + me.path)) +
 
-            ((me.domain == null) ? "" : ("; domain=" + me.domain)) +
 
-            ((me.secure == true) ? "; secure" : "");
 
-     }
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |