Skip to content

Commit

Permalink
Merge pull request #36 from Greybird/master
Browse files Browse the repository at this point in the history
[JENKINS-44066] set BFA description text and readonly on form display
  • Loading branch information
Greybird committed Dec 28, 2017
2 parents ac51338 + 12ab56f commit e4afb3c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
15 changes: 13 additions & 2 deletions src/main/java/hudson/plugins/claim/AbstractClaimBuildAction.java
Expand Up @@ -2,7 +2,6 @@

import groovy.lang.Binding;
import hudson.model.BuildBadgeAction;
import hudson.model.Describable;
import hudson.model.ProminentProjectAction;
import hudson.model.Run;
import hudson.model.Saveable;
Expand All @@ -13,7 +12,6 @@
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

Expand All @@ -27,6 +25,7 @@
import org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.bind.JavaScriptMethod;
import org.kohsuke.stapler.export.Exported;
import org.kohsuke.stapler.export.ExportedBean;

Expand Down Expand Up @@ -235,6 +234,18 @@ public String fillReason() throws Exception {
return json.toString();
}

@JavaScriptMethod
public String getReason(String error) throws Exception {
final String defaultValue = "";
if(!ClaimBuildFailureAnalyzer.isBFAEnabled()) {
return defaultValue;
}
if (error == null || ClaimBuildFailureAnalyzer.DEFAULT_ERROR.equals(error)) {
return defaultValue;
}
return ClaimBuildFailureAnalyzer.getFillReasonMap().getOrDefault(error, defaultValue);
}

public void setReason(String reason) {
this.reason = reason;
}
Expand Down
Expand Up @@ -18,13 +18,10 @@
function Display(error)
{
reasonText = document.getElementById("errordesc");
obj = ${it.fillReason()};
if(error == "Default"){
reasonText.textContent = "";
} else{
reasonText.textContent = obj[error];
}
reasonText.readOnly = true;
var action = <st:bind value="${it}" />
action.getReason(error, function(content) {
reasonText.textContent = content.responseObject();
});
}
</script>

Expand Down Expand Up @@ -106,7 +103,7 @@
<f:select onChange="Display(this.value);"/>
</f:entry>
<f:entry title="${%Description}" help="/plugin/claim/help-description.html">
<f:textarea name="errordesc" id="errordesc" value=""/>
<f:textarea name="errordesc" id="errordesc" value="${it.getReason(it.error)}" readonly="true"/>
</f:entry>
</j:if>
<f:entry title="${%Reason}" help="/plugin/claim/help-reason.html">
Expand Down
5 changes: 4 additions & 1 deletion src/test/java/hudson/plugins/claim/ClaimBFATest.java
Expand Up @@ -143,7 +143,10 @@ private ClaimBuildAction applyClaimWithFailureCauseSelected(String element, Stri
HtmlSelect select = form.getSelectByName("_.errors");
HtmlOption option = select.getOptionByValue(error);
select.setSelectedAttribute(option, true);

// wait for async javascript callback to execute
synchronized (page) {
page.wait(1000);
}
assertEquals(description, form.getTextAreaByName("errordesc").getTextContent());

HtmlFormUtil.submit(form, j.last(form.getHtmlElementsByTagName("button")));
Expand Down

0 comments on commit e4afb3c

Please sign in to comment.