Browse Source

Update ui.go

worker-execute-ec-tasks
chrislu 4 months ago
parent
commit
638ab0d6f4
  1. 78
      weed/worker/tasks/vacuum/ui.go

78
weed/worker/tasks/vacuum/ui.go

@ -101,19 +101,19 @@ func (ui *UIProvider) RenderConfigForm(currentConfig interface{}) (template.HTML
true,
)
form.AddDurationField(
"scan_interval",
form.AddIntervalField(
"scan_interval_seconds",
"Scan Interval",
"How often to scan for volumes needing vacuum",
secondsToDuration(config.ScanIntervalSeconds),
config.ScanIntervalSeconds,
true,
)
form.AddDurationField(
"min_volume_age",
form.AddIntervalField(
"min_volume_age_seconds",
"Minimum Volume Age",
"Only vacuum volumes older than this duration",
secondsToDuration(config.MinVolumeAgeSeconds),
config.MinVolumeAgeSeconds,
true,
)
@ -126,11 +126,11 @@ func (ui *UIProvider) RenderConfigForm(currentConfig interface{}) (template.HTML
true,
)
form.AddDurationField(
"min_interval",
form.AddIntervalField(
"min_interval_seconds",
"Minimum Interval",
"Minimum time between vacuum operations on the same volume",
secondsToDuration(config.MinIntervalSeconds),
config.MinIntervalSeconds,
true,
)
@ -158,10 +158,13 @@ function resetForm() {
// Reset to default values
document.querySelector('input[name="enabled"]').checked = true;
document.querySelector('input[name="garbage_threshold"]').value = '30';
document.querySelector('input[name="scan_interval"]').value = '30m';
document.querySelector('input[name="min_volume_age"]').value = '1h';
document.querySelector('input[name="scan_interval_seconds_value"]').value = '30';
document.querySelector('select[name="scan_interval_seconds_unit"]').value = 'minute';
document.querySelector('input[name="min_volume_age_seconds_value"]').value = '1';
document.querySelector('select[name="min_volume_age_seconds_unit"]').value = 'hour';
document.querySelector('input[name="max_concurrent"]').value = '2';
document.querySelector('input[name="min_interval"]').value = '6h';
document.querySelector('input[name="min_interval_seconds_value"]').value = '6';
document.querySelector('select[name="min_interval_seconds_unit"]').value = 'hour';
}
}
</script>
@ -189,21 +192,35 @@ func (ui *UIProvider) ParseConfigForm(formData map[string][]string) (interface{}
}
// Parse scan interval
if intervalStr := formData["scan_interval"]; len(intervalStr) > 0 {
if interval, err := time.ParseDuration(intervalStr[0]); err != nil {
return nil, fmt.Errorf("invalid scan interval: %w", err)
} else {
config.ScanIntervalSeconds = durationToSeconds(interval)
if values, ok := formData["scan_interval_seconds_value"]; ok && len(values) > 0 {
value, err := strconv.Atoi(values[0])
if err != nil {
return nil, fmt.Errorf("invalid scan interval value: %w", err)
}
unit := "minute" // default
if units, ok := formData["scan_interval_seconds_unit"]; ok && len(units) > 0 {
unit = units[0]
}
// Convert to seconds using the helper function from types package
config.ScanIntervalSeconds = types.IntervalValueUnitToSeconds(value, unit)
}
// Parse min volume age
if ageStr := formData["min_volume_age"]; len(ageStr) > 0 {
if age, err := time.ParseDuration(ageStr[0]); err != nil {
return nil, fmt.Errorf("invalid min volume age: %w", err)
} else {
config.MinVolumeAgeSeconds = durationToSeconds(age)
if values, ok := formData["min_volume_age_seconds_value"]; ok && len(values) > 0 {
value, err := strconv.Atoi(values[0])
if err != nil {
return nil, fmt.Errorf("invalid min volume age value: %w", err)
}
unit := "minute" // default
if units, ok := formData["min_volume_age_seconds_unit"]; ok && len(units) > 0 {
unit = units[0]
}
// Convert to seconds
config.MinVolumeAgeSeconds = types.IntervalValueUnitToSeconds(value, unit)
}
// Parse max concurrent
@ -218,12 +235,19 @@ func (ui *UIProvider) ParseConfigForm(formData map[string][]string) (interface{}
}
// Parse min interval
if intervalStr := formData["min_interval"]; len(intervalStr) > 0 {
if interval, err := time.ParseDuration(intervalStr[0]); err != nil {
return nil, fmt.Errorf("invalid min interval: %w", err)
} else {
config.MinIntervalSeconds = durationToSeconds(interval)
if values, ok := formData["min_interval_seconds_value"]; ok && len(values) > 0 {
value, err := strconv.Atoi(values[0])
if err != nil {
return nil, fmt.Errorf("invalid min interval value: %w", err)
}
unit := "minute" // default
if units, ok := formData["min_interval_seconds_unit"]; ok && len(units) > 0 {
unit = units[0]
}
// Convert to seconds
config.MinIntervalSeconds = types.IntervalValueUnitToSeconds(value, unit)
}
return config, nil

Loading…
Cancel
Save