X-Git-Url: https://hackdaworld.org/gitweb/?p=outofuni%2Fjsutils.git;a=blobdiff_plain;f=idb.js;h=f574688ea241eb78465222c14d67976971f5e04d;hp=20d5ea4c424dc19a5426af5e5f75e703af47975b;hb=a74eb693d6d0c721af6c418263c75eb7bc1628bf;hpb=6e422299e58210a31d3b080f935a8213f9eef68c diff --git a/idb.js b/idb.js index 20d5ea4..f574688 100644 --- a/idb.js +++ b/idb.js @@ -25,7 +25,8 @@ var idb = { var store=idb.stores[sn] var key={}; key[store['keytype']]=store['keyname']; - cl("idb: creating store '"+sn+"'"); + cl("idb: creating store '"+sn+"' ("+ + store.keytype+": "+store.keyname+")"); store.os=idb.handle.createObjectStore(sn,key); // indices if(store.idx!==undefined) { @@ -87,12 +88,22 @@ var idb = { idb.successcb=successcb; if(upgradecb!==undefined) idb.onupgradeneeded=upgradecb; + cl("idb: init database '"+idb.name+"'"); var req=indexedDB.open(idb.name,idb.version); req.onsuccess=idb.onsuccess; req.onupgradeneeded=idb.onupgradeneeded; req.onerror=idb.onerror; req.onblocked=idb.onblocked; }, + del_store: function(store,callback) { + var tx=db.handle.transaction(store,'readwrite'); + var store=tx.objectStore(store); + var req=store.clear(); + req.onsuccess=function() { + cl("db: store "+store.name+" deleted"); + callback(); + }; + }, add_store_item: function(store,item,callback) { var tx=idb.handle.transaction(store,'readwrite'); var store=tx.objectStore(store); @@ -104,15 +115,6 @@ var idb = { cl("idb: add item error, "+error); }; }, - del_store: function(store,callback) { - var tx=db.handle.transaction(store,'readwrite'); - var store=tx.objectStore(store); - var req=store.clear(); - req.onsuccess=function() { - cl("db: store "+store.name+" deleted"); - callback(); - }; - }, del_store_item: function(store,num,callback) { var tx=db.handle.transaction(store,'readwrite'); var store=tx.objectStore(store); @@ -165,7 +167,8 @@ var idb = { var res=cursor.update(nitem); res.onsuccess=function(event) { cl("idb: updated cursor"); - callback(event); + if(callback!==undefined) + callback(event); }; res.onerror=function(error) { cl("idb: cursor update error"); @@ -177,7 +180,8 @@ var idb = { var addreq=store.add(nitem,num); addreq.onsuccess=function(event) { cl("idb: added (update mode) key "+num); - callback(event); + if(callback!==undefined) + callback(event); } addreq.onerror=function(error) { cl("idb: error add (update mode)"); @@ -299,10 +303,11 @@ var idb = { }; }, - del: function() { + del: function(callback) { var req=indexedDB.deleteDatabase(idb.name); req.onsuccess=function() { cl("idb: deleted database '"+idb.name+"'"); + callback(); }; req.onblocked=function() { cl("idb: database delete blocked");