8cfa46d985
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Generic: Project CI / Lint & Validate (pull_request) Successful in 12s
Universal: PR Check / Validate PR (pull_request) Failing after 13s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 49s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Replace the popup-modal pre-update approach with a dedicated full-page backup screen, modelled on Akeeba Backup-on-Update, and fix the white screen caused by running a backup synchronously inside the update request. - New view=runbackup (View/Runbackup + tmpl/runbackup): full-screen progress page that auto-starts the stepped backup (ajax.init -> loop ajax.step), then redirects to a validated returnurl on completion or shows a completion/retry panel. Auto-resolved by MVCFactory. - System plugin: on com_joomlaupdate task=update.install (when backup_before_update is on), redirect to the full-screen backup screen with returnurl back to update.install&is_backed_up=1; on return, arm the throttle so onExtensionBeforeUpdate does not run a duplicate backup. No synchronous backup in the update request. - Dashboard 'Backup Now' navigates to the full-screen screen instead of the inline modal; the inline modal + stepped JS are removed. - Retire the popup modal: delete media/js/update-backup.js, remove the plugin <media> element and the preupdate_auto_intercept param. - Dashboard: warn when Global Config live_site is empty (CLI/scheduled backup naming + URL generation depend on it). Refs #196 Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
281 lines
7.7 KiB
XML
281 lines
7.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
* @package MokoSuiteBackup
|
|
* @subpackage com_mokosuitebackup
|
|
* @author Moko Consulting <hello@mokoconsulting.tech>
|
|
* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved.
|
|
* @license GNU General Public License version 3 or later; see LICENSE
|
|
-->
|
|
<config>
|
|
<fieldset name="general" label="COM_MOKOJOOMBACKUP_CONFIG_GENERAL">
|
|
<field
|
|
name="default_backup_dir"
|
|
type="FolderPicker"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR_DESC"
|
|
default="[DEFAULT_DIR]"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
<field
|
|
name="default_profile"
|
|
type="sql"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE_DESC"
|
|
query="SELECT id AS value, CONCAT(title, ' (#', id, ')') AS text FROM #__mokosuitebackup_profiles WHERE published = 1 ORDER BY id ASC"
|
|
default="1"
|
|
>
|
|
<option value="1">Default Backup Profile (#1)</option>
|
|
</field>
|
|
<field
|
|
name="show_update_notice"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE_DESC"
|
|
default="1"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
</fieldset>
|
|
|
|
<fieldset name="defaults" label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULTS">
|
|
<field
|
|
name="default_archive_format"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_FORMAT"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_FORMAT_DESC"
|
|
default="zip"
|
|
>
|
|
<option value="zip">ZIP</option>
|
|
<option value="tar.gz">tar.gz</option>
|
|
<option value="7z">7z</option>
|
|
</field>
|
|
<field
|
|
name="default_mokorestore"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_MOKORESTORE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_MOKORESTORE_DESC"
|
|
default="0"
|
|
>
|
|
<option value="0">COM_MOKOJOOMBACKUP_MOKORESTORE_NONE</option>
|
|
<option value="1">COM_MOKOJOOMBACKUP_MOKORESTORE_WRAPPED</option>
|
|
<option value="standalone">COM_MOKOJOOMBACKUP_MOKORESTORE_STANDALONE</option>
|
|
</field>
|
|
<field
|
|
name="default_sanitize_passwords"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_SANITIZE_PW"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_SANITIZE_PW_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="default_sanitize_emails"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_SANITIZE_EMAIL"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_SANITIZE_EMAIL_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="default_sanitize_sessions"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_SANITIZE_SESS"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_SANITIZE_SESS_DESC"
|
|
default="1"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="log_retention_days"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_LOG_RETENTION"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_LOG_RETENTION_DESC"
|
|
default="90"
|
|
min="0"
|
|
max="365"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="webcron" label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON">
|
|
<field
|
|
name="webcron_secret"
|
|
type="WebcronSecret"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_SECRET"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_SECRET_DESC"
|
|
default=""
|
|
filter="string"
|
|
maxlength="64"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
<field
|
|
name="webcron_enabled"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_ENABLED"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_ENABLED_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="webcron_ip_whitelist"
|
|
type="IpWhitelist"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_IP"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_IP_DESC"
|
|
default=""
|
|
filter="string"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="preaction" label="COM_MOKOJOOMBACKUP_CONFIG_PREACTION">
|
|
<field
|
|
name="backup_before_update"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UPDATE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UPDATE_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="backup_before_uninstall"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UNINSTALL"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UNINSTALL_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
</fieldset>
|
|
|
|
<fieldset name="cleanup" label="COM_MOKOJOOMBACKUP_CONFIG_CLEANUP">
|
|
<field
|
|
name="max_age_days"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE_DESC"
|
|
default="30"
|
|
min="1"
|
|
max="365"
|
|
/>
|
|
<field
|
|
name="max_backups"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS_DESC"
|
|
default="10"
|
|
min="1"
|
|
max="100"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="snapshot_cleanup" label="COM_MOKOJOOMBACKUP_CONFIG_SNAPSHOT_RETENTION">
|
|
<field
|
|
name="snapshot_retention_count"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_SNAPSHOT_MAX_COUNT"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_SNAPSHOT_MAX_COUNT_DESC"
|
|
default="20"
|
|
min="0"
|
|
max="100"
|
|
/>
|
|
<field
|
|
name="snapshot_retention_days"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_SNAPSHOT_MAX_AGE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_SNAPSHOT_MAX_AGE_DESC"
|
|
default="30"
|
|
min="0"
|
|
max="365"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="notifications" label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFICATIONS">
|
|
<field
|
|
name="notify_email"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL_DESC"
|
|
default=""
|
|
filter="string"
|
|
/>
|
|
<field
|
|
name="notify_on_success"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="notify_on_failure"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE_DESC"
|
|
default="1"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
</fieldset>
|
|
|
|
<fieldset name="ntfy" label="COM_MOKOJOOMBACKUP_CONFIG_NTFY">
|
|
<field
|
|
name="ntfy_server"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_NTFY_SERVER"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_NTFY_SERVER_DESC"
|
|
default="https://ntfy.mokoconsulting.tech"
|
|
filter="url"
|
|
/>
|
|
<field
|
|
name="ntfy_topic"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_NTFY_TOPIC"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_NTFY_TOPIC_DESC"
|
|
default=""
|
|
filter="string"
|
|
/>
|
|
<field
|
|
name="ntfy_token"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_CONFIG_NTFY_TOKEN"
|
|
description="COM_MOKOJOOMBACKUP_CONFIG_NTFY_TOKEN_DESC"
|
|
default=""
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="permissions" label="JCONFIG_PERMISSIONS_LABEL"
|
|
description="JCONFIG_PERMISSIONS_DESC">
|
|
<field
|
|
name="rules"
|
|
type="rules"
|
|
label="JCONFIG_PERMISSIONS_LABEL"
|
|
filter="rules"
|
|
validate="rules"
|
|
component="com_mokosuitebackup"
|
|
section="component"
|
|
/>
|
|
</fieldset>
|
|
</config>
|