1e9c8d54f4
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 22s
Joomla validates required fields server-side regardless of showon visibility. SFTP fields with required="true" block saving when remote_storage is set to None or S3/GDrive because the hidden fields submit empty values. Validation should be done in ProfileTable::check() conditionally instead.
502 lines
13 KiB
XML
502 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<form>
|
|
<fieldset name="general" label="COM_MOKOJOOMBACKUP_FIELDSET_GENERAL">
|
|
<field
|
|
name="title"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_TITLE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_TITLE_DESC"
|
|
required="true"
|
|
maxlength="255"
|
|
/>
|
|
<field
|
|
name="description"
|
|
type="textarea"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_DESCRIPTION"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_DESCRIPTION_DESC"
|
|
rows="3"
|
|
/>
|
|
<field
|
|
name="backup_type"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_BACKUP_TYPE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_BACKUP_TYPE_DESC"
|
|
default="full"
|
|
>
|
|
<option value="full">COM_MOKOJOOMBACKUP_TYPE_FULL</option>
|
|
<option value="database">COM_MOKOJOOMBACKUP_TYPE_DATABASE</option>
|
|
<option value="files">COM_MOKOJOOMBACKUP_TYPE_FILES</option>
|
|
<option value="differential">COM_MOKOJOOMBACKUP_TYPE_DIFFERENTIAL</option>
|
|
</field>
|
|
</fieldset>
|
|
|
|
<fieldset name="archive" label="COM_MOKOJOOMBACKUP_FIELDSET_ARCHIVE">
|
|
<field
|
|
name="archive_format"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_FORMAT"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_FORMAT_DESC"
|
|
default="zip"
|
|
>
|
|
<option value="zip">ZIP</option>
|
|
<option value="tar.gz">tar.gz</option>
|
|
</field>
|
|
<field
|
|
name="compression_level"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_COMPRESSION"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_COMPRESSION_DESC"
|
|
default="5"
|
|
>
|
|
<option value="0">COM_MOKOJOOMBACKUP_COMPRESSION_NONE</option>
|
|
<option value="1">COM_MOKOJOOMBACKUP_COMPRESSION_FASTEST</option>
|
|
<option value="5">COM_MOKOJOOMBACKUP_COMPRESSION_NORMAL</option>
|
|
<option value="9">COM_MOKOJOOMBACKUP_COMPRESSION_BEST</option>
|
|
</field>
|
|
<field
|
|
name="split_size"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SPLIT_SIZE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SPLIT_SIZE_DESC"
|
|
default="0"
|
|
min="0"
|
|
hint="0 = no splitting"
|
|
/>
|
|
<field
|
|
name="backup_dir"
|
|
type="FolderPicker"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_BACKUP_DIR"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_BACKUP_DIR_DESC"
|
|
default="[DEFAULT_DIR]"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
<field
|
|
name="archive_name_format"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_NAME_FORMAT"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_ARCHIVE_NAME_FORMAT_DESC"
|
|
default="[host]_[datetime]_profile[profile_id]"
|
|
maxlength="512"
|
|
hint="[host]_[datetime]_profile[profile_id]"
|
|
/>
|
|
<field
|
|
name="include_mokorestore"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_INCLUDE_MOKORESTORE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_INCLUDE_MOKORESTORE_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="encryption_password"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_ENCRYPTION_PASSWORD"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_ENCRYPTION_PASSWORD_DESC"
|
|
maxlength="255"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="sidebar" label="COM_MOKOJOOMBACKUP_FIELDSET_STATUS">
|
|
<field
|
|
name="id"
|
|
type="hidden"
|
|
/>
|
|
<field
|
|
name="published"
|
|
type="list"
|
|
label="JSTATUS"
|
|
default="1"
|
|
>
|
|
<option value="1">JPUBLISHED</option>
|
|
<option value="0">JUNPUBLISHED</option>
|
|
</field>
|
|
<field
|
|
name="ordering"
|
|
type="number"
|
|
label="JFIELD_ORDERING_LABEL"
|
|
default="0"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="filters" label="COM_MOKOJOOMBACKUP_FIELDSET_FILTERS">
|
|
<field
|
|
name="exclude_dirs"
|
|
type="DirectoryFilter"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DIRS"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_DIRS_DESC"
|
|
filter="raw"
|
|
hint="tmp"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
<field
|
|
name="exclude_files"
|
|
type="ExcludeList"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_FILES"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_FILES_DESC"
|
|
filter="raw"
|
|
hint="*.bak"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
<field
|
|
name="exclude_tables"
|
|
type="DatabaseTables"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_EXCLUDE_TABLES_DESC"
|
|
filter="raw"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="remote" label="COM_MOKOJOOMBACKUP_FIELDSET_REMOTE">
|
|
<field
|
|
name="remote_storage"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_REMOTE_STORAGE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_REMOTE_STORAGE_DESC"
|
|
default="none"
|
|
>
|
|
<option value="none">COM_MOKOJOOMBACKUP_REMOTE_NONE</option>
|
|
<option value="sftp">COM_MOKOJOOMBACKUP_REMOTE_SFTP</option>
|
|
<option value="google_drive">COM_MOKOJOOMBACKUP_REMOTE_GDRIVE</option>
|
|
<option value="s3">COM_MOKOJOOMBACKUP_REMOTE_S3</option>
|
|
</field>
|
|
<field
|
|
name="remote_keep_local"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_KEEP_LOCAL"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_KEEP_LOCAL_DESC"
|
|
default="1"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
|
|
<!-- SFTP fields (shown when remote_storage = sftp) -->
|
|
<field
|
|
name="sftp_host"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_HOST"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_HOST_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:sftp"
|
|
/>
|
|
<field
|
|
name="sftp_port"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_PORT"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_PORT_DESC"
|
|
default="22"
|
|
min="1"
|
|
max="65535"
|
|
showon="remote_storage:sftp"
|
|
/>
|
|
<field
|
|
name="sftp_username"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_USERNAME"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_USERNAME_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:sftp"
|
|
/>
|
|
<field
|
|
name="sftp_auth_type"
|
|
type="list"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_AUTH_TYPE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_AUTH_TYPE_DESC"
|
|
default="key"
|
|
showon="remote_storage:sftp"
|
|
>
|
|
<option value="password">COM_MOKOJOOMBACKUP_SFTP_AUTH_PASSWORD</option>
|
|
<option value="key">COM_MOKOJOOMBACKUP_SFTP_AUTH_KEY</option>
|
|
<option value="key_passphrase">COM_MOKOJOOMBACKUP_SFTP_AUTH_KEY_PASSPHRASE</option>
|
|
</field>
|
|
<field
|
|
name="sftp_password"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_PASSWORD"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_PASSWORD_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:sftp[AND]sftp_auth_type:password"
|
|
/>
|
|
<field
|
|
name="sftp_key_data"
|
|
type="SshKey"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_KEY"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_KEY_DESC"
|
|
filter="raw"
|
|
showon="remote_storage:sftp[AND]sftp_auth_type:key,key_passphrase"
|
|
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
|
|
/>
|
|
<field
|
|
name="sftp_passphrase"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_PASSPHRASE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_PASSPHRASE_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:sftp[AND]sftp_auth_type:key_passphrase"
|
|
/>
|
|
<field
|
|
name="sftp_path"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_SFTP_PATH"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_SFTP_PATH_DESC"
|
|
default="/backups"
|
|
maxlength="512"
|
|
showon="remote_storage:sftp"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="retention" label="COM_MOKOJOOMBACKUP_FIELDSET_RETENTION">
|
|
<field
|
|
name="retention_days"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_RETENTION_DAYS"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_RETENTION_DAYS_DESC"
|
|
default="0"
|
|
min="0"
|
|
max="365"
|
|
hint="0"
|
|
/>
|
|
<field
|
|
name="retention_count"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_RETENTION_COUNT"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_RETENTION_COUNT_DESC"
|
|
default="0"
|
|
min="0"
|
|
max="999"
|
|
hint="0"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="notifications" label="COM_MOKOJOOMBACKUP_FIELDSET_NOTIFICATIONS">
|
|
<field
|
|
name="notify_email"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_NOTIFY_EMAIL"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NOTIFY_EMAIL_DESC"
|
|
maxlength="512"
|
|
hint="admin@example.com, backup@example.com"
|
|
/>
|
|
<field
|
|
name="notify_user_groups"
|
|
type="usergrouplist"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_NOTIFY_USER_GROUPS"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NOTIFY_USER_GROUPS_DESC"
|
|
multiple="true"
|
|
layout="joomla.form.field.list-fancy-select"
|
|
/>
|
|
<field
|
|
name="notify_on_success"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_NOTIFY_SUCCESS"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_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_FIELD_NOTIFY_FAILURE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NOTIFY_FAILURE_DESC"
|
|
default="1"
|
|
class="btn-group"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="ntfy_spacer"
|
|
type="note"
|
|
label=""
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NTFY_SPACER_DESC"
|
|
class="alert alert-light border"
|
|
/>
|
|
<field
|
|
name="ntfy_topic"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_NTFY_TOPIC"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NTFY_TOPIC_DESC"
|
|
maxlength="255"
|
|
hint="my-backups"
|
|
/>
|
|
<field
|
|
name="ntfy_server"
|
|
type="url"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_NTFY_SERVER"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NTFY_SERVER_DESC"
|
|
maxlength="512"
|
|
default="https://ntfy.sh"
|
|
hint="https://ntfy.sh"
|
|
/>
|
|
<field
|
|
name="ntfy_token"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_NTFY_TOKEN"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_NTFY_TOKEN_DESC"
|
|
maxlength="255"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="ftp" label="COM_MOKOJOOMBACKUP_FIELDSET_FTP">
|
|
<field
|
|
name="ftp_host"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_HOST"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_FTP_HOST_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:ftp"
|
|
/>
|
|
<field
|
|
name="ftp_port"
|
|
type="number"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_PORT"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_FTP_PORT_DESC"
|
|
default="21"
|
|
min="1"
|
|
max="65535"
|
|
showon="remote_storage:ftp"
|
|
/>
|
|
<field
|
|
name="ftp_username"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_USERNAME"
|
|
maxlength="255"
|
|
showon="remote_storage:ftp"
|
|
/>
|
|
<field
|
|
name="ftp_password"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_PASSWORD"
|
|
maxlength="255"
|
|
showon="remote_storage:ftp"
|
|
/>
|
|
<field
|
|
name="ftp_path"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_PATH"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_FTP_PATH_DESC"
|
|
default="/backups"
|
|
maxlength="512"
|
|
showon="remote_storage:ftp"
|
|
/>
|
|
<field
|
|
name="ftp_passive"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_PASSIVE"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_FTP_PASSIVE_DESC"
|
|
default="1"
|
|
class="btn-group"
|
|
showon="remote_storage:ftp"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
<field
|
|
name="ftp_ssl"
|
|
type="radio"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_FTP_SSL"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_FTP_SSL_DESC"
|
|
default="0"
|
|
class="btn-group"
|
|
showon="remote_storage:ftp"
|
|
>
|
|
<option value="1">JYES</option>
|
|
<option value="0">JNO</option>
|
|
</field>
|
|
</fieldset>
|
|
|
|
<fieldset name="google_drive" label="COM_MOKOJOOMBACKUP_FIELDSET_GDRIVE">
|
|
<field
|
|
name="gdrive_client_id"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_CLIENT_ID"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_CLIENT_ID_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:google_drive"
|
|
/>
|
|
<field
|
|
name="gdrive_client_secret"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_CLIENT_SECRET"
|
|
maxlength="255"
|
|
showon="remote_storage:google_drive"
|
|
/>
|
|
<field
|
|
name="gdrive_refresh_token"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_REFRESH_TOKEN"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_REFRESH_TOKEN_DESC"
|
|
maxlength="512"
|
|
showon="remote_storage:google_drive"
|
|
/>
|
|
<field
|
|
name="gdrive_folder_id"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_FOLDER_ID"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_GDRIVE_FOLDER_ID_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:google_drive"
|
|
/>
|
|
</fieldset>
|
|
|
|
<fieldset name="s3" label="COM_MOKOJOOMBACKUP_FIELDSET_S3">
|
|
<field
|
|
name="s3_endpoint"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_S3_ENDPOINT"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_S3_ENDPOINT_DESC"
|
|
maxlength="512"
|
|
hint="https://s3.amazonaws.com"
|
|
showon="remote_storage:s3"
|
|
/>
|
|
<field
|
|
name="s3_region"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_S3_REGION"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_S3_REGION_DESC"
|
|
default="us-east-1"
|
|
maxlength="50"
|
|
showon="remote_storage:s3"
|
|
/>
|
|
<field
|
|
name="s3_access_key"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_S3_ACCESS_KEY"
|
|
maxlength="255"
|
|
showon="remote_storage:s3"
|
|
/>
|
|
<field
|
|
name="s3_secret_key"
|
|
type="password"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_S3_SECRET_KEY"
|
|
maxlength="255"
|
|
showon="remote_storage:s3"
|
|
/>
|
|
<field
|
|
name="s3_bucket"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_S3_BUCKET"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_S3_BUCKET_DESC"
|
|
maxlength="255"
|
|
showon="remote_storage:s3"
|
|
/>
|
|
<field
|
|
name="s3_path"
|
|
type="text"
|
|
label="COM_MOKOJOOMBACKUP_FIELD_S3_PATH"
|
|
description="COM_MOKOJOOMBACKUP_FIELD_S3_PATH_DESC"
|
|
default="/backups"
|
|
maxlength="512"
|
|
showon="remote_storage:s3"
|
|
/>
|
|
</fieldset>
|
|
</form>
|