adjusted spaces in idb update logs
[outofuni/jsutils.git] / idb.js
diff --git a/idb.js b/idb.js
index 20d5ea4..dcb7a84 100644 (file)
--- 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) {
@@ -59,7 +60,7 @@ var idb = {
                                }
                        }
                }
-               cl("idb: upgrade success! ("+ov+"->"+nv+")");
+               cl("idb: upgrade success! ("+ov+" -> "+nv+")");
        },
        onsuccess: function(event) {
                idb.handle=event.target.result;
@@ -87,15 +88,25 @@ 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;
        },
-       add_store_item: function(store,item,callback) {
-               var tx=idb.handle.transaction(store,'readwrite');
-               var store=tx.objectStore(store);
+       del_store: function(sname,callback) {
+               var tx=db.handle.transaction(sname,'readwrite');
+               var store=tx.objectStore(sname);
+               var req=store.clear();
+               req.onsuccess=function() {
+                       cl("db: store "+store.name+" deleted");
+                       callback();
+               };
+       },
+       add_store_item: function(sname,item,callback) {
+               var tx=idb.handle.transaction(sname,'readwrite');
+               var store=tx.objectStore(sname);
                var req=store.add(item);
                req.onsuccess=function(event) {
                        callback(event);
@@ -104,18 +115,9 @@ 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);
+       del_store_item: function(sname,num,callback) {
+               var tx=db.handle.transaction(sname,'readwrite');
+               var store=tx.objectStore(sname);
 
                var kr=IDBKeyRange.bound(num,num,false,false);
                var req=store.openCursor(kr);
@@ -139,9 +141,9 @@ var idb = {
 
                };
        },
-       update_store_item: function(store,num,nitem,callback) {
-               var tx=idb.handle.transaction(store,'readwrite');
-               var store=tx.objectStore(store);
+       update_store_item: function(sname,num,nitem,callback) {
+               var tx=idb.handle.transaction(sname,'readwrite');
+               var store=tx.objectStore(sname);
 
                var kr=IDBKeyRange.bound(num,num,false,false);
                var req=store.openCursor(kr);
@@ -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)");
@@ -186,7 +190,7 @@ var idb = {
 
                };
        },
-       get_store_items: function(store,callback,low,up) {
+       get_store_items: function(sname,callback,low,up) {
                // if low and up are undefined, all items are considered
                var kr;
                var last=false;
@@ -215,8 +219,8 @@ var idb = {
                        kr=IDBKeyRange.upperBound(up,true);
                }
 
-               var tx=idb.handle.transaction(store,'readonly');
-               var store=tx.objectStore(store);
+               var tx=idb.handle.transaction(sname,'readonly');
+               var store=tx.objectStore(sname);
 
                var obj={};
                obj.cnt_objs=0;
@@ -247,9 +251,9 @@ var idb = {
                        }
                };
        },
-       get_item_by_key: function(store,key,callback) {
-               var tx=idb.handle.transaction(store,'readonly')
-               var store=tx.objectStore(store);
+       get_item_by_key: function(sname,key,callback) {
+               var tx=idb.handle.transaction(sname,'readonly')
+               var store=tx.objectStore(sname);
                var req=store.get(key);
                req.onerror=function(event) {
                        cl("idb: get key error - "+event.target.errorCode);
@@ -260,9 +264,9 @@ var idb = {
                        }
                }
        },
-       get_item_by_index: function(store,index,val,callback) {
-               var tx=db.handle.transaction(store,'readonly')
-               var store=tx.objectStore(store);
+       get_item_by_index: function(sname,index,val,callback) {
+               var tx=db.handle.transaction(sname,'readonly')
+               var store=tx.objectStore(sname);
                var idx=store.index(index);
                var req=idx.get(val);
                req.onerror=function(event) {
@@ -274,9 +278,9 @@ var idb = {
                        }
                }
        },
-       del_item_by_key: function(store,key,callback) {
-               var tx=idb.handle.transaction(store,'readwrite');
-               var store=tx.objectStore(store);
+       del_item_by_key: function(sname,key,callback) {
+               var tx=idb.handle.transaction(sname,'readwrite');
+               var store=tx.objectStore(sname);
 
                var kr=IDBKeyRange.bound(key,key,false,false);
                var req=store.openCursor(kr);
@@ -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");