mirror of
https://github.com/seiichiro0185/sailotp.git
synced 2024-11-22 07:39:42 +00:00
Changed DB Schema
* DB Schema now supports setting favourites * Added Colums for future addition of HOTP Tokens * Created DB-Update Logic
This commit is contained in:
parent
26bafc2f18
commit
11072b2f16
2 changed files with 26 additions and 14 deletions
|
@ -29,20 +29,34 @@
|
||||||
|
|
||||||
.import QtQuick.LocalStorage 2.0 as LS
|
.import QtQuick.LocalStorage 2.0 as LS
|
||||||
|
|
||||||
// Get DB Connection
|
// Get DB Connection, Initialize or Upgrade DB
|
||||||
function getDB() {
|
function getDB() {
|
||||||
return LS.LocalStorage.openDatabaseSync("harbour-sailotp", "1.0", "SailOTP Config Storage", 1000000);
|
try {
|
||||||
}
|
var db = LS.LocalStorage.openDatabaseSync("harbour-sailotp", "", "SailOTP Config Storage", 1000000);
|
||||||
|
|
||||||
// Initialize Table if not exists
|
if (db.version == "") {
|
||||||
function initialize() {
|
// Initialize an empty DB, Create the Table
|
||||||
var db = getDB();
|
db.changeVersion("", "2",
|
||||||
|
function(tx) {
|
||||||
db.transaction(
|
tx.executeSql("CREATE TABLE IF NOT EXISTS OTPStorage(title TEXT, secret TEXT, type TEXT, counter INTEGER, fav INTEGER);");
|
||||||
function(tx) {
|
}
|
||||||
tx.executeSql("CREATE TABLE IF NOT EXISTS OTPStorage(title TEXT, secret TEXT);");
|
);
|
||||||
|
} else if (db.version == "1.0") {
|
||||||
|
// Upgrade DB Schema to Version 2
|
||||||
|
db.changeVersion("1.0", "2",
|
||||||
|
function(tx) {
|
||||||
|
tx.executeSql("ALTER TABLE OTPStorage ADD COLUMN type TEXT DEFAULT 'TOTP';");
|
||||||
|
tx.executeSql("ALTER TABLE OTPStorage ADD COLUMN counter INTEGER DEFAULT 0;");
|
||||||
|
tx.executeSql("ALTER TABLE OTPStorage ADD COLUMN fav INTEGER DEFAULT 0;");
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
)
|
} catch (e) {
|
||||||
|
// DB Failed to open
|
||||||
|
console.log("Could not open DB: " + e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return db;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all OTPs into the list model
|
// Get all OTPs into the list model
|
||||||
|
@ -65,7 +79,7 @@ function addOTP(title, secret) {
|
||||||
|
|
||||||
db.transaction(
|
db.transaction(
|
||||||
function(tx) {
|
function(tx) {
|
||||||
tx.executeSql("INSERT INTO OTPStorage VALUES(?, ?);", [title, secret]);
|
tx.executeSql("INSERT INTO OTPStorage VALUES(?, ?, ?, ?, ?);", [title, secret, 'TOTP', 0, 0]);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,8 +174,6 @@ Page {
|
||||||
VerticalScrollDecorator{}
|
VerticalScrollDecorator{}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
// Initialize DB (create tables etc..)
|
|
||||||
DB.initialize();
|
|
||||||
// Load list of OTP-Entries
|
// Load list of OTP-Entries
|
||||||
refreshOTPList();
|
refreshOTPList();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue