135 lines
3.9 KiB
JavaScript
135 lines
3.9 KiB
JavaScript
var db = undefined;
|
|
function settings_db_open() {
|
|
if (db == undefined)
|
|
db = LocalStorage.openDatabaseSync("harbour-anchor", "1.0", "StorageDatabase", 100000);
|
|
return db;
|
|
}
|
|
/// GAME SETTINGS
|
|
function getValue(setting,def) {
|
|
var db = settings_db_open();
|
|
var res=def;
|
|
try {
|
|
db.transaction(function(tx) {
|
|
var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
|
|
if (rs.rows.length > 0) {
|
|
res = rs.rows.item(0).value;
|
|
} else {
|
|
res = def;
|
|
}
|
|
})
|
|
} catch (err) {
|
|
console.log("*** getValue ERROR ")
|
|
res = def
|
|
};
|
|
console.log("*** getValue: "+res+" setting: "+setting)
|
|
return res
|
|
}
|
|
|
|
// insert anchor in db
|
|
function setAnchor(name, description, icon, latitude, longitude) {
|
|
var db = settings_db_open();
|
|
var res = "";
|
|
db.transaction(function(tx) {
|
|
tx.executeSql('CREATE TABLE IF NOT EXISTS anchors(name TEXT UNIQUE, description TEXT, icon TEXT, latitude REAL, longitude REAL)');
|
|
var rs = tx.executeSql('INSERT OR REPLACE INTO anchors VALUES (?,?,?,?,?);', [name, description, icon, latitude, longitude]);
|
|
if (rs.rowsAffected > 0) {
|
|
res = "OK";
|
|
|
|
} else {
|
|
res = "Error";
|
|
}
|
|
}
|
|
);
|
|
return res;
|
|
}
|
|
|
|
function setValue(setting, value) {
|
|
var db = settings_db_open();
|
|
var res = "";
|
|
db.transaction(function(tx) {
|
|
tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)');
|
|
var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
|
|
if (rs.rowsAffected > 0) {
|
|
res = "OK";
|
|
|
|
} else {
|
|
res = "Error";
|
|
}
|
|
}
|
|
);
|
|
console.log("*** setValue: "+res+" setting: "+setting+" = "+value)
|
|
return res;
|
|
}
|
|
|
|
/// GET ANCHORS
|
|
function getAnchors(model) {
|
|
model.clear()
|
|
var db = settings_db_open();
|
|
var res="OK";
|
|
try {
|
|
db.transaction(function(tx) {
|
|
var rs = tx.executeSql('SELECT * FROM anchors;');
|
|
for (var i = 0; i < rs.rows.length; i++)
|
|
{
|
|
model.append({"name" : rs.rows.item(i).name,"description" : rs.rows.item(i).description,"icon" : rs.rows.item(i).icon,"latitude" : rs.rows.item(i).latitude,"longitude" : rs.rows.item(i).longitude})
|
|
}
|
|
})
|
|
} catch (err) {
|
|
res = "ERROR"
|
|
};
|
|
return res
|
|
}
|
|
|
|
function delAnchor(name) {
|
|
var db = settings_db_open();
|
|
var res = "";
|
|
db.transaction(function(tx) {
|
|
//tx.executeSql('CREATE TABLE IF NOT EXISTS settings(savegame TEXT UNIQUE, value TEXT)'); //tx.executeSql('DELETE FROM channels WHERE source=?', [source])
|
|
var rs = tx.executeSql('DELETE FROM anchors where name=?', [name]);
|
|
if (rs.rowsAffected > 0) {
|
|
res = "OK";
|
|
|
|
} else {
|
|
res = "Error";
|
|
}
|
|
}
|
|
);
|
|
return res;
|
|
}
|
|
|
|
/// LOAD/SAVE GAME
|
|
function getSave(setting,def) {
|
|
var db = settings_db_open();
|
|
var res=def;
|
|
try {
|
|
db.transaction(function(tx) {
|
|
var rs = tx.executeSql('SELECT value FROM savegame WHERE setting=?;', [setting]);
|
|
if (rs.rows.length > 0) {
|
|
res = rs.rows.item(0).value;
|
|
} else {
|
|
res = def;
|
|
}
|
|
})
|
|
} catch (err) {
|
|
res = def
|
|
};
|
|
return res
|
|
}
|
|
|
|
function setSave(setting, value) {
|
|
var db = settings_db_open();
|
|
var res = "";
|
|
db.transaction(function(tx) {
|
|
tx.executeSql('CREATE TABLE IF NOT EXISTS settings(savegame TEXT UNIQUE, value TEXT)');
|
|
var rs = tx.executeSql('INSERT OR REPLACE INTO savegame VALUES (?,?);', [setting,value]);
|
|
if (rs.rowsAffected > 0) {
|
|
res = "OK";
|
|
|
|
} else {
|
|
res = "Error";
|
|
}
|
|
}
|
|
);
|
|
return res;
|
|
}
|