Skip to content

Commit 08b4ee9

Browse files
authored
Enhance AddRepositoryModal for Rclone support and UI optimizations (#1177)
NethServer/dev#7966
1 parent c703904 commit 08b4ee9

17 files changed

Lines changed: 742 additions & 549 deletions

File tree

core/imageroot/var/lib/nethserver/cluster/actions/alter-backup-repository/validate-input.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@
203203
"type": ["null", "string"],
204204
"maxLength": 100000,
205205
"description": "Basic INI-like string validation",
206-
"pattern": "^(\\[[^\\]]+\\]\\n)?(\\s*([A-Za-z_][A-Za-z0-9_]*)\\s*=\\s*[^\\n]*\\n)*$"
206+
"pattern": "^(\\[[^\\]]+\\]\\n)?(\\s*([A-Za-z_][A-Za-z0-9_]*)\\s*=\\s*[^\\n]*(\\n|$))*$"
207207
},
208208
"rclone_conf_b64_secret": {
209209
"type": "string",

core/ui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"@carbon/icons-vue": "^10.37.0",
1717
"@carbon/themes": "^10.34.0",
1818
"@carbon/vue": "^2.40.0",
19-
"@nethserver/ns8-ui-lib": "^1.12.2",
19+
"@nethserver/ns8-ui-lib": "^1.12.3",
2020
"await-to-js": "^3.0.0",
2121
"axios": "^0.32.0",
2222
"carbon-components": "^10.41.0",

core/ui/public/i18n/en/translation.json

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -367,11 +367,11 @@
367367
"set-external-provider-name": "Set external provider name",
368368
"list-backup-repositories": "List backup repositories",
369369
"list-backups": "List backups",
370-
"add-backup-repository": "Add backup destination",
370+
"add-backup-repository": "Add destination",
371371
"add-backup": "Add backup",
372372
"remove-backup-repository": "Remove backup destination",
373373
"remove-backup": "Remove backup",
374-
"alter-backup-repository": "Alter backup destination",
374+
"alter-backup-repository": "Edit destination",
375375
"alter-backup": "Alter backup",
376376
"run-backup": "Run backup",
377377
"restore-module": "Restore application",
@@ -472,30 +472,33 @@
472472
"smb": "Windows File Share (SMB2/3)",
473473
"cluster": "Local storage",
474474
"generic-s3": "S3 compatible provider",
475-
"azure": "Microsoft Azure blob storage",
475+
"rclone": "Rclone compatible provider",
476+
"rclone_short": "Rclone",
476477
"backblaze_short": "B2",
477478
"aws_short": "S3",
478479
"genericS3_short": "Generic S3",
479-
"azure_short": "Azure",
480480
"download": "Download",
481481
"instances": "instance | instances",
482482
"Instances": "Instance | Instances",
483483
"applications": "Application | Applications",
484-
"delete_backup_repository": "Delete backup destination",
484+
"delete_destination": "Delete destination",
485485
"delete_repository_confirm": "Delete backup destination '{name}'?",
486-
"delete_repo_explanation_1": "Any scheduled backup using this destination will be deleted too, but your backed up data will be left intact on the original destination. This action is NOT reversible.",
486+
"delete_repo_notice_title": "Preserve backup access",
487+
"delete_repo_notice_description": "Removing this destination also deletes all scheduled backups that use it. Existing backup data will remain on the storage. Keep a previously downloaded cluster backup or the destination data encryption key to preserve access to the stored data.",
488+
"delete_repo_explanation_1": "This action cannot be undone.",
487489
"data_encryption_key": "Data encryption key",
488490
"type_repo_password_to_confirm": "Type destination password to confirm deletion",
489491
"select_backup_provider": "Select backup provider",
490492
"repository_name": "Backup destination name",
491-
"repository_name_helper": "An easy to remember name for the destination",
492-
"azure_url_label": "Azure container name",
493+
"repository_name_helper": "An easy-to-remember name for the destination",
493494
"aws_url_label": "AWS bucket name",
494495
"backblaze_url_label": "B2 bucket name",
495496
"genericS3_url_label": "Bucket address",
496497
"genericS3_url_tooltip": "Enter an address with format 'serverfqdn/bucketname'. Note: the server must have a valid TLS certificate",
497498
"genericS3_placeholder": "e.g. myminio.example.com/mybucket",
498499
"smb_url_label": "Share name",
500+
"smb_protocol_warning_title": "SMB2 and SMB3 protocols supported",
501+
"smb_protocol_warning_description": "Only file shares using SMB2 or SMB3 are supported. SMB1/CIFS shares are deprecated, insecure and cannot be accessed.",
499502
"backup_repository_exists": "A backup destination with this URL already exists",
500503
"choose_destination_repository": "Choose backup destination",
501504
"select_by_category": "Select by category",
@@ -507,8 +510,7 @@
507510
"delete_scheduled_backup_confirm": "Delete scheduled backup {name}?",
508511
"delete_backup_explanation_1": "{instanceName} won't be backed up anymore. If you change your mind, you'll have to schedule a new backup. | {numInstances} applications won't be backed up anymore. If you change your mind, you'll have to schedule a new backup.",
509512
"delete_backup_explanation_2": "Existing backed up data will be left intact on the original destination.",
510-
"edit_backup_repository": "Edit backup destination",
511-
"repository_details": "Destination details",
513+
"edit_destination": "Edit destination",
512514
"name": "Name",
513515
"provider": "Provider",
514516
"b2_account_id": "B2 application key ID",
@@ -518,8 +520,6 @@
518520
"aws_secret_access_key": "AWS secret access key",
519521
"genericS3_access_key_id": "Access key ID",
520522
"genericS3_secret_access_key": "Secret access key",
521-
"azure_account_name": "Azure account name",
522-
"azure_account_key": "Azure storage account key",
523523
"repository": "Destination",
524524
"backup_details": "Backup details",
525525
"backup_enabled": "Backup enabled",
@@ -528,11 +528,11 @@
528528
"app_instances_not_backed_up_description": "{numInstances} application is not included in any backup. Edit an existing schedule or add a new one.| {numInstances} applications are not included in any backup. Edit an existing schedule or add a new one.",
529529
"disabled_backups": "Disabled backups",
530530
"disabled_backups_description": "There is {num} backup disabled | There are {num} backups disabled",
531-
"repository_password_helper": "Enter data encryption key if backup destination was configured previously",
531+
"repository_password_helper": "Enter the encryption key previously used for this backup destination, or leave empty to generate one automatically. The key cannot be changed later.",
532532
"not_backed_up": "Not backed up",
533533
"search_instances": "Search applications",
534534
"not_backed_up_instances_selected": "Instances not backed up are currently selected",
535-
"data_encryption_key_tooltip": "This password is used to encrypt data in the backup destination and is saved inside your cluster backup. Store this password in a safe place, or remember to download cluster backup regularly.",
535+
"data_encryption_key_tooltip": "This encryption key is used to protect data in the backup destination and is saved inside your cluster backup. Store it in a safe place, or remember to download the cluster backup regularly.",
536536
"run_backup": "Run backup",
537537
"run_backup_now": "Run backup now",
538538
"last_backup": "Last backup",
@@ -571,7 +571,6 @@
571571
"enabling_backup": "Enabling {backupName}",
572572
"disabling_backup": "Disabling {backupName}",
573573
"retention_tooltip": "Number of backup snapshots stored before automatic deletion",
574-
"default_repository_name": "{provider} destination",
575574
"schedule_backup_for_instance": "Create a backup schedule for {instance}",
576575
"schedule_action": "Schedule",
577576
"no_backup": "No backup",
@@ -590,10 +589,11 @@
590589
"restoring_app_to_node": "Restoring {app} to {node}",
591590
"instance_restored_to_node": "{module_id} restored to {node}",
592591
"open_app": "Open application",
593-
"backup_repository_not_accessible": "Cannot access destination",
594-
"backup_repository_auth_error": "Cannot authenticate",
595-
"backup_repository_auth_error_description": "Check the error in the Notifications drawer for details",
596-
"go_to_notification_drawer": "Open Notifications drawer",
592+
"no_read_permission": "Cannot connect, authenticate, or read from the backup destination.",
593+
"no_write_permission": "Cannot create files or directories on the backup destination. Check write permissions.",
594+
"no_delete_permission": "Cannot delete files or directories from the backup destination. Check delete permissions.",
595+
"backup_repository_not_accessible": "Cannot access the backup destination. Check the error notification or System logs for details.",
596+
"backup_repository_connection_error": "Cannot access destination",
597597
"no_instance_to_restore": "No application to restore",
598598
"no_snapshot_to_restore": "No backup snapshot to restore",
599599
"no_instance_to_restore_description": "It looks like there is no application backed up on your destinations",
@@ -628,12 +628,9 @@
628628
"smb_domain": "Domain name (NT/Workgroup)",
629629
"samba": "Windows file share",
630630
"smb_short": "SMB",
631-
"samba_tooltips": "Only shares with SMB2/3 protocols are supported. Deprecated SMB1/CIFS shares are not secure and cannot be accessed.",
632631
"cluster_short": "Local storage",
633632
"select_cluster_node": "Select a cluster node",
634-
"cluster_placeholder": "Choose a node in the cluster",
635633
"parameters_format": "Incorrect value",
636-
"url": "URL",
637634
"url_pattern": "The S3-compatible hostname and bucket name must be separated by a slash '/'",
638635
"from_node_name_of_this_cluster": "From node {name} of this cluster",
639636
"from_node_name_of_different_cluster": "From node {name} of a different cluster",
@@ -661,6 +658,16 @@
661658
"set_cluster_backup_password_to_restore_applications": "Set the encryption password to configure backup and restore",
662659
"no_cluster_backup_password": "Encryption password not configured",
663660
"error_reading_backup_file": "Error reading backup file",
661+
"rclone_configuration_source": "Configuration source",
662+
"rclone_configuration_source_paste_configuration": "Paste configuration",
663+
"rclone_configuration_content": "Rclone configuration",
664+
"rclone_configuration_content_single_destination_helper_text": "Paste a configuration containing a single destination",
665+
"rclone_configuration_source_upload_configuration": "Upload configuration file",
666+
"rclone_configuration_file": "Rclone configuration file",
667+
"rclone_configuration_file_helper": "Supported file types: .conf, .txt",
668+
"rclone_conf_error": "Invalid rclone configuration",
669+
"rclone_base_path": "Path",
670+
"rclone_configuration_source_keep_configuration": "Keep current configuration",
664671
"invalid_base64": "Invalid base64 file format"
665672
},
666673
"calendar": {

core/ui/src/assets/aws.png

5.75 KB
Loading

core/ui/src/assets/azure.png

-10.3 KB
Binary file not shown.
2.26 KB
Loading

core/ui/src/assets/rclone.png

5.93 KB
Loading

core/ui/src/assets/s3-generic.png

-4.45 KB
Loading

core/ui/src/assets/s3.png

-13.3 KB
Binary file not shown.

core/ui/src/assets/samba.png

-4.76 KB
Loading

0 commit comments

Comments
 (0)