mirror of
https://github.com/seiichiro0185/sailotp.git
synced 2024-11-22 15:49:43 +00:00
Added possibility to edit existing entries.
This commit is contained in:
parent
12cf6106a5
commit
50770f0799
3 changed files with 37 additions and 6 deletions
|
@ -80,3 +80,14 @@ function removeOTP(title, secret) {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Change an existing OTP
|
||||||
|
function changeOTP(title, secret, oldtitle, oldsecret) {
|
||||||
|
var db = getDB();
|
||||||
|
|
||||||
|
db.transaction(
|
||||||
|
function(tx) {
|
||||||
|
tx.executeSql("UPDATE OTPStorage SET title=?, secret=? WHERE title=? and secret=?;", [title, secret, oldtitle, oldsecret]);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -39,6 +39,10 @@ Dialog {
|
||||||
// We get the Object of the parent page on call to refresh it after adding a new Entry
|
// We get the Object of the parent page on call to refresh it after adding a new Entry
|
||||||
property QtObject parentPage: null
|
property QtObject parentPage: null
|
||||||
|
|
||||||
|
// If we want to edit a Key we get title and key from the calling page
|
||||||
|
property string paramLabel: ""
|
||||||
|
property string paramKey: ""
|
||||||
|
|
||||||
SilicaFlickable {
|
SilicaFlickable {
|
||||||
id: addOtpList
|
id: addOtpList
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -48,20 +52,22 @@ Dialog {
|
||||||
Column {
|
Column {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
DialogHeader {
|
DialogHeader {
|
||||||
acceptText: "Add"
|
acceptText: paramLabel != "" ? "Save" : "Add"
|
||||||
}
|
}
|
||||||
TextField {
|
TextField {
|
||||||
id: otpLabel
|
id: otpLabel
|
||||||
width: parent.width
|
width: parent.width
|
||||||
label: "Title"
|
label: "Title"
|
||||||
placeholderText: "Title for the OTP"
|
placeholderText: "Title for the OTP"
|
||||||
|
text: paramLabel != "" ? paramLabel : ""
|
||||||
focus: true
|
focus: true
|
||||||
horizontalAlignment: TextInput.AlignLeft
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
}
|
}
|
||||||
TextField {
|
TextField {
|
||||||
id: otpSecret
|
id: otpSecret
|
||||||
width: parent.width
|
width: parent.width
|
||||||
label: "Secret"
|
label: "Secret (at least 16 characters)"
|
||||||
|
text: paramKey != "" ? paramKey : ""
|
||||||
placeholderText: "Secret OTP Key"
|
placeholderText: "Secret OTP Key"
|
||||||
focus: true
|
focus: true
|
||||||
horizontalAlignment: TextInput.AlignLeft
|
horizontalAlignment: TextInput.AlignLeft
|
||||||
|
@ -69,12 +75,20 @@ Dialog {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if we can Save
|
||||||
|
canAccept: otpLabel.text.length > 0 && otpSecret.text.length >= 16 ? true : false
|
||||||
|
|
||||||
// Save if page is Left with Add
|
// Save if page is Left with Add
|
||||||
onDone: {
|
onDone: {
|
||||||
// Some basic Input Check, we need both Values to work
|
if (result == DialogResult.Accepted) {
|
||||||
if (otpLabel.text != "" && otpSecret.text != "") {
|
|
||||||
// Save the entry to the Config DB
|
// Save the entry to the Config DB
|
||||||
|
if (paramLabel != "" && paramKey != "") {
|
||||||
|
// Parameters where filled -> Change existing entry
|
||||||
|
DB.changeOTP(otpLabel.text, otpSecret.text, paramLabel, paramKey)
|
||||||
|
} else {
|
||||||
|
// There were no parameters -> Add new entry
|
||||||
DB.addOTP(otpLabel.text, otpSecret.text);
|
DB.addOTP(otpLabel.text, otpSecret.text);
|
||||||
|
}
|
||||||
// Refresh the main Page
|
// Refresh the main Page
|
||||||
parentPage.refreshOTPList();
|
parentPage.refreshOTPList();
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,6 +158,12 @@ Page {
|
||||||
Component {
|
Component {
|
||||||
id: otpContextMenu
|
id: otpContextMenu
|
||||||
ContextMenu {
|
ContextMenu {
|
||||||
|
MenuItem {
|
||||||
|
text: "Edit"
|
||||||
|
onClicked: {
|
||||||
|
pageStack.push(Qt.resolvedUrl("AddOTP.qml"), {parentPage: mainPage, paramLabel: title, paramKey: secret})
|
||||||
|
}
|
||||||
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: "Delete"
|
text: "Delete"
|
||||||
onClicked: remove()
|
onClicked: remove()
|
||||||
|
|
Loading…
Reference in a new issue