From 93f0fa0a47f7d2fbb6bf6aef725d937cb3491de9 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Thu, 25 Jun 2026 12:17:45 -0500 Subject: [PATCH] fix: SSH key indicator detection and missing delete language key - SshKeyField: detect base64-encoded keys from DB so the "Key loaded" badge displays correctly after initial upload - Add COM_MOKOJOOMBACKUP_BACKUPS_N_ITEMS_DELETED language keys for Joomla's AdminController delete feedback message --- .../language/en-GB/com_mokosuitebackup.ini | 2 ++ .../packages/com_mokosuitebackup/src/Field/SshKeyField.php | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/source/packages/com_mokosuitebackup/language/en-GB/com_mokosuitebackup.ini b/source/packages/com_mokosuitebackup/language/en-GB/com_mokosuitebackup.ini index 8589854..8547103 100644 --- a/source/packages/com_mokosuitebackup/language/en-GB/com_mokosuitebackup.ini +++ b/source/packages/com_mokosuitebackup/language/en-GB/com_mokosuitebackup.ini @@ -42,6 +42,8 @@ COM_MOKOJOOMBACKUP_DASHBOARD_STORAGE_BREAKDOWN="Storage by Profile" COM_MOKOJOOMBACKUP_DASHBOARD_BACKUP_TREND="Backup Trend (30 days)" ; Backups view +COM_MOKOJOOMBACKUP_BACKUPS_N_ITEMS_DELETED="%d backup records deleted." +COM_MOKOJOOMBACKUP_BACKUPS_N_ITEMS_DELETED_1="%d backup record deleted." COM_MOKOJOOMBACKUP_BACKUPS_TITLE="Backup Records" COM_MOKOJOOMBACKUP_BACKUPS_TABLE_CAPTION="Table of backup records" COM_MOKOJOOMBACKUP_NO_BACKUPS="No backups found. Click 'Backup Now' to create your first backup." diff --git a/source/packages/com_mokosuitebackup/src/Field/SshKeyField.php b/source/packages/com_mokosuitebackup/src/Field/SshKeyField.php index 176ce22..6338928 100644 --- a/source/packages/com_mokosuitebackup/src/Field/SshKeyField.php +++ b/source/packages/com_mokosuitebackup/src/Field/SshKeyField.php @@ -29,7 +29,10 @@ class SshKeyField extends FormField $id = $this->id; $name = $this->name; - $hasKey = !empty($value) && str_contains($value, 'PRIVATE KEY'); + $decoded = !empty($value) ? (base64_decode($value, true) ?: '') : ''; + $hasKey = !empty($value) && ($value === '__KEEP_EXISTING__' + || str_contains($value, 'PRIVATE KEY') + || str_contains($decoded, 'PRIVATE KEY')); $html = '
';