Line 7:
Line 7:
// suppress console.log, switch to true for debug
// suppress console.log, switch to true for debug
var Debug_switch = true;
var Debug_switch = true;
−
+
var iOS = !!navigator.platform && /Macintosh|MacIntel|MacPPC|Mac68K|Mac|iPad|iPhone|iPod/.test(navigator.platform);
+
// deterministic hash generator for creating user id#s from usernames, should be replaced by something more functional (guaranteed to be transitively different)
// deterministic hash generator for creating user id#s from usernames, should be replaced by something more functional (guaranteed to be transitively different)
hashCode = function(s) {
hashCode = function(s) {
Line 84:
Line 85:
// indexeddb internal mechanism for version tracking of schema
// indexeddb internal mechanism for version tracking of schema
−
pddb.onupgradeneeded = function(evt) {
+
pddb.onupgradeneeded = function() {
console.log('upgrading database');
console.log('upgrading database');
var db = pddb.result;
var db = pddb.result;
var store = db.createObjectStore(pddbname, {keyPath: "id"});
var store = db.createObjectStore(pddbname, {keyPath: "id"});
−
+
var index;
// shouldn't the index be the wiki.personaldata.io username?
// shouldn't the index be the wiki.personaldata.io username?
−
+
if ( iOS ) {
−
var index = db.store.createIndex("NameIndex", ["id"]);
+
index = db.store.createIndex("NameIndex", ["id"]);
+
} else {
+
index = store.createIndex("NameIndex", ["id"]);
+
}
+
};
};
// Database successfully opened function.
// Database successfully opened function.
−
pddb.onsuccess = function(xy) {
+
pddb.onsuccess = function() {
debuglog(pddb.result);
debuglog(pddb.result);
−
debuglog(xy);
var db = pddb.result;
var db = pddb.result;
−
var tx = db.transaction([pddbname], "readwrite");
+
var tx;
+
+
if ( iOS ) {
+
tx = db.transaction([pddbname], "readwrite");
+
} else {
+
tx = db.transaction(pddbname, "readwrite");
+
}
+
var store = tx.objectStore(pddbname);
var store = tx.objectStore(pddbname);
var index = store.index("NameIndex");
var index = store.index("NameIndex");
Line 119:
Line 130:
// Mode 'checkin':
// Mode 'checkin':
// record is retrieved from database, parameter record is pushed if not found
// record is retrieved from database, parameter record is pushed if not found
−
if ( getRecord.result !== undefined ) {
+
if ( getRecord.result != undefined ) {
debuglog("getting from store");
debuglog("getting from store");
inp_obj = getRecord.result;
inp_obj = getRecord.result;
Line 153:
Line 164:
if ( sqitch === "get record" ) {
if ( sqitch === "get record" ) {
inp_obj = undefined;
inp_obj = undefined;
+
} else if ( sqitch === "remove from record" ) {
+
inp_obj = record;
} else {
} else {
+
// any other method ...... would quit as record was not even foun
return undefined;
return undefined;
}
}
−
// Remove from record will quit as record was not even found
−
}
}
}
}