Merge pull request #2405 from keepassxreboot/fix/show_notification_for_non_connected_db

Show error notification when database is not connected
This commit is contained in:
Sami Vänttinen 2024-12-11 17:07:12 +02:00 committed by GitHub
commit aba4ffc5e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 4 deletions

View file

@ -237,7 +237,11 @@
},
"errorNotConnected": {
"message": "Not connected to KeePassXC.",
"description": "Error notification shown when not connected to KeePassXC"
"description": "Error notification shown when not connected to KeePassXC."
},
"errorCurrentDatabaseNotConnected": {
"message": "Current database is not connected.",
"description": "Error notification shown when current database is not connected during action."
},
"passwordGeneratorErrorTooLong": {
"message": "Error: The generated password is longer than the allowed length!",

View file

@ -28,7 +28,7 @@ kpxcFill.fillInFromActiveElement = async function(passOnly = false) {
await kpxc.receiveCredentialsIfNecessary();
if (kpxc.credentials.length === 0) {
logDebug(`Error: Credential list is empty for: ${document.location.origin}`);
kpxcUI.createNotification('error', `${tr('credentialsNoLoginsFound')} ${document.location.origin}`);
showErrorNotification(`${tr('credentialsNoLoginsFound')} ${document.location.origin}`);
return;
}
@ -119,7 +119,7 @@ kpxcFill.fillFromTOTP = async function(target) {
const credentialList = await kpxc.updateTOTPList();
if (!credentialList || credentialList?.length === 0) {
kpxcUI.createNotification('warning', tr('credentialsNoTOTPFound'));
showErrorNotification(tr('credentialsNoTOTPFound'), 'warning');
return;
}
@ -197,7 +197,7 @@ kpxcFill.fillFromUsernameIcon = async function(combination) {
await kpxc.receiveCredentialsIfNecessary();
if (kpxc.credentials.length === 0) {
logDebug(`Error: Credential list is empty for: ${document.location.origin}`);
kpxcUI.createNotification('error', `${tr('credentialsNoLoginsFound')} ${document.location.origin}`);
showErrorNotification(`${tr('credentialsNoLoginsFound')} ${document.location.origin}`);
return;
} else if (kpxc.credentials.length > 1 && kpxc.settings.autoCompleteUsernames) {
kpxcUserAutocomplete.showList(combination.username || combination.password);
@ -352,3 +352,13 @@ const passwordFillIsAllowed = function(elem) {
return elem?.getLowerCaseAttribute('type') === 'password';
};
// Show a specific error notification if current database is not connected
const showErrorNotification = async function(errorMessage, notificationType = 'error') {
const connectedDatabase = await sendMessage('get_connected_database');
if (!connectedDatabase?.identifier) {
kpxcUI.createNotification('error', tr('errorCurrentDatabaseNotConnected'));
} else {
kpxcUI.createNotification(notificationType, errorMessage);
}
};