diff --git a/src/main/java/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel.java b/src/main/java/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel.java index 7aa6b403..d07c751f 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel.java @@ -4,8 +4,14 @@ import hudson.model.AbstractDescribableImpl; import hudson.model.Descriptor; import hudson.security.Permission; +import hudson.util.FormValidation; +import hudson.util.ListBoxModel; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; import jenkins.model.Jenkins; import net.sf.json.JSONObject; +import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import edu.umd.cs.findbugs.annotations.CheckForNull; @@ -46,6 +52,15 @@ public void setDurabilityHint(FlowDurabilityHint hint){ save(); } + public FormValidation doCheckDurabilityHint(@QueryParameter("durabilityHint") String durabilityHint) { + FlowDurabilityHint flowDurabilityHint = Arrays.stream(FlowDurabilityHint.values()) + .filter(f -> f.name().equals(durabilityHint)) + .findFirst() + .orElse(GlobalDefaultFlowDurabilityLevel.SUGGESTED_DURABILITY_HINT); + + return FormValidation.ok(flowDurabilityHint.getTooltip()); + } + @Override public boolean configure(StaplerRequest req, JSONObject json) { // TODO verify if this is covered by permissions checks or we need an explicit check here. @@ -64,12 +79,18 @@ public boolean configure(StaplerRequest req, JSONObject json) { return true; } - public static FlowDurabilityHint getSuggestedDurabilityHint() { - return GlobalDefaultFlowDurabilityLevel.SUGGESTED_DURABILITY_HINT; - } + public ListBoxModel doFillDurabilityHintItems() { + ListBoxModel options = new ListBoxModel(); + + options.add("None: use pipeline default (" + GlobalDefaultFlowDurabilityLevel.SUGGESTED_DURABILITY_HINT.name() + ")", "null"); + + List mappedOptions = Arrays.stream(FlowDurabilityHint.values()) + .map(hint -> new ListBoxModel.Option(hint.getDescription(), hint.name())) + .collect(Collectors.toList()); + + options.addAll(mappedOptions); - public static FlowDurabilityHint[] getDurabilityHintValues() { - return FlowDurabilityHint.values(); + return options; } @NonNull diff --git a/src/main/resources/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel/global.jelly b/src/main/resources/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel/global.jelly index 2bc1d122..49be137a 100644 --- a/src/main/resources/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel/global.jelly +++ b/src/main/resources/org/jenkinsci/plugins/workflow/flow/GlobalDefaultFlowDurabilityLevel/global.jelly @@ -1,17 +1,8 @@ - - - + + + -

\ No newline at end of file