diff --git a/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly b/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly index ba45b2262ce7..3d249ff3abb2 100644 --- a/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly +++ b/core/src/main/resources/hudson/model/BooleanParameterValue/value.jelly @@ -28,6 +28,7 @@ THE SOFTWARE. xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project"> - + + diff --git a/core/src/main/resources/hudson/model/ParametersAction/index.jelly b/core/src/main/resources/hudson/model/ParametersAction/index.jelly index c8e8bf3aaff6..fe9a2f04154a 100644 --- a/core/src/main/resources/hudson/model/ParametersAction/index.jelly +++ b/core/src/main/resources/hudson/model/ParametersAction/index.jelly @@ -35,6 +35,7 @@ THE SOFTWARE. ${title} + diff --git a/core/src/main/resources/hudson/model/StringParameterValue/value.jelly b/core/src/main/resources/hudson/model/StringParameterValue/value.jelly index e3de9ff09a34..7c5328f667bf 100644 --- a/core/src/main/resources/hudson/model/StringParameterValue/value.jelly +++ b/core/src/main/resources/hudson/model/StringParameterValue/value.jelly @@ -24,10 +24,11 @@ THE SOFTWARE. - - - - + xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" + xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project"> + + + + + \ No newline at end of file diff --git a/core/src/main/resources/hudson/model/TextParameterValue/value.jelly b/core/src/main/resources/hudson/model/TextParameterValue/value.jelly index 8ae92827ade1..c46b88498769 100644 --- a/core/src/main/resources/hudson/model/TextParameterValue/value.jelly +++ b/core/src/main/resources/hudson/model/TextParameterValue/value.jelly @@ -26,8 +26,9 @@ THE SOFTWARE. - - - - + + + + + \ No newline at end of file diff --git a/core/src/main/resources/lib/form/checkbox.jelly b/core/src/main/resources/lib/form/checkbox.jelly index de831954cafc..5b9807c501f8 100644 --- a/core/src/main/resources/lib/form/checkbox.jelly +++ b/core/src/main/resources/lib/form/checkbox.jelly @@ -83,9 +83,9 @@ THE SOFTWARE. name="${name}" value="${attrs.value}" title="${attrs.tooltip}" - onclick="${attrs.readonly=='true' ? 'return false;' : attrs.onclick}" id="${attrs.id}" class="${attrs.class} ${attrs.negative!=null ? 'negative' : null} ${attrs.checkUrl!=null?'validated':''}" + onclick="${attrs.readonly=='true' ? null : attrs.onclick}" id="${attrs.id}" class="${attrs.class} ${attrs.negative!=null ? 'negative' : null} ${attrs.checkUrl!=null?'validated':''}" checkUrl="${attrs.checkUrl}" checkDependsOn="${attrs.checkDependsOn}" json="${attrs.json}" - disabled="${readOnlyMode ? 'true' : null}" + disabled="${readOnlyMode or attrs.readonly=='true' ? 'true' : null}" checked="${value ? 'true' : null}"/> diff --git a/core/src/main/resources/lib/form/radio.jelly b/core/src/main/resources/lib/form/radio.jelly index a920c99ee216..2f085d3f6449 100644 --- a/core/src/main/resources/lib/form/radio.jelly +++ b/core/src/main/resources/lib/form/radio.jelly @@ -24,7 +24,7 @@ THE SOFTWARE. - tag that takes true/false for @checked, which is more Jelly friendly. Note that Safari doesn't support onchange. @@ -38,7 +38,13 @@ THE SOFTWARE. - + + Inline JavaScript to execute when the checkbox is clicked. + Deprecated because this attribute is incompatible with adding Content-Security-Policy to the Jenkins UI in the future. + Set 'id' or 'class' attributes as appropriate to look up this element in external Javascript files (e.g. adjuncts) + to add the desired behavior there (DOMContentLoaded event in static forms, Behaviour.specify if this element may be + dynamically added). See https://github.com/jenkinsci/jenkins/pull/6852 for an example. + If specified, this human readable text will follow the radio, and clicking this text also toggles the radio. diff --git a/test/src/test/java/hudson/model/ParametersTest.java b/test/src/test/java/hudson/model/ParametersTest.java index 1b9e135ed9bf..996bdc6460f4 100644 --- a/test/src/test/java/hudson/model/ParametersTest.java +++ b/test/src/test/java/hudson/model/ParametersTest.java @@ -267,7 +267,7 @@ void xss() throws Exception { assertAll( () -> assertThat("parameters page should escape param name", text2, containsString("<param name>")), () -> assertThat("parameters page should not leave param name unescaped", text2, not(containsString(""))), - () -> assertThat("parameters page should escape param value", text2, containsString("<param value>")), + () -> assertThat("parameters page should escape param value", text2, containsString("<param value>")), () -> assertThat("parameters page should not leave param value unescaped", text2, not(containsString(""))), () -> assertThat("parameters page should mark up param description", text2, containsString("[param description]")), () -> assertThat("parameters page should not leave param description unescaped", text2, not(containsString("")))