mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-14 05:23:21 +00:00
359 lines
44 KiB
HTML
359 lines
44 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
|
<title>API: Storage StorageEngineGears.js (YUI Library)</title>
|
|
|
|
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css" />
|
|
|
|
<script type="text/javascript" src="assets/api-js"></script>
|
|
<script type="text/javascript" src="assets/ac-js"></script>
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
<div id="hd">
|
|
<h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
|
|
<h3>Storage <span class="subtitle">2.8.2r1</span></h3>
|
|
<a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a>
|
|
> <a href="./module_storage.html" title="Storage">Storage</a>
|
|
|
|
> StorageEngineGears.js (source view)
|
|
<form onsubmit="return false">
|
|
<div id="propertysearch">
|
|
Search: <input autocomplete="off" id="searchinput" />
|
|
<div id="searchresults">
|
|
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
|
|
<fieldset>
|
|
<legend>Filters</legend>
|
|
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
|
|
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
|
|
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
|
|
</fieldset>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 .classopts { display:none; }
|
|
</style>
|
|
<div class="highlight"><pre><span class="cm">/*</span>
|
|
<span class="cm"> * Gears limitation:</span>
|
|
<span class="cm"> * - SQLite limitations - http://www.sqlite.org/limits.html</span>
|
|
<span class="cm"> * - DB Best Practices - http://code.google.com/apis/gears/gears_faq.html#bestPracticeDB</span>
|
|
<span class="cm"> * - the user must approve before gears can be used</span>
|
|
<span class="cm"> * - each SQL query has a limited number of characters (9948 bytes), data will need to be spread across rows</span>
|
|
<span class="cm"> * - no query should insert or update more than 9948 bytes of data in a single statement or GEARs will throw:</span>
|
|
<span class="cm"> * [Exception... "'Error: SQL statement is too long.' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "<unknown>" data: no]</span>
|
|
<span class="cm"> *</span>
|
|
<span class="cm"> * Thoughts:</span>
|
|
<span class="cm"> * - we may want to implement additional functions for the gears only implementation</span>
|
|
<span class="cm"> * - how can we not use cookies to handle session location</span>
|
|
<span class="cm"> */</span>
|
|
<span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="c1">// internal shorthand</span>
|
|
<span class="kd">var</span> <span class="nx">Y</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">,</span>
|
|
<span class="nx">YL</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">,</span>
|
|
<span class="nx">_SQL_STMT_LIMIT</span> <span class="o">=</span> <span class="mi">9948</span><span class="p">,</span>
|
|
<span class="nx">_TABLE_NAME</span> <span class="o">=</span> <span class="s1">'YUIStorageEngine'</span><span class="p">,</span>
|
|
|
|
<span class="c1">// local variables</span>
|
|
<span class="nx">_engine</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span>
|
|
|
|
<span class="nx">eURI</span> <span class="o">=</span> <span class="nb">encodeURIComponent</span><span class="p">,</span>
|
|
<span class="nx">dURI</span> <span class="o">=</span> <span class="nb">decodeURIComponent</span><span class="p">;</span>
|
|
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * The StorageEngineGears class implements the Google Gears storage engine.</span>
|
|
<span class="cm"> * @namespace YAHOO.util</span>
|
|
<span class="cm"> * @class StorageEngineGears</span>
|
|
<span class="cm"> * @constructor</span>
|
|
<span class="cm"> * @extend YAHOO.util.Storage</span>
|
|
<span class="cm"> * @param location {String} Required. The storage location.</span>
|
|
<span class="cm"> * @param conf {Object} Required. A configuration object.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">location</span><span class="p">,</span> <span class="nx">conf</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">_this</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">_this</span><span class="p">,</span> <span class="nx">location</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">ENGINE_NAME</span><span class="p">,</span> <span class="nx">conf</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">_engine</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="c1">// create the database</span>
|
|
<span class="nx">_engine</span> <span class="o">=</span> <span class="nx">google</span><span class="p">.</span><span class="nx">gears</span><span class="p">.</span><span class="nx">factory</span><span class="p">.</span><span class="nx">create</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">GEARS</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">open</span><span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">location</span><span class="p">.</span><span class="nx">host</span> <span class="o">+</span> <span class="s1">'-'</span> <span class="o">+</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">DATABASE</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'CREATE TABLE IF NOT EXISTS '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' (key TEXT, location TEXT, value TEXT)'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">isSessionStorage</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">StorageManager</span><span class="p">.</span><span class="nx">LOCATION_SESSION</span> <span class="o">===</span> <span class="nx">_this</span><span class="p">.</span><span class="nx">_location</span><span class="p">,</span>
|
|
<span class="nx">sessionKey</span> <span class="o">=</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">Cookie</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s1">'sessionKey'</span> <span class="o">+</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">ENGINE_NAME</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">sessionKey</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'BEGIN'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'DELETE FROM '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' WHERE location="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">StorageManager</span><span class="p">.</span><span class="nx">LOCATION_SESSION</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'COMMIT'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">rs</span> <span class="o">=</span> <span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'SELECT key FROM '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' WHERE location="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">_this</span><span class="p">.</span><span class="nx">_location</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">),</span>
|
|
<span class="nx">keyMap</span> <span class="o">=</span> <span class="p">{};</span>
|
|
|
|
<span class="k">try</span> <span class="p">{</span>
|
|
<span class="c1">// iterate on the rows and map the keys</span>
|
|
<span class="k">while</span> <span class="p">(</span><span class="nx">rs</span><span class="p">.</span><span class="nx">isValidRow</span><span class="p">())</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">fld</span> <span class="o">=</span> <span class="nx">dURI</span><span class="p">(</span><span class="nx">rs</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="mi">0</span><span class="p">));</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">keyMap</span><span class="p">[</span><span class="nx">fld</span><span class="p">])</span> <span class="p">{</span>
|
|
<span class="nx">keyMap</span><span class="p">[</span><span class="nx">fld</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
|
<span class="nx">_this</span><span class="p">.</span><span class="nx">_addKey</span><span class="p">(</span><span class="nx">fld</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">rs</span><span class="p">.</span><span class="nx">next</span><span class="p">();</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">finally</span> <span class="p">{</span>
|
|
<span class="nx">rs</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="c1">// this is session storage, ensure that the session key is set</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isSessionStorage</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Cookie</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="s1">'sessionKey'</span> <span class="o">+</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">ENGINE_NAME</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="nx">_this</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="nx">_this</span><span class="p">.</span><span class="nx">_keys</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
|
|
<span class="nx">YL</span><span class="p">.</span><span class="nx">later</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span> <span class="nx">_this</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="c1">// temporary solution so that CE_READY can be subscribed to after this object is created</span>
|
|
<span class="nx">_this</span><span class="p">.</span><span class="nx">fireEvent</span><span class="p">(</span><span class="nx">_this</span><span class="p">.</span><span class="nx">CE_READY</span><span class="p">);</span>
|
|
<span class="p">});</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="nx">YL</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">,</span> <span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineKeyed</span><span class="p">,</span> <span class="p">{</span>
|
|
|
|
<span class="cm">/*</span>
|
|
<span class="cm"> * Implementation to clear the values from the storage engine.</span>
|
|
<span class="cm"> * @see YAHOO.util.Storage._clear</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">_clear</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'BEGIN'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'DELETE FROM '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' WHERE location="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_location</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'COMMIT'</span><span class="p">);</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">_keys</span> <span class="o">=</span> <span class="p">[];</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/*</span>
|
|
<span class="cm"> * Implementation to fetch an item from the storage engine.</span>
|
|
<span class="cm"> * @see YAHOO.util.Storage._getItem</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">_getItem</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">rs</span> <span class="o">=</span> <span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'SELECT value FROM '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' WHERE key="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'" AND location="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_location</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">),</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span>
|
|
|
|
<span class="k">try</span> <span class="p">{</span>
|
|
<span class="k">while</span> <span class="p">(</span><span class="nx">rs</span><span class="p">.</span><span class="nx">isValidRow</span><span class="p">())</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">temp</span> <span class="o">=</span> <span class="nx">rs</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
|
|
<span class="nx">value</span> <span class="o">+=</span> <span class="nx">rs</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
|
|
<span class="nx">rs</span><span class="p">.</span><span class="nx">next</span><span class="p">();</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">finally</span> <span class="p">{</span>
|
|
<span class="nx">rs</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">value</span> <span class="o">?</span> <span class="nx">dURI</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/*</span>
|
|
<span class="cm"> * Implementation to fetch a key from the storage engine.</span>
|
|
<span class="cm"> * @see YAHOO.util.Storage.key</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">_key</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span><span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_keys</span><span class="p">[</span><span class="nx">index</span><span class="p">];},</span>
|
|
|
|
<span class="cm">/*</span>
|
|
<span class="cm"> * Implementation to remove an item from the storage engine.</span>
|
|
<span class="cm"> * @see YAHOO.util.Storage._removeItem</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">_removeItem</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"removing "</span> <span class="o">+</span> <span class="nx">key</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'BEGIN'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'DELETE FROM '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' WHERE key="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'" AND location="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_location</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'COMMIT'</span><span class="p">);</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">_removeKey</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
|
|
<span class="cm">/*</span>
|
|
<span class="cm"> * Implementation to remove an item from the storage engine.</span>
|
|
<span class="cm"> * @see YAHOO.util.Storage._setItem</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nx">_setItem</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">data</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"SETTING "</span> <span class="o">+</span> <span class="nx">data</span> <span class="o">+</span> <span class="s2">" to "</span> <span class="o">+</span> <span class="nx">key</span><span class="p">);</span>
|
|
|
|
<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="k">this</span><span class="p">.</span><span class="nx">hasKey</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">_addKey</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="kd">var</span> <span class="nx">_key</span> <span class="o">=</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">key</span><span class="p">),</span>
|
|
<span class="nx">_location</span> <span class="o">=</span> <span class="nx">eURI</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_location</span><span class="p">),</span>
|
|
<span class="nx">_value</span> <span class="o">=</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">data</span><span class="p">),</span>
|
|
<span class="nx">_values</span> <span class="o">=</span> <span class="p">[],</span>
|
|
<span class="nx">_len</span> <span class="o">=</span> <span class="nx">_SQL_STMT_LIMIT</span> <span class="o">-</span> <span class="p">(</span><span class="nx">_key</span> <span class="o">+</span> <span class="nx">_location</span><span class="p">).</span><span class="nx">length</span><span class="p">;</span>
|
|
|
|
<span class="c1">// the length of the value exceeds the available space</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">_len</span> <span class="o"><</span> <span class="nx">_value</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">j</span> <span class="o">=</span> <span class="nx">_value</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">j</span><span class="p">;</span> <span class="nx">i</span> <span class="o">+=</span> <span class="nx">_len</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">_values</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">_value</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">_len</span><span class="p">));</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="k">else</span> <span class="p">{</span>
|
|
<span class="nx">_values</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">_value</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="c1">// Google recommends using INSERT instead of update, because it is faster</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'BEGIN'</span><span class="p">);</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'DELETE FROM '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' WHERE key="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'" AND location="'</span> <span class="o">+</span> <span class="nx">eURI</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_location</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'"'</span><span class="p">);</span>
|
|
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">n</span> <span class="o">=</span> <span class="nx">_values</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">m</span> <span class="o"><</span> <span class="nx">n</span><span class="p">;</span> <span class="nx">m</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'INSERT INTO '</span> <span class="o">+</span> <span class="nx">_TABLE_NAME</span> <span class="o">+</span> <span class="s1">' VALUES ("'</span> <span class="o">+</span> <span class="nx">_key</span> <span class="o">+</span> <span class="s1">'", "'</span> <span class="o">+</span> <span class="nx">_location</span> <span class="o">+</span> <span class="s1">'", "'</span> <span class="o">+</span> <span class="nx">_values</span><span class="p">[</span><span class="nx">m</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'")'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="nx">_engine</span><span class="p">.</span><span class="nx">execute</span><span class="p">(</span><span class="s1">'COMMIT'</span><span class="p">);</span>
|
|
|
|
<span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">});</span>
|
|
|
|
<span class="c1">// releases the engine when the page unloads</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'unload'</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">_engine</span><span class="p">)</span> <span class="p">{</span><span class="nx">_engine</span><span class="p">.</span><span class="nx">close</span><span class="p">();}</span>
|
|
<span class="p">});</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">ENGINE_NAME</span> <span class="o">=</span> <span class="s1">'gears'</span><span class="p">;</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">GEARS</span> <span class="o">=</span> <span class="s1">'beta.database'</span><span class="p">;</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">DATABASE</span> <span class="o">=</span> <span class="s1">'yui.database'</span><span class="p">;</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">isAvailable</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">google</span> <span class="o">&&</span> <span class="nb">window</span><span class="p">.</span><span class="nx">google</span><span class="p">.</span><span class="nx">gears</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">try</span> <span class="p">{</span>
|
|
<span class="c1">// this will throw an exception if the user denies gears</span>
|
|
<span class="nx">google</span><span class="p">.</span><span class="nx">gears</span><span class="p">.</span><span class="nx">factory</span><span class="p">.</span><span class="nx">create</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">.</span><span class="nx">GEARS</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="c1">// no need to do anything</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
|
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
<span class="nx">Y</span><span class="p">.</span><span class="nx">StorageManager</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="nx">Y</span><span class="p">.</span><span class="nx">StorageEngineGears</span><span class="p">);</span>
|
|
<span class="p">}());</span>
|
|
</pre></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div id="moduleList" class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="module_animation.html" title="animation">animation</a></li>
|
|
<li class=""><a href="module_autocomplete.html" title="autocomplete">autocomplete</a></li>
|
|
<li class=""><a href="module_button.html" title="button">button</a></li>
|
|
<li class=""><a href="module_calendar.html" title="calendar">calendar</a></li>
|
|
<li class=""><a href="module_carousel.html" title="carousel">carousel</a></li>
|
|
<li class=""><a href="module_charts.html" title="charts">charts</a></li>
|
|
<li class=""><a href="module_colorpicker.html" title="colorpicker">colorpicker</a></li>
|
|
<li class=""><a href="module_connection.html" title="connection">connection</a></li>
|
|
<li class=""><a href="module_container.html" title="container">container</a></li>
|
|
<li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
|
|
<li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
|
|
<li class=""><a href="module_datatable.html" title="datatable">datatable</a></li>
|
|
<li class=""><a href="module_datemath.html" title="datemath">datemath</a></li>
|
|
<li class=""><a href="module_dom.html" title="dom">dom</a></li>
|
|
<li class=""><a href="module_dragdrop.html" title="dragdrop">dragdrop</a></li>
|
|
<li class=""><a href="module_editor.html" title="editor">editor</a></li>
|
|
<li class=""><a href="module_element.html" title="element">element</a></li>
|
|
<li class=""><a href="module_element-delegate.html" title="element-delegate">element-delegate</a></li>
|
|
<li class=""><a href="module_event.html" title="event">event</a></li>
|
|
<li class=""><a href="module_event-delegate.html" title="event-delegate">event-delegate</a></li>
|
|
<li class=""><a href="module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a></li>
|
|
<li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
|
|
<li class=""><a href="module_get.html" title="get">get</a></li>
|
|
<li class=""><a href="module_history.html" title="history">history</a></li>
|
|
<li class=""><a href="module_imagecropper.html" title="imagecropper">imagecropper</a></li>
|
|
<li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
|
|
<li class=""><a href="module_json.html" title="json">json</a></li>
|
|
<li class=""><a href="module_layout.html" title="layout">layout</a></li>
|
|
<li class=""><a href="module_logger.html" title="logger">logger</a></li>
|
|
<li class=""><a href="module_menu.html" title="menu">menu</a></li>
|
|
<li class=""><a href="module_paginator.html" title="paginator">paginator</a></li>
|
|
<li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
|
|
<li class=""><a href="module_profilerviewer.html" title="profilerviewer">profilerviewer</a></li>
|
|
<li class=""><a href="module_progressbar.html" title="progressbar">progressbar</a></li>
|
|
<li class=""><a href="module_resize.html" title="resize">resize</a></li>
|
|
<li class=""><a href="module_selector.html" title="selector">selector</a></li>
|
|
<li class=""><a href="module_slider.html" title="slider">slider</a></li>
|
|
<li class="selected"><a href="module_storage.html" title="Storage">Storage</a></li>
|
|
<li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
|
|
<li class=""><a href="module_swf.html" title="swf">swf</a></li>
|
|
<li class=""><a href="module_swfdetect.html" title="swfdetect">swfdetect</a></li>
|
|
<li class=""><a href="module_swfstore.html" title="swfstore">swfstore</a></li>
|
|
<li class=""><a href="module_tabview.html" title="tabview">tabview</a></li>
|
|
<li class=""><a href="module_treeview.html" title="treeview">treeview</a></li>
|
|
<li class=""><a href="module_uploader.html" title="uploader">uploader</a></li>
|
|
<li class=""><a href="module_yahoo.html" title="yahoo">yahoo</a></li>
|
|
<li class=""><a href="module_yuiloader.html" title="yuiloader">yuiloader</a></li>
|
|
<li class=""><a href="module_yuitest.html" title="yuitest">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="classList" class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.util.Storage.html" title="YAHOO.util.Storage">YAHOO.util.Storage</a></li>
|
|
<li class=""><a href="YAHOO.util.StorageEngineGears.html" title="YAHOO.util.StorageEngineGears">YAHOO.util.StorageEngineGears</a></li>
|
|
<li class=""><a href="YAHOO.util.StorageEngineHTML5.html" title="YAHOO.util.StorageEngineHTML5">YAHOO.util.StorageEngineHTML5</a></li>
|
|
<li class=""><a href="YAHOO.util.StorageEngineKeyed.html" title="YAHOO.util.StorageEngineKeyed">YAHOO.util.StorageEngineKeyed</a></li>
|
|
<li class=""><a href="YAHOO.util.StorageEngineSWF.html" title="YAHOO.util.StorageEngineSWF">YAHOO.util.StorageEngineSWF</a></li>
|
|
<li class=""><a href="YAHOO.util.StorageEvent.html" title="YAHOO.util.StorageEvent">YAHOO.util.StorageEvent</a></li>
|
|
<li class=""><a href="YAHOO.util.StorageManager.html" title="YAHOO.util.StorageManager">YAHOO.util.StorageManager</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="fileList" class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="gears_init.js.html" title="gears_init.js">gears_init.js</a></li>
|
|
<li class=""><a href="Storage.js.html" title="Storage.js">Storage.js</a></li>
|
|
<li class="selected"><a href="StorageEngineGears.js.html" title="StorageEngineGears.js">StorageEngineGears.js</a></li>
|
|
<li class=""><a href="StorageEngineHTML5.js.html" title="StorageEngineHTML5.js">StorageEngineHTML5.js</a></li>
|
|
<li class=""><a href="StorageEngineKeyed.js.html" title="StorageEngineKeyed.js">StorageEngineKeyed.js</a></li>
|
|
<li class=""><a href="StorageEngineSWF.js.html" title="StorageEngineSWF.js">StorageEngineSWF.js</a></li>
|
|
<li class=""><a href="StorageEvent.js.html" title="StorageEvent.js">StorageEvent.js</a></li>
|
|
<li class=""><a href="StorageManager.js.html" title="StorageManager.js">StorageManager.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2010 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
|
|
var ALL_YUI_PROPS = [{"access": "protected", "host": "YAHOO.util.StorageEngineKeyed", "name": "_addKey", "url": "YAHOO.util.StorageEngineKeyed.html#method__addKey", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "CE_CHANGE", "url": "YAHOO.util.Storage.html#property_CE_CHANGE", "type": "property"}, {"access": "", "host": "YAHOO.util.Storage", "name": "CE_READY", "url": "YAHOO.util.Storage.html#property_CE_READY", "type": "property"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_cfg", "url": "YAHOO.util.Storage.html#property__cfg", "type": "property"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_clear", "url": "YAHOO.util.Storage.html#method__clear", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "clear", "url": "YAHOO.util.Storage.html#method_clear", "type": "method"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_createValue", "url": "YAHOO.util.Storage.html#method__createValue", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "DELIMITER", "url": "YAHOO.util.Storage.html#property_DELIMITER", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageManager", "name": "get", "url": "YAHOO.util.StorageManager.html#method_get", "type": "method"}, {"access": "private", "host": "YAHOO.util.StorageManager", "name": "_getClass", "url": "YAHOO.util.StorageManager.html#method__getClass", "type": "method"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_getItem", "url": "YAHOO.util.Storage.html#method__getItem", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "getItem", "url": "YAHOO.util.Storage.html#method_getItem", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "getName", "url": "YAHOO.util.Storage.html#method_getName", "type": "method"}, {"access": "private", "host": "YAHOO.util.StorageManager", "name": "_getStorageEngine", "url": "YAHOO.util.StorageManager.html#method__getStorageEngine", "type": "method"}, {"access": "private", "host": "YAHOO.util.StorageManager", "name": "_getValidLocation", "url": "YAHOO.util.StorageManager.html#method__getValidLocation", "type": "method"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_getValue", "url": "YAHOO.util.Storage.html#method__getValue", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "hasKey", "url": "YAHOO.util.Storage.html#method_hasKey", "type": "method"}, {"access": "protected", "host": "YAHOO.util.StorageEngineKeyed", "name": "_indexOfKey", "url": "YAHOO.util.StorageEngineKeyed.html#method__indexOfKey", "type": "method"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "isReady", "url": "YAHOO.util.Storage.html#property_isReady", "type": "property"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_key", "url": "YAHOO.util.Storage.html#method__key", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "key", "url": "YAHOO.util.Storage.html#method_key", "type": "method"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "key", "url": "YAHOO.util.StorageEvent.html#property_key", "type": "property"}, {"access": "protected", "host": "YAHOO.util.StorageEngineKeyed", "name": "_keyMap", "url": "YAHOO.util.StorageEngineKeyed.html#property__keyMap", "type": "property"}, {"access": "protected", "host": "YAHOO.util.StorageEngineKeyed", "name": "_keys", "url": "YAHOO.util.StorageEngineKeyed.html#property__keys", "type": "property"}, {"access": "", "host": "YAHOO.util.Storage", "name": "length", "url": "YAHOO.util.Storage.html#property_length", "type": "property"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_location", "url": "YAHOO.util.Storage.html#property__location", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageManager", "name": "LOCATION_LOCAL", "url": "YAHOO.util.StorageManager.html#property_LOCATION_LOCAL", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageManager", "name": "LOCATION_SESSION", "url": "YAHOO.util.StorageManager.html#property_LOCATION_SESSION", "type": "property"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_name", "url": "YAHOO.util.Storage.html#property__name", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "newValue", "url": "YAHOO.util.StorageEvent.html#property_newValue", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "oldValue", "url": "YAHOO.util.StorageEvent.html#property_oldValue", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageManager", "name": "register", "url": "YAHOO.util.StorageManager.html#method_register", "type": "method"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_removeItem", "url": "YAHOO.util.Storage.html#method__removeItem", "type": "method"}, {"access": "protected", "host": "YAHOO.util.StorageEngineKeyed", "name": "_removeKey", "url": "YAHOO.util.StorageEngineKeyed.html#method__removeKey", "type": "method"}, {"access": "protected", "host": "YAHOO.util.Storage", "name": "_setItem", "url": "YAHOO.util.Storage.html#method__setItem", "type": "method"}, {"access": "", "host": "YAHOO.util.Storage", "name": "setItem", "url": "YAHOO.util.Storage.html#method_setItem", "type": "method"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "source", "url": "YAHOO.util.StorageEvent.html#property_source", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "storageArea", "url": "YAHOO.util.StorageEvent.html#property_storageArea", "type": "property"}, {"access": "protected", "host": "YAHOO.util.StorageEngineSWF", "name": "_swf", "url": "YAHOO.util.StorageEngineSWF.html#property__swf", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "type", "url": "YAHOO.util.StorageEvent.html#property_type", "type": "property"}, {"access": "", "host": "YAHOO.util.StorageEvent", "name": "url", "url": "YAHOO.util.StorageEvent.html#property_url", "type": "property"}];
|
|
</script>
|
|
</body>
|
|
</html>
|