diff --git a/Android/assets/www/SQLitePlugin-orig.js b/Android/assets/www/SQLitePlugin-orig-old.js similarity index 100% rename from Android/assets/www/SQLitePlugin-orig.js rename to Android/assets/www/SQLitePlugin-orig-old.js diff --git a/Android/assets/www/SQLitePlugin.js b/Android/assets/www/SQLitePlugin.js index 657a588..51761ea 100755 --- a/Android/assets/www/SQLitePlugin.js +++ b/Android/assets/www/SQLitePlugin.js @@ -1,264 +1,220 @@ (function() { - var root; - root = this; - //root.SQLitePlugin = (function() { - console.log("root.SQLitePlugin"); - SQLitePlugin.prototype.openDBs = {}; - - function SQLitePlugin(dbPath, openSuccess, openError) - { - console.log("SQLitePlugin"); - this.dbPath = dbPath; - this.openSuccess = openSuccess; - this.openError = openError; - if (!dbPath) { - throw new Error("Cannot create a SQLitePlugin instance without a dbPath"); - } - this.openSuccess || (this.openSuccess = function() { - console.log("DB opened: " + dbPath); - }); - this.openError || (this.openError = function(e) { - console.log(e.message); - }); - this.open(this.openSuccess, this.openError); + var SQLitePlugin, SQLitePluginTransaction, get_unique_id, root, transaction_callback_queue, transaction_queue; + root = this; + SQLitePlugin = function(dbPath, openSuccess, openError) { + console.log("SQLitePlugin"); + this.dbPath = dbPath; + this.openSuccess = openSuccess; + this.openError = openError; + if (!dbPath) { + throw new Error("Cannot create a SQLitePlugin instance without a dbPath"); } - - SQLitePlugin.prototype.transaction = function(fn, error, success) - { - console.log("SQLitePlugin.prototype.transaction"); - var t; - t = new root.SQLitePluginTransaction(this.dbPath); - fn(t); - return t.complete(success, error); + this.openSuccess || (this.openSuccess = function() { + return console.log("DB opened: " + dbPath); + }); + this.openError || (this.openError = function(e) { + return console.log(e.message); + }); + this.open(this.openSuccess, this.openError); + }; + SQLitePlugin.prototype.openDBs = {}; + SQLitePlugin.prototype.transaction = function(fn, error, success) { + var t; + t = new SQLitePluginTransaction(this.dbPath); + fn(t); + return t.complete(success, error); + }; + SQLitePlugin.prototype.open = function(success, error) { + var opts; + console.log("SQLitePlugin.prototype.open"); + opts = void 0; + if (!(this.dbPath in this.openDBs)) { + this.openDBs[this.dbPath] = true; + return PhoneGap.exec(success, error, "SQLitePlugin", "open", [this.dbPath]); + } + }; + SQLitePlugin.prototype.close = function(success, error) { + var opts; + console.log("SQLitePlugin.prototype.close"); + opts = void 0; + if (this.dbPath in this.openDBs) { + delete this.openDBs[this.dbPath]; + return PhoneGap.exec(null, null, "SQLitePlugin", "close", [this.dbPath]); + } + }; + get_unique_id = function() { + var id, id2; + id = new Date().getTime(); + id2 = new Date().getTime(); + while (id === id2) { + id2 = new Date().getTime(); + } + return id2 + "000"; + }; + transaction_queue = []; + transaction_callback_queue = {}; + SQLitePluginTransaction = function(dbPath) { + this.dbPath = dbPath; + this.executes = []; + this.trans_id = get_unique_id(); + this.__completed = false; + this.__submitted = false; + this.optimization_no_nested_callbacks = true; + console.log("SQLitePluginTransaction - this.trans_id:" + this.trans_id); + transaction_queue[this.trans_id] = []; + transaction_callback_queue[this.trans_id] = new Object(); + }; + SQLitePluginTransaction.queryCompleteCallback = function(transId, queryId, result) { + var query, x; + console.log("SQLitePluginTransaction.queryCompleteCallback"); + query = null; + for (x in transaction_queue[transId]) { + if (transaction_queue[transId][x]["query_id"] === queryId) { + query = transaction_queue[transId][x]; + if (transaction_queue[transId].length === 1) { + transaction_queue[transId] = []; + } else { + transaction_queue[transId].splice(x, 1); + } + break; + } + } + if (query && query["callback"]) return query["callback"](result); + }; + SQLitePluginTransaction.queryErrorCallback = function(transId, queryId, result) { + var query, x; + query = null; + for (x in transaction_queue[transId]) { + if (transaction_queue[transId][x]["query_id"] === queryId) { + query = transaction_queue[transId][x]; + if (transaction_queue[transId].length === 1) { + transaction_queue[transId] = []; + } else { + transaction_queue[transId].splice(x, 1); + } + break; + } + } + if (query && query["err_callback"]) return query["err_callback"](result); + }; + SQLitePluginTransaction.txCompleteCallback = function(transId) { + if (typeof transId !== "undefined") { + if (transId && transaction_callback_queue[transId] && transaction_callback_queue[transId]["success"]) { + return transaction_callback_queue[transId]["success"](); + } + } else { + return console.log("SQLitePluginTransaction.txCompleteCallback---transId = NULL"); + } + }; + SQLitePluginTransaction.txErrorCallback = function(transId, error) { + if (typeof transId !== "undefined") { + console.log("SQLitePluginTransaction.txErrorCallback---transId:" + transId); + if (transId && transaction_callback_queue[transId]["error"]) { + transaction_callback_queue[transId]["error"](error); + } + delete transaction_queue[transId]; + return delete transaction_callback_queue[transId]; + } else { + return console.log("SQLitePluginTransaction.txErrorCallback---transId = NULL"); + } + }; + SQLitePluginTransaction.prototype.add_to_transaction = function(trans_id, query, params, callback, err_callback) { + var new_query; + new_query = new Object(); + new_query["trans_id"] = trans_id; + if (callback || !this.optimization_no_nested_callbacks) { + new_query["query_id"] = get_unique_id(); + } else { + if (this.optimization_no_nested_callbacks) new_query["query_id"] = ""; + } + new_query["query"] = query; + if (params) { + new_query["params"] = params; + } else { + new_query["params"] = []; + } + new_query["callback"] = callback; + new_query["err_callback"] = err_callback; + if (!transaction_queue[trans_id]) transaction_queue[trans_id] = []; + return transaction_queue[trans_id].push(new_query); + }; + SQLitePluginTransaction.prototype.executeSql = function(sql, values, success, error) { + var errorcb, successcb, txself; + console.log("SQLitePluginTransaction.prototype.executeSql"); + errorcb = void 0; + successcb = void 0; + txself = void 0; + txself = this; + successcb = null; + if (success) { + console.log("success not null:" + sql); + successcb = function(execres) { + var res, saveres; + console.log("executeSql callback:" + JSON.stringify(execres)); + res = void 0; + saveres = void 0; + saveres = execres; + res = { + rows: { + item: function(i) { + return saveres[i]; + }, + length: saveres.length + }, + rowsAffected: saveres.rowsAffected, + insertId: saveres.insertId || null + }; + return success(txself, res); + }; + } else { + console.log("success NULL:" + sql); + } + errorcb = null; + if (error) { + errorcb = function(res) { + return error(txself, res); + }; + } + this.add_to_transaction(this.trans_id, sql, values, successcb, errorcb); + return console.log("executeSql - add_to_transaction" + sql); + }; + SQLitePluginTransaction.prototype.complete = function(success, error) { + var begin_opts, commit_opts, errorcb, executes, opts, successcb, txself; + console.log("SQLitePluginTransaction.prototype.complete"); + begin_opts = void 0; + commit_opts = void 0; + errorcb = void 0; + executes = void 0; + opts = void 0; + successcb = void 0; + txself = void 0; + if (this.__completed) throw new Error("Transaction already run"); + if (this.__submitted) throw new Error("Transaction already submitted"); + this.__submitted = true; + txself = this; + successcb = function() { + if (transaction_queue[txself.trans_id].length > 0 && !txself.optimization_no_nested_callbacks) { + txself.__submitted = false; + return txself.complete(success, error); + } else { + this.__completed = true; + if (success) return success(txself); + } }; - - SQLitePlugin.prototype.open = function(success, error) - { - console.log("SQLitePlugin.prototype.open"); - var opts; - if (!(this.dbPath in this.openDBs)) { - this.openDBs[this.dbPath] = true; - PhoneGap.exec(success, error, "SQLitePlugin", "open", [this.dbPath]); - } - }; - - SQLitePlugin.prototype.close = function(success, error) - { - console.log("SQLitePlugin.prototype.close"); - var opts; - if (this.dbPath in this.openDBs) { - delete this.openDBs[this.dbPath]; - PhoneGap.exec(null, null, "SQLitePlugin", "close", [this.dbPath]); - } - }; - return SQLitePlugin; - //})(); - root.SQLitePlugin = SQLitePlugin; - get_unique_id = function() - { - var id = new Date().getTime(); - var id2 = new Date().getTime(); - while(id === id2) - { - id2 = new Date().getTime(); - } - return id2+'000'; - } - transaction_queue = []; - transaction_callback_queue = new Object(); - //root.SQLitePluginTransaction = (function() { - console.log("root.SQLitePluginTransaction"); - function SQLitePluginTransaction(dbPath) - { - console.log("root.SQLitePluginTransaction.SQLitePluginTransaction"); - this.dbPath = dbPath; - this.executes = []; - this.trans_id = get_unique_id(); - this.__completed = false; - this.__submitted = false; - //this.optimization_no_nested_callbacks: default is true. - //if set to true large batches of queries within a transaction will be much faster but - //you will lose the ability to do multi level nesting of executeSQL callbacks - this.optimization_no_nested_callbacks = true; - console.log("root.SQLitePluginTransaction - this.trans_id:"+this.trans_id); - transaction_queue[this.trans_id] = []; - transaction_callback_queue[this.trans_id] = new Object(); - } - SQLitePluginTransaction.queryCompleteCallback = function(transId, queryId, result) - { - console.log("SQLitePluginTransaction.queryCompleteCallback"); - var query = null; - for (var x in transaction_queue[transId]) - { - if(transaction_queue[transId][x]['query_id'] == queryId) - { - query = transaction_queue[transId][x]; - if(transaction_queue[transId].length == 1) - transaction_queue[transId] = []; - else - transaction_queue[transId].splice(x, 1); - break; - } - } - -// if(query) -// console.log("SQLitePluginTransaction.completeCallback---query:"+query['query']); - if(query && query['callback']) - { - query['callback'](result) - } + errorcb = function(res) {}; + if (error) { + errorcb = function(res) { + return error(txself, res); + }; } - SQLitePluginTransaction.queryErrorCallback = function(transId, queryId, result) - { - var query = null; - for (var x in transaction_queue[transId]) - { - if(transaction_queue[transId][x]['query_id'] == queryId) - { - query = transaction_queue[transId][x]; - if(transaction_queue[transId].length == 1) - transaction_queue[transId] = []; - else - transaction_queue[transId].splice(x, 1); - break; - } - } - //if(query) - // console.log("SQLitePluginTransaction.queryErrorCallback---query:"+query['query']); - if(query && query['err_callback']) - query['err_callback'](result) - } - SQLitePluginTransaction.txCompleteCallback = function(transId) - { - if(typeof transId != 'undefined') - { - if(transId && transaction_callback_queue[transId] && transaction_callback_queue[transId]['success']) - { - transaction_callback_queue[transId]['success'](); - } - - - // delete transaction_queue[transId]; - // delete transaction_callback_queue[transId]; - } - else - console.log("SQLitePluginTransaction.txCompleteCallback---transId = NULL"); - } - SQLitePluginTransaction.txErrorCallback = function(transId, error) - { - if(typeof transId != 'undefined') - { - console.log("SQLitePluginTransaction.txErrorCallback---transId:"+transId); - if(transId && transaction_callback_queue[transId]['error']) - transaction_callback_queue[transId]['error'](error); - delete transaction_queue[transId]; - delete transaction_callback_queue[transId]; - } - else - console.log("SQLitePluginTransaction.txErrorCallback---transId = NULL"); - } - SQLitePluginTransaction.prototype.add_to_transaction = function(trans_id, query, params, callback, err_callback) - { - var new_query = new Object();; - new_query['trans_id'] = trans_id; - if(callback || !this.optimization_no_nested_callbacks) - new_query['query_id'] = get_unique_id(); - else if(this.optimization_no_nested_callbacks) - new_query['query_id'] = ""; - new_query['query'] = query; - if(params) - new_query['params'] = params; - else - new_query['params'] = []; - new_query['callback'] = callback; - new_query['err_callback'] = err_callback; - if(!transaction_queue[trans_id]) - transaction_queue[trans_id] = []; - transaction_queue[trans_id].push(new_query); - } - - SQLitePluginTransaction.prototype.executeSql = function(sql, values, success, error) { - console.log("SQLitePluginTransaction.prototype.executeSql"); - var errorcb, successcb, txself; - txself = this; - successcb = null; - if (success) - { - console.log("success not null:"+sql); - successcb = function(execres) - { - console.log("executeSql callback:"+JSON.stringify(execres)); - var res, saveres; - saveres = execres; - res = { - rows: { - item: function(i) { - return saveres[i]; - }, - length: saveres.length - }, - rowsAffected: saveres.rowsAffected, - insertId: saveres.insertId || null - }; - return success(txself, res); - }; - } - else - console.log("success NULL:"+sql); - - errorcb = null; - if (error) { - errorcb = function(res) { - return error(txself, res); - }; - } - this.add_to_transaction(this.trans_id, sql, values, successcb, errorcb); - console.log("executeSql - add_to_transaction"+sql); - }; - - SQLitePluginTransaction.prototype.complete = function(success, error) { - console.log("SQLitePluginTransaction.prototype.complete"); - var begin_opts, commit_opts, errorcb, executes, opts, successcb, txself; - if (this.__completed) throw new Error("Transaction already run"); - if (this.__submitted) throw new Error("Transaction already submitted"); - this.__submitted = true; - txself = this; - successcb = function() - { - if(transaction_queue[txself.trans_id].length > 0 && !txself.optimization_no_nested_callbacks) - { - txself.__submitted = false; - txself.complete(success, error); - } - else - { - this.__completed = true; - if(success) - return success(txself); - } - }; - errorcb = function(res) {}; - if (error) { - errorcb = function(res) { - return error(txself, res); - }; - } - transaction_callback_queue[this.trans_id]['success'] = successcb; - transaction_callback_queue[this.trans_id]['error'] = errorcb; - PhoneGap.exec(null, null, "SQLitePlugin", "executeSqlBatch", transaction_queue[this.trans_id]); - }; - return SQLitePluginTransaction; - //})(); - root.SQLitePluginTransaction = SQLitePluginTransaction; - - root.sqlitePlugin = { + transaction_callback_queue[this.trans_id]["success"] = successcb; + transaction_callback_queue[this.trans_id]["error"] = errorcb; + return PhoneGap.exec(null, null, "SQLitePlugin", "executeSqlBatch", transaction_queue[this.trans_id]); + }; + root.SQLitePluginTransaction = SQLitePluginTransaction; + return root.sqlitePlugin = { openDatabase: function(dbPath, version, displayName, estimatedSize, creationCallback, errorCallback) { - if (version == null) version = null; - if (displayName == null) displayName = null; - if (estimatedSize == null) estimatedSize = 0; - if (creationCallback == null) creationCallback = null; - if (errorCallback == null) errorCallback = null; return new SQLitePlugin(dbPath, creationCallback, errorCallback); } }; -}).call(this); +})();