\n};
- _field($conf, 'GDRIVE_SERVICE_ACCOUNT_FILE', 'Service Account JSON', 'Absolute path, required');
- _field($conf, 'GDRIVE_ROOT_FOLDER_ID', 'Root Folder ID', 'Optional');
+ _field($conf, 'GDRIVE_SERVICE_ACCOUNT_FILE', 'Service Account JSON', 'Absolute path, required', 'Google Cloud service account key file for API access');
+ _field($conf, 'GDRIVE_ROOT_FOLDER_ID', 'Root Folder ID', 'Optional', 'Google Drive folder ID to use as the root for backups');
print qq{
Requires rclone installed on this server.
\n};
print qq{
\n
\n};
print qq{
\n};
@@ -613,22 +613,22 @@ sub render_remote_form {
# ── Common fields ─────────────────────────────────────────
print qq{
\n
\n};
print qq{
Storage Path
\n};
- _field($conf, 'REMOTE_BASE', 'Remote Base Dir', 'Default: /backups');
+ _field($conf, 'REMOTE_BASE', 'Remote Base Dir', 'Default: /backups', 'Root directory on the remote where all backup snapshots are stored');
print qq{
\n
\n};
# Transfer
print qq{
\n
\n};
print qq{
Transfer Settings
\n};
- _field($conf, 'BWLIMIT', 'Bandwidth Limit', 'KB/s, 0 = unlimited');
+ _field($conf, 'BWLIMIT', 'Bandwidth Limit', 'KB/s, 0 = unlimited', 'Throttle transfer speed to avoid saturating the network');
print qq{
\n};
- _field($conf, 'RETENTION_COUNT', 'Snapshots to Keep', 'Default: 30');
+ _field($conf, 'RETENTION_COUNT', 'Snapshots to Keep', 'Default: 30', 'Number of backup snapshots to retain per account before pruning old ones');
print qq{
\n
\n};
# Submit
@@ -768,11 +768,12 @@ JS
}
sub _field {
- my ($conf, $key, $label, $hint) = @_;
+ my ($conf, $key, $label, $hint, $tip) = @_;
my $val = GnizaWHM::UI::esc($conf->{$key} // '');
my $hint_html = $hint ? qq{ $hint} : '';
+ my $tip_html = $tip ? qq{ ⓘ} : '';
print qq{