add some sql to the demo
diff --git a/weinre.web/demo/weinre-demo.js b/weinre.web/demo/weinre-demo.js
index e0b95e3..5789828 100644
--- a/weinre.web/demo/weinre-demo.js
+++ b/weinre.web/demo/weinre-demo.js
@@ -25,6 +25,9 @@
if (!outputElement) outputElement = document.getElementById("output")
buttonStartStuff.addEventListener("click", function() {
+ lastClickTime = new Date().toString()
+ db.transaction(addClick)
+
if (!started) {
buttonStartStuff.value = "stop stuff"
startStuff()
@@ -97,6 +100,45 @@
}
//------------------------------------------------------------------------------
+function sqlSuccess(tx, resultSet) {
+ console.log("SQL Success!")
+}
+
+//------------------------------------------------------------------------------
+function sqlError(tx, error) {
+ console.log("SQL Error " + error.code + ": " + error.message)
+}
+
+//------------------------------------------------------------------------------
+var lastClickTime
+
+function addClick(tx) {
+ var sql = "insert into clicks (date) values (?)"
+ tx.executeSql(sql, [lastClickTime], null, sqlError)
+}
+
+//------------------------------------------------------------------------------
+function clearDatabase(tx, resultSet) {
+ var sql = "delete from clicks"
+ tx.executeSql(sql, null, null, sqlError);
+}
+
+//------------------------------------------------------------------------------
+function createDatabase(tx) {
+ var schema = "clicks (id integer primary key, date text)"
+ var sql = "create table if not exists " + schema
+
+ tx.executeSql(sql, null, clearDatabase, sqlError);
+}
+
+//------------------------------------------------------------------------------
+var db
+if (window.openDatabase) {
+ db = window.openDatabase("clicks", "1.0", "clicks", 8192)
+ db.transaction(createDatabase)
+}
+
+//------------------------------------------------------------------------------
function output(string) {
var element = document.createElement("div")
element.innerHTML = string
diff --git a/weinre.web/modules/weinre/common/Native.scoop b/weinre.web/modules/weinre/common/Native.scoop
index 705faa7..af28f0b 100644
--- a/weinre.web/modules/weinre/common/Native.scoop
+++ b/weinre.web/modules/weinre/common/Native.scoop
@@ -25,6 +25,7 @@
Native.original.SessionStorage_setItem = window.sessionStorage ? window.sessionStorage.setItem : null
Native.original.SessionStorage_removeItem = window.sessionStorage ? window.sessionStorage.removeItem : null
Native.original.SessionStorage_clear = window.sessionStorage ? window.sessionStorage.clear : null
+ Native.original.openDatabase = window.openDatabase
Native.clearInterval = function() { return Native.original.clearInterval.apply( window, [].slice.call(arguments))}
Native.clearTimeout = function() { return Native.original.clearTimeout.apply( window, [].slice.call(arguments))}
@@ -38,3 +39,5 @@
Native.SessionStorage_setItem = function() { return Native.original.SessionStorage_setItem.apply( window.sessionStorage, [].slice.call(arguments))}
Native.SessionStorage_removeItem = function() { return Native.original.SessionStorage_removeItem.apply( window.sessionStorage, [].slice.call(arguments))}
Native.SessionStorage_clear = function() { return Native.original.SessionStorage_clear.apply( window.sessionStorage, [].slice.call(arguments))}
+ Native.openDatabase = function() { return Native.original.openDatabase.apply( window, [].slice.call(arguments))}
+
diff --git a/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop b/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop
index 7b71765..be7c66f 100644
--- a/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop
+++ b/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop
@@ -7,9 +7,13 @@
*/
requireClass ../common/Weinre
+requireClass ../common/Native
//-----------------------------------------------------------------------------
class WiDatabaseImpl
+ if (!window.openDatabase) return
+
+ window.openDatabase = nativeOpenDatabase
//-----------------------------------------------------------------------------
method getDatabaseTableNames(/*int*/ databaseId, callback)
@@ -21,3 +25,12 @@
method executeSQL(/*int*/ databaseId, /*string*/ query, callback)
// callback: function(/*boolean*/ success, /*int*/ transactionId)
Weinre.notImplemented(arguments.callee.signature)
+
+//-----------------------------------------------------------------------------
+function nativeOpenDatabase(name, version, displayName, estimatedSize, creationCallback)
+
+ Weinre.wi.DatabaseNotify.addDatabase(name)
+
+ return Native.openDatabase(name, version, displayName, estimatedSize, creationCallback)
+
+
\ No newline at end of file