feat: dashboard widget (#18), differential backups (#19), JPA import (#20)
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
#18 — Dashboard Quickicon Widget: - plg_quickicon_mokobackup: shows backup status on admin dashboard - Displays: last backup time, total count, storage used - Warning states: no backups, recent failures, stale (>7 days) - Links to backup records view #19 — Differential Backups: - New backup_type: "differential" — only backs up changed/new files - DifferentialScanner: builds manifest (path+size+mtime) on full backups - Compares current filesystem against base manifest on differential runs - Manifest stored in backup record (LONGTEXT column) - Falls back to full backup if no base manifest exists - Database is always fully dumped (no incremental DB) #20 — JPA Format Import: - JpaUnarchiver: parses Akeeba JPA binary format - Handles: archive header, file entities, gzip decompression, permissions - RestoreEngine auto-detects JPA vs ZIP by reading signature bytes - Enables restoring from existing Akeeba .jpa backup files Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -74,6 +74,17 @@ class Pkg_MokoBackupInstallerScript
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
|
||||
// Enable the quickicon plugin automatically
|
||||
$query = $db->getQuery(true)
|
||||
->update($db->quoteName('#__extensions'))
|
||||
->set($db->quoteName('enabled') . ' = 1')
|
||||
->where($db->quoteName('type') . ' = ' . $db->quote('plugin'))
|
||||
->where($db->quoteName('folder') . ' = ' . $db->quote('quickicon'))
|
||||
->where($db->quoteName('element') . ' = ' . $db->quote('mokobackup'));
|
||||
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
|
||||
// Enable the task plugin automatically
|
||||
$query = $db->getQuery(true)
|
||||
->update($db->quoteName('#__extensions'))
|
||||
|
||||
Reference in New Issue
Block a user