-
Type:
Task
-
Resolution: Fixed
-
Priority:
Minor
-
Component/s: global-build-stats-plugin
Problems
== Legacy checkUrl
Line: 129
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkTitle?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 138
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatWidth?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 146
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatHeight?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 155
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricScale?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 166
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricLength?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 261
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkYAxisChartType?value='+escape(field.value)"
----
== Inline Script Block
Line: 26
----
<script type="text/javascript"><![CDATA[
BUILD_STAT_CONTAINER_ID_PREFIX = "container_buildStatConfig_";
var CURRENT_FORM = null;
// Called after button "initialize stats" is clicked
function initializeStats(){
ajaxCall('link', 'recordBuildInfos', function(transport) {
document.getElementById('initializeStatsMessage').style.display = "inline";
});
}
var BUILD_STAT_CONFIGS = new BuildStatConfigs();
window.addEventListener('load', function(){
ajaxCall('link', rootURL+'/plugin/global-build-stats/api/json?depth=2', function(ret) {
var buildStat = eval('('+ret.responseText+')');
for(i=0; i<buildStat.buildStatConfigs.length; i++){
var config = buildStat.buildStatConfigs[i];
BUILD_STAT_CONFIGS.add(config);
}
});
});
]]></script>
----
== Inline Script Block
Line: 49
----
<script type="text/javascript">
CHART_LENGTH_UNITS = new Array();
<j:forEach var="historicScale" items="${it.historicScales}" varStatus="status">
CHART_LENGTH_UNITS[${status.index}] = "${historicScale}";
</j:forEach>
FIELD_FILTER_ALL = "${FIELD_FILTER_ALL}";
FIELD_FILTER_REGEX = "${FIELD_FILTER_REGEX}";
LAUNCHER_SYSTEM_REGEX = "${LAUNCHER_SYSTEM_REGEX}";
NODE_MASTER_REGEX = "${NODE_MASTER_REGEX}";
</script>
----
== Inline Event Handler
Line: 13
----
<l:task icon="symbol-bar-chart-outline plugin-ionicons-api" href="#"
onclick="new BuildStatConfigForm(null).displayBuildStatConfigForm(); return false;" title="${%Create new chart}"/>
----
== Inline Event Handler
Line: 90
----
<button id="edit_#{id}" onclick="new BuildStatConfigForm('#{id}').displayBuildStatConfigForm();"
class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 94
----
<button onclick="BUILD_STAT_CONFIGS.moveBuildStat('#{id}', 'up');" id="moveUp_#{id}" class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 97
----
<button onclick="BUILD_STAT_CONFIGS.moveBuildStat('#{id}', 'down');" id="moveDown_#{id}" class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 100
----
<button onclick="deleteBuildStat('#{id}');" class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 121
----
<form name="createBuildStat_#{buildStatId}" action="#{formAction}" method="post" class="globalBuildStatsForm"
id="createBuildStat_#{buildStatId}" onsubmit="return !isDivErrorPresentInForm(this);">
----
== Inline Event Handler
Line: 127
----
<input type="text" id="#{buildStatId}_title" name="title"
value="#{buildStatTitle}" class="jenkins-input"
checkUrl="'${rootURL}/plugin/global-build-stats/checkTitle?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 136
----
<input type="number" id="#{buildStatId}_buildStatWidth" name="buildStatWidth"
size="3" value="#{buildStatWidth}" class="jenkins-input" min="100"
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatWidth?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 144
----
<input type="number" id="#{buildStatId}_buildStatHeight" name="buildStatHeight"
size="3" value="#{buildStatHeight}" class="jenkins-input" min="100"
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatHeight?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 154
----
<select id="#{buildStatId}_historicScale" class="jenkins-select__input"
name="historicScale" checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricScale?value='+escape(field.value)"
onchange="validateField(this); CURRENT_FORM.changeChartLengthUnit(this.value);">
----
== Inline Event Handler
Line: 164
----
<input type="number" id="#{buildStatId}_historicLength" name="historicLength"
size="3" value="#{historicLength}" class="jenkins-input"
checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricLength?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 179
----
<input type="radio" id="#{buildStatId}_jobFilteringType_ALL" checked="checked" name="jobFilteringType"
value="${FIELD_FILTER_ALL}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_jobNameRegex', '#{buildStatId}_jobFilter');"/>
----
== Inline Event Handler
Line: 185
----
<input type="radio" id="#{buildStatId}_jobFilteringType_REGEX" name="jobFilteringType"
value="${FIELD_FILTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_jobNameRegex', '#{buildStatId}_jobFilter');"/>
----
== Inline Event Handler
Line: 190
----
<input type="text" id="#{buildStatId}_jobNameRegex" class="jenkins-input"
disabled="true" name="jobNameRegex" size="10"
onblur="document.getElementById('#{buildStatId}_jobFilter').value=FIELD_FILTER_REGEX+'('+this.value+')';"/>
----
== Inline Event Handler
Line: 198
----
<input type="radio" id="#{buildStatId}_nodeFilteringType_ALL" checked="checked" name="nodeFilteringType"
value="${FIELD_FILTER_ALL}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_nodeNameRegex', '#{buildStatId}_nodeFilter');"/>
----
== Inline Event Handler
Line: 204
----
<input type="radio" id="#{buildStatId}_nodeFilteringType_REGEXMASTER" name="nodeFilteringType"
value="${NODE_MASTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_nodeNameRegex', '#{buildStatId}_nodeFilter');"/>
----
== Inline Event Handler
Line: 210
----
<input type="radio" id="#{buildStatId}_nodeFilteringType_REGEX" name="nodeFilteringType"
value="${FIELD_FILTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_nodeNameRegex', '#{buildStatId}_nodeFilter');"/>
----
== Inline Event Handler
Line: 215
----
<input type="text" id="#{buildStatId}_nodeNameRegex" class="jenkins-input"
disabled="true" name="nodeNameRegex" size="10"
onblur="document.getElementById('#{buildStatId}_nodeFilter').value=FIELD_FILTER_REGEX+'('+this.value+')';"/>
----
== Inline Event Handler
Line: 223
----
<input type="radio" id="#{buildStatId}_launcherFilteringType_ALL" checked="checked" name="launcherFilteringType"
value="${FIELD_FILTER_ALL}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_launcherNameRegex', '#{buildStatId}_launcherFilter');"/>
----
== Inline Event Handler
Line: 229
----
<input type="radio" id="#{buildStatId}_launcherFilteringType_REGEXSYSTEM" name="launcherFilteringType"
value="${LAUNCHER_SYSTEM_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_launcherNameRegex', '#{buildStatId}_launcherFilter');"/>
----
== Inline Event Handler
Line: 235
----
<input type="radio" id="#{buildStatId}_launcherFilteringType_REGEX" name="launcherFilteringType"
value="${FIELD_FILTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_launcherNameRegex', '#{buildStatId}_launcherFilter');"/>
----
== Inline Event Handler
Line: 240
----
<input type="text" id="#{buildStatId}_launcherNameRegex" class="jenkins-input"
disabled="true" name="launcherNameRegex" size="10"
onblur="document.getElementById('#{buildStatId}_launcherFilter').value=FIELD_FILTER_REGEX+'('+this.value+')';"/>
----
== Inline Event Handler
Line: 260
----
<select id="#{buildStatId}_yAxisChartType" class="jenkins-select__input"
name="yAxisChartType" checkUrl="'${rootURL}/plugin/global-build-stats/checkYAxisChartType?value='+escape(field.value)"
onchange="validateField(this);">
----
== Inline Event Handler
Line: 287
----
<a href="#" onclick="new BuildStatConfigForm(null).displayBuildStatConfigForm();">
----
== Inline Event Handler
Line: 325
----
<a href="#" onclick="window.location.href = ''; return false;">
----
== Inline Event Handler
Line: 329
----
<button type="button" class="jenkins-button" onclick="initializeStats();">
----
== Legacy checkUrl
Line: 129
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkTitle?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 138
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatWidth?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 146
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatHeight?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 155
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricScale?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 166
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricLength?value='+escape(field.value)"
----
== Legacy checkUrl
Line: 261
----
checkUrl="'${rootURL}/plugin/global-build-stats/checkYAxisChartType?value='+escape(field.value)"
----
== Inline Script Block
Line: 26
----
<script type="text/javascript"><![CDATA[
BUILD_STAT_CONTAINER_ID_PREFIX = "container_buildStatConfig_";
var CURRENT_FORM = null;
// Called after button "initialize stats" is clicked
function initializeStats(){
ajaxCall('link', 'recordBuildInfos', function(transport) {
document.getElementById('initializeStatsMessage').style.display = "inline";
});
}
var BUILD_STAT_CONFIGS = new BuildStatConfigs();
window.addEventListener('load', function(){
ajaxCall('link', rootURL+'/plugin/global-build-stats/api/json?depth=2', function(ret) {
var buildStat = eval('('+ret.responseText+')');
for(i=0; i<buildStat.buildStatConfigs.length; i++){
var config = buildStat.buildStatConfigs[i];
BUILD_STAT_CONFIGS.add(config);
}
});
});
]]></script>
----
== Inline Script Block
Line: 49
----
<script type="text/javascript">
CHART_LENGTH_UNITS = new Array();
<j:forEach var="historicScale" items="${it.historicScales}" varStatus="status">
CHART_LENGTH_UNITS[${status.index}] = "${historicScale}";
</j:forEach>
FIELD_FILTER_ALL = "${FIELD_FILTER_ALL}";
FIELD_FILTER_REGEX = "${FIELD_FILTER_REGEX}";
LAUNCHER_SYSTEM_REGEX = "${LAUNCHER_SYSTEM_REGEX}";
NODE_MASTER_REGEX = "${NODE_MASTER_REGEX}";
</script>
----
== Inline Event Handler
Line: 13
----
<l:task icon="symbol-bar-chart-outline plugin-ionicons-api" href="#"
onclick="new BuildStatConfigForm(null).displayBuildStatConfigForm(); return false;" title="${%Create new chart}"/>
----
== Inline Event Handler
Line: 90
----
<button id="edit_#{id}" onclick="new BuildStatConfigForm('#{id}').displayBuildStatConfigForm();"
class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 94
----
<button onclick="BUILD_STAT_CONFIGS.moveBuildStat('#{id}', 'up');" id="moveUp_#{id}" class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 97
----
<button onclick="BUILD_STAT_CONFIGS.moveBuildStat('#{id}', 'down');" id="moveDown_#{id}" class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 100
----
<button onclick="deleteBuildStat('#{id}');" class="jenkins-button jenkins-button--tertiary">
----
== Inline Event Handler
Line: 121
----
<form name="createBuildStat_#{buildStatId}" action="#{formAction}" method="post" class="globalBuildStatsForm"
id="createBuildStat_#{buildStatId}" onsubmit="return !isDivErrorPresentInForm(this);">
----
== Inline Event Handler
Line: 127
----
<input type="text" id="#{buildStatId}_title" name="title"
value="#{buildStatTitle}" class="jenkins-input"
checkUrl="'${rootURL}/plugin/global-build-stats/checkTitle?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 136
----
<input type="number" id="#{buildStatId}_buildStatWidth" name="buildStatWidth"
size="3" value="#{buildStatWidth}" class="jenkins-input" min="100"
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatWidth?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 144
----
<input type="number" id="#{buildStatId}_buildStatHeight" name="buildStatHeight"
size="3" value="#{buildStatHeight}" class="jenkins-input" min="100"
checkUrl="'${rootURL}/plugin/global-build-stats/checkBuildStatHeight?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 154
----
<select id="#{buildStatId}_historicScale" class="jenkins-select__input"
name="historicScale" checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricScale?value='+escape(field.value)"
onchange="validateField(this); CURRENT_FORM.changeChartLengthUnit(this.value);">
----
== Inline Event Handler
Line: 164
----
<input type="number" id="#{buildStatId}_historicLength" name="historicLength"
size="3" value="#{historicLength}" class="jenkins-input"
checkUrl="'${rootURL}/plugin/global-build-stats/checkHistoricLength?value='+escape(field.value)"
onblur="validateField(this);" onchange="validateField(this);"
/>
----
== Inline Event Handler
Line: 179
----
<input type="radio" id="#{buildStatId}_jobFilteringType_ALL" checked="checked" name="jobFilteringType"
value="${FIELD_FILTER_ALL}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_jobNameRegex', '#{buildStatId}_jobFilter');"/>
----
== Inline Event Handler
Line: 185
----
<input type="radio" id="#{buildStatId}_jobFilteringType_REGEX" name="jobFilteringType"
value="${FIELD_FILTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_jobNameRegex', '#{buildStatId}_jobFilter');"/>
----
== Inline Event Handler
Line: 190
----
<input type="text" id="#{buildStatId}_jobNameRegex" class="jenkins-input"
disabled="true" name="jobNameRegex" size="10"
onblur="document.getElementById('#{buildStatId}_jobFilter').value=FIELD_FILTER_REGEX+'('+this.value+')';"/>
----
== Inline Event Handler
Line: 198
----
<input type="radio" id="#{buildStatId}_nodeFilteringType_ALL" checked="checked" name="nodeFilteringType"
value="${FIELD_FILTER_ALL}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_nodeNameRegex', '#{buildStatId}_nodeFilter');"/>
----
== Inline Event Handler
Line: 204
----
<input type="radio" id="#{buildStatId}_nodeFilteringType_REGEXMASTER" name="nodeFilteringType"
value="${NODE_MASTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_nodeNameRegex', '#{buildStatId}_nodeFilter');"/>
----
== Inline Event Handler
Line: 210
----
<input type="radio" id="#{buildStatId}_nodeFilteringType_REGEX" name="nodeFilteringType"
value="${FIELD_FILTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_nodeNameRegex', '#{buildStatId}_nodeFilter');"/>
----
== Inline Event Handler
Line: 215
----
<input type="text" id="#{buildStatId}_nodeNameRegex" class="jenkins-input"
disabled="true" name="nodeNameRegex" size="10"
onblur="document.getElementById('#{buildStatId}_nodeFilter').value=FIELD_FILTER_REGEX+'('+this.value+')';"/>
----
== Inline Event Handler
Line: 223
----
<input type="radio" id="#{buildStatId}_launcherFilteringType_ALL" checked="checked" name="launcherFilteringType"
value="${FIELD_FILTER_ALL}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_launcherNameRegex', '#{buildStatId}_launcherFilter');"/>
----
== Inline Event Handler
Line: 229
----
<input type="radio" id="#{buildStatId}_launcherFilteringType_REGEXSYSTEM" name="launcherFilteringType"
value="${LAUNCHER_SYSTEM_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_launcherNameRegex', '#{buildStatId}_launcherFilter');"/>
----
== Inline Event Handler
Line: 235
----
<input type="radio" id="#{buildStatId}_launcherFilteringType_REGEX" name="launcherFilteringType"
value="${FIELD_FILTER_REGEX}" class="jenkins-radio__input"
onchange="fieldFilterTypeSelected(this.value, '#{buildStatId}_launcherNameRegex', '#{buildStatId}_launcherFilter');"/>
----
== Inline Event Handler
Line: 240
----
<input type="text" id="#{buildStatId}_launcherNameRegex" class="jenkins-input"
disabled="true" name="launcherNameRegex" size="10"
onblur="document.getElementById('#{buildStatId}_launcherFilter').value=FIELD_FILTER_REGEX+'('+this.value+')';"/>
----
== Inline Event Handler
Line: 260
----
<select id="#{buildStatId}_yAxisChartType" class="jenkins-select__input"
name="yAxisChartType" checkUrl="'${rootURL}/plugin/global-build-stats/checkYAxisChartType?value='+escape(field.value)"
onchange="validateField(this);">
----
== Inline Event Handler
Line: 287
----
<a href="#" onclick="new BuildStatConfigForm(null).displayBuildStatConfigForm();">
----
== Inline Event Handler
Line: 325
----
<a href="#" onclick="window.location.href = ''; return false;">
----
== Inline Event Handler
Line: 329
----
<button type="button" class="jenkins-button" onclick="initializeStats();">
----
Solutions
https://www.jenkins.io/doc/developer/security/csp/#inline-javascript-blocks
https://www.jenkins.io/doc/developer/security/csp/#inline-event-handlers
https://www.jenkins.io/doc/developer/security/csp/#legacy-javascript-checkurl-validation
- relates to
-
JENKINS-74850 [global-build-stats] Extract inline event handlers in hudson/plugins/global_build_stats/GlobalBuildStatsPlugin/index.jelly
-
- Closed
-
- links to