diff options
Diffstat (limited to 'includes/js/dojox/storage/GearsStorageProvider.js')
-rw-r--r-- | includes/js/dojox/storage/GearsStorageProvider.js | 320 |
1 files changed, 0 insertions, 320 deletions
diff --git a/includes/js/dojox/storage/GearsStorageProvider.js b/includes/js/dojox/storage/GearsStorageProvider.js deleted file mode 100644 index 1e80634..0000000 --- a/includes/js/dojox/storage/GearsStorageProvider.js +++ /dev/null @@ -1,320 +0,0 @@ -if(!dojo._hasResource["dojox.storage.GearsStorageProvider"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.storage.GearsStorageProvider"] = true; -dojo.provide("dojox.storage.GearsStorageProvider"); -dojo.require("dojox.storage.Provider"); -dojo.require("dojox.storage.manager"); -dojo.require("dojox.sql"); - -if(dojo.isGears){ - - (function(){ - // make sure we don't define the gears provider if we're not gears - // enabled - - dojo.declare("dojox.storage.GearsStorageProvider", dojox.storage.Provider, { - // summary: - // Storage provider that uses the features of Google Gears - // to store data (it is saved into the local SQL database - // provided by Gears, using dojox.sql) - // description: - // You can disable this storage provider with the following djConfig - // variable: - // var djConfig = { disableGearsStorage: true }; - // - // Authors of this storage provider- - // Brad Neuberg, bkn3@columbia.edu - constructor: function(){ - }, - // instance methods and properties - TABLE_NAME: "__DOJO_STORAGE", - initialized: false, - - _available: null, - - initialize: function(){ - //console.debug("dojox.storage.GearsStorageProvider.initialize"); - if(dojo.config["disableGearsStorage"] == true){ - return; - } - - // partition our storage data so that multiple apps - // on the same host won't collide - this.TABLE_NAME = "__DOJO_STORAGE"; - - // create the table that holds our data - try{ - dojox.sql("CREATE TABLE IF NOT EXISTS " + this.TABLE_NAME + "( " - + " namespace TEXT, " - + " key TEXT, " - + " value TEXT " - + ")" - ); - dojox.sql("CREATE UNIQUE INDEX IF NOT EXISTS namespace_key_index" - + " ON " + this.TABLE_NAME - + " (namespace, key)"); - }catch(e){ - console.debug("dojox.storage.GearsStorageProvider.initialize:", e); - - this.initialized = false; // we were unable to initialize - dojox.storage.manager.loaded(); - return; - } - - // indicate that this storage provider is now loaded - this.initialized = true; - dojox.storage.manager.loaded(); - }, - - isAvailable: function(){ - // is Google Gears available and defined? - return this._available = dojo.isGears; - }, - - put: function(key, value, resultsHandler, namespace){ - if(this.isValidKey(key) == false){ - throw new Error("Invalid key given: " + key); - } - namespace = namespace||this.DEFAULT_NAMESPACE; - - // serialize the value; - // handle strings differently so they have better performance - if(dojo.isString(value)){ - value = "string:" + value; - }else{ - value = dojo.toJson(value); - } - - // try to store the value - try{ - dojox.sql("DELETE FROM " + this.TABLE_NAME - + " WHERE namespace = ? AND key = ?", - namespace, key); - dojox.sql("INSERT INTO " + this.TABLE_NAME - + " VALUES (?, ?, ?)", - namespace, key, value); - }catch(e){ - // indicate we failed - console.debug("dojox.storage.GearsStorageProvider.put:", e); - resultsHandler(this.FAILED, key, e.toString()); - return; - } - - if(resultsHandler){ - resultsHandler(dojox.storage.SUCCESS, key, null); - } - }, - - get: function(key, namespace){ - if(this.isValidKey(key) == false){ - throw new Error("Invalid key given: " + key); - } - namespace = namespace||this.DEFAULT_NAMESPACE; - - // try to find this key in the database - var results = dojox.sql("SELECT * FROM " + this.TABLE_NAME - + " WHERE namespace = ? AND " - + " key = ?", - namespace, key); - if(!results.length){ - return null; - }else{ - results = results[0].value; - } - - // destringify the content back into a - // real JavaScript object; - // handle strings differently so they have better performance - if(dojo.isString(results) && (/^string:/.test(results))){ - results = results.substring("string:".length); - }else{ - results = dojo.fromJson(results); - } - - return results; - }, - - getNamespaces: function(){ - var results = [ dojox.storage.DEFAULT_NAMESPACE ]; - - var rs = dojox.sql("SELECT namespace FROM " + this.TABLE_NAME - + " DESC GROUP BY namespace"); - for(var i = 0; i < rs.length; i++){ - if(rs[i].namespace != dojox.storage.DEFAULT_NAMESPACE){ - results.push(rs[i].namespace); - } - } - - return results; - }, - - getKeys: function(namespace){ - namespace = namespace||this.DEFAULT_NAMESPACE; - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - var rs = dojox.sql("SELECT key FROM " + this.TABLE_NAME - + " WHERE namespace = ?", - namespace); - - var results = []; - for(var i = 0; i < rs.length; i++){ - results.push(rs[i].key); - } - - return results; - }, - - clear: function(namespace){ - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - namespace = namespace||this.DEFAULT_NAMESPACE; - - dojox.sql("DELETE FROM " + this.TABLE_NAME - + " WHERE namespace = ?", - namespace); - }, - - remove: function(key, namespace){ - namespace = namespace||this.DEFAULT_NAMESPACE; - - dojox.sql("DELETE FROM " + this.TABLE_NAME - + " WHERE namespace = ? AND" - + " key = ?", - namespace, - key); - }, - - putMultiple: function(keys, values, resultsHandler, namespace) { - if(this.isValidKeyArray(keys) === false - || ! values instanceof Array - || keys.length != values.length){ - throw new Error("Invalid arguments: keys = [" - + keys + "], values = [" + values + "]"); - } - - if(namespace == null || typeof namespace == "undefined"){ - namespace = dojox.storage.DEFAULT_NAMESPACE; - } - - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - this._statusHandler = resultsHandler; - - // try to store the value - try{ - dojox.sql.open(); - dojox.sql.db.execute("BEGIN TRANSACTION"); - var _stmt = "REPLACE INTO " + this.TABLE_NAME + " VALUES (?, ?, ?)"; - for(var i=0;i<keys.length;i++) { - // serialize the value; - // handle strings differently so they have better performance - var value = values[i]; - if(dojo.isString(value)){ - value = "string:" + value; - }else{ - value = dojo.toJson(value); - } - - dojox.sql.db.execute( _stmt, - [namespace, keys[i], value]); - } - dojox.sql.db.execute("COMMIT TRANSACTION"); - dojox.sql.close(); - }catch(e){ - // indicate we failed - console.debug("dojox.storage.GearsStorageProvider.putMultiple:", e); - if(resultsHandler){ - resultsHandler(this.FAILED, keys, e.toString()); - } - return; - } - - if(resultsHandler){ - resultsHandler(dojox.storage.SUCCESS, key, null); - } - }, - - getMultiple: function(keys, namespace){ - // TODO: Maybe use SELECT IN instead - - if(this.isValidKeyArray(keys) === false){ - throw new ("Invalid key array given: " + keys); - } - - if(namespace == null || typeof namespace == "undefined"){ - namespace = dojox.storage.DEFAULT_NAMESPACE; - } - - if(this.isValidKey(namespace) == false){ - throw new Error("Invalid namespace given: " + namespace); - } - - var _stmt = "SELECT * FROM " + this.TABLE_NAME + - " WHERE namespace = ? AND " + " key = ?"; - - var results = []; - for(var i=0;i<keys.length;i++){ - var result = dojox.sql( _stmt, namespace, keys[i]); - - if( ! result.length){ - results[i] = null; - }else{ - result = result[0].value; - - // destringify the content back into a - // real JavaScript object; - // handle strings differently so they have better performance - if(dojo.isString(result) && (/^string:/.test(result))){ - results[i] = result.substring("string:".length); - }else{ - results[i] = dojo.fromJson(result); - } - } - } - - return results; - }, - - removeMultiple: function(keys, namespace){ - namespace = namespace||this.DEFAULT_NAMESPACE; - - dojox.sql.open(); - dojox.sql.db.execute("BEGIN TRANSACTION"); - var _stmt = "DELETE FROM " + this.TABLE_NAME + " WHERE namespace = ? AND key = ?"; - - for(var i=0;i<keys.length;i++){ - dojox.sql.db.execute( _stmt, - [namespace, keys[i]]); - } - dojox.sql.db.execute("COMMIT TRANSACTION"); - dojox.sql.close(); - }, - - isPermanent: function(){ return true; }, - - getMaximumSize: function(){ return this.SIZE_NO_LIMIT; }, - - hasSettingsUI: function(){ return false; }, - - showSettingsUI: function(){ - throw new Error(this.declaredClass - + " does not support a storage settings user-interface"); - }, - - hideSettingsUI: function(){ - throw new Error(this.declaredClass - + " does not support a storage settings user-interface"); - } - }); - - // register the existence of our storage providers - dojox.storage.manager.register("dojox.storage.GearsStorageProvider", - new dojox.storage.GearsStorageProvider()); - })(); -} - -} |