diff --git a/.air.toml b/.air.toml index 77b3a6b..6ee6a0b 100644 --- a/.air.toml +++ b/.air.toml @@ -7,7 +7,7 @@ args_bin = [] bin = "./tmp/main" cmd = "templ generate && go build -o ./tmp/main ." delay = 1000 -exclude_dir = ["assets", "tmp", "vendor", "testdata", "node_modules"] +exclude_dir = ["assets", "tmp", "vendor", "testdata", "node_modules", "docs"] exclude_file = [] exclude_regex = ["_test.go", "_templ.go"] exclude_unchanged = false diff --git a/components/config_form.templ b/components/config_form.templ index 547a2c1..ff377fe 100644 --- a/components/config_form.templ +++ b/components/config_form.templ @@ -16,6 +16,9 @@ type ConfigFormData struct { InitialCommand *db.RcloneCommand SelectedFlagsMap map[uint]bool SelectedFlagValues map[uint]string + // Add source and destination providers + SourceProviders []db.StorageProvider + DestinationProviders []db.StorageProvider } func getConfigFormTitle(isNew bool) string { @@ -92,6 +95,13 @@ func getInitialData(config *db.TransferConfig) string { useBuiltinAuthSource := true useBuiltinAuthDest := true + // Provider configuration + useSourceProvider := false + sourceProviderId := uint(0) + + useDestinationProvider := false + destinationProviderId := uint(0) + // If editing an existing config, populate with those values if config != nil { name = config.Name @@ -183,6 +193,17 @@ func getInitialData(config *db.TransferConfig) string { } else if destClientId != "" || destClientSecret != "" { useBuiltinAuthDest = false } + + // Provider reference fields + if config.IsUsingSourceProviderReference() { + useSourceProvider = true + sourceProviderId = *config.SourceProviderID + } + + if config.IsUsingDestinationProviderReference() { + useDestinationProvider = true + destinationProviderId = *config.DestinationProviderID + } } // Return the JSON-formatted string with all the data, add new path validation states @@ -212,6 +233,9 @@ func getInitialData(config *db.TransferConfig) string { sourceStartYear: %d, sourceIncludeArchived: %v, + useSourceProvider: %v, + sourceProviderId: %d, + filePattern: '%s', outputPattern: '%s', @@ -239,6 +263,9 @@ func getInitialData(config *db.TransferConfig) string { destStartYear: %d, destIncludeArchived: %v, + useDestinationProvider: %v, + destinationProviderId: %d, + useBuiltinAuthSource: %v, useBuiltinAuthDest: %v, @@ -347,11 +374,13 @@ func getInitialData(config *db.TransferConfig) string { sourceBucket, sourceRegion, sourceAccessKey, sourceSecretKey, sourceEndpoint, sourceShare, sourceDomain, sourcePassiveMode, sourceClientId, sourceClientSecret, sourceDriveId, sourceTeamDrive, sourceReadOnly, sourceStartYear, sourceIncludeArchived, + useSourceProvider, sourceProviderId, filePattern, outputPattern, destinationType, destinationPath, destHost, destPort, destUser, destPassword, destKeyFile, destAuthType, destBucket, destRegion, destAccessKey, destSecretKey, destEndpoint, destShare, destDomain, destPassiveMode, destClientId, destClientSecret, destDriveId, destTeamDrive, destReadOnly, destStartYear, destIncludeArchived, + useDestinationProvider, destinationProviderId, useBuiltinAuthSource, useBuiltinAuthDest, archivePath, archiveEnabled, deleteAfterTransfer, skipProcessedFiles, maxConcurrentTransfers, rcloneFlags, commandId, commandFlags) @@ -422,6 +451,10 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { maxConcurrentTransfers = 1; } + // Initialize provider selection states + useSourceProvider = useSourceProvider || false; + useDestinationProvider = useDestinationProvider || false; + // Initialize command requirements updateCommandRequirements(); })" @@ -512,8 +545,9 @@ templ ConfigForm(ctx context.Context, data ConfigFormData) { - @common.SourceSelection() + @common.SourceSelection(data.SourceProviders) +
-
- -