974b971340
Add retention settings for content snapshots (max count, max age days) in component options. System plugin runs cleanupOldSnapshots() alongside existing backup cleanup, deleting JSON files and DB records. Closes #63
188 lines
5.1 KiB
XML
188 lines
5.1 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 ordering 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="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="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>
|