Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
528136f
Refine Add User page
janfaracik Mar 17, 2026
25ec016
Push
janfaracik Mar 17, 2026
2b5b53b
Push
janfaracik Mar 17, 2026
e2a9359
Push
janfaracik Mar 17, 2026
74dddaf
Refine
janfaracik Mar 17, 2026
b027112
Push
janfaracik Mar 17, 2026
b4d1d24
Update index.js
janfaracik Mar 17, 2026
7e80c35
Refine
janfaracik Mar 17, 2026
b00d68c
Update index.jelly
janfaracik Mar 18, 2026
d4b3c9a
Push
janfaracik Mar 20, 2026
67e2eac
Refine dialog
janfaracik Mar 20, 2026
30cf0ba
Refine
janfaracik Mar 20, 2026
73e357e
Refine
janfaracik Mar 20, 2026
3d63343
Merge branch 'master' into add-user-refine
janfaracik Mar 20, 2026
aec1284
Update _entryForm.jelly
janfaracik Mar 23, 2026
60c05d8
Merge branch 'master' into add-user-refine
janfaracik Mar 24, 2026
636fbd1
Refine dialogs
janfaracik Mar 21, 2026
15a0f2a
Remove scroll timeline animation due to lack of HTMLUnit support
janfaracik Mar 25, 2026
74ebabc
Update index.js
janfaracik Mar 29, 2026
af624ca
Update confirmationLink.jelly
janfaracik Mar 30, 2026
49dba80
Merge branch 'master' into refine-dialogs
janfaracik Mar 30, 2026
8b98dc6
Merge branch 'master' into refine-dialogs
janfaracik Apr 3, 2026
be19925
Remove lines from log recorder page
janfaracik Jan 29, 2026
510c170
Update dependency sass to v1.99.0 (#26580)
renovate[bot] Apr 4, 2026
56ba6df
Update dependency eslint to v10.2.0 (#26581)
renovate[bot] Apr 4, 2026
d2265e7
Lock file maintenance (#26579)
renovate[bot] Apr 5, 2026
f97d3a4
[maven-release-plugin] prepare release jenkins-2.558
jenkins-release-bot Apr 7, 2026
540a213
[maven-release-plugin] prepare for next development iteration
jenkins-release-bot Apr 7, 2026
15d9586
Init
janfaracik Apr 7, 2026
f0244e4
Update configure.jelly
janfaracik Apr 8, 2026
1648c43
Update index.jelly
janfaracik Apr 8, 2026
60346e7
Add wide support
janfaracik Apr 8, 2026
e966d2b
Add width
janfaracik Apr 8, 2026
1d65ad1
Merge branch 'master' into refine-dialogs
janfaracik Apr 9, 2026
708fc5b
Merge branch 'refine-dialogs' into log-recorder
janfaracik Apr 9, 2026
e11d054
Refine dialog content
janfaracik Apr 9, 2026
9d9de34
Move translations
janfaracik Apr 9, 2026
8988a30
Update settings-subpage.jelly
janfaracik Apr 9, 2026
664b13b
Merge branch 'master' into add-user-refine
janfaracik Apr 10, 2026
340d3a0
Merge branch 'master' into log-recorder
janfaracik Apr 10, 2026
5f27dae
Update index.js
janfaracik Apr 10, 2026
7833e25
Update index.js
janfaracik Apr 10, 2026
bd25910
Sync dialog code with app-bar PR
timja Apr 15, 2026
a8b08fc
Remove dead captcha code
timja Apr 15, 2026
0d55bc7
Remove blurb from resource bundles
timja Apr 15, 2026
5d05675
Fix dialog text colour
janfaracik Apr 17, 2026
7443401
Remove old email i18n
janfaracik Apr 17, 2026
0ea2286
Restore Delete button, remove overflow button
janfaracik Apr 17, 2026
618a5df
Standardise on Username
janfaracik Apr 17, 2026
ef8883c
Update index.js
janfaracik Apr 17, 2026
1347d9f
Don't disable the delete button
janfaracik Apr 17, 2026
01f4a1a
Update index.js
janfaracik Apr 17, 2026
817609d
Update index_de.properties
janfaracik Apr 17, 2026
8c45323
Remove empty i18n files
janfaracik Apr 17, 2026
c2c7409
Merge branch 'add-user-refine' into log-recorder
janfaracik Apr 18, 2026
02db12f
Update index.js
janfaracik Apr 18, 2026
7a7e2e7
Merge branch 'master' into log-recorder
janfaracik Apr 18, 2026
3da4c59
Tidy up
janfaracik Apr 18, 2026
59be046
Fix failing test + add helpers
janfaracik Apr 19, 2026
add9e31
Merge branch 'master' into log-recorder
janfaracik Apr 19, 2026
0a7bfd1
Update all.jelly
janfaracik Apr 20, 2026
09d6e63
Update _build.scss
janfaracik Apr 20, 2026
5049a3b
Merge branch 'master' into log-recorder
timja Apr 20, 2026
64e19cd
Rename System Log to Logs
janfaracik Apr 20, 2026
267c086
Update Messages.properties
janfaracik Apr 20, 2026
f846b97
Merge branch 'master' into log-recorder
janfaracik Apr 21, 2026
4a76884
Merge branch 'master' into log-recorder
MarkEWaite Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:f="/lib/form" xmlns:dd="/lib/layout/dropdowns">
<l:settings-subpage permission="${app.SYSTEM_READ}" header="${null}" noDefer="true" includeSidepanel="true">
<l:settings-subpage permission="${app.SYSTEM_READ}" header="${null}" noDefer="true" includeSidepanel="true" width="wide">
<div class="jenkins-app-bar jenkins-app-bar--sticky">
<div class="jenkins-app-bar__content">
<l:search-bar clazz="jenkins-search--app-bar"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:s="/lib/form">
<l:settings-subpage permission="${app.SYSTEM_READ}" header="${null}" noDefer="true" includeSidepanel="true">
<l:settings-subpage permission="${app.SYSTEM_READ}" header="${null}" noDefer="true" includeSidepanel="true" width="wide">
<j:set var="readOnlyMode" value="${!app.hasPermission(app.ADMINISTER)}"/>

<j:set var="noPlugins"
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/resources/hudson/PluginManager/updates.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ THE SOFTWARE.

<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:f="/lib/form">
<l:settings-subpage permission="${app.SYSTEM_READ}" header="${null}" noDefer="true" includeSidepanel="true">
<l:settings-subpage permission="${app.SYSTEM_READ}" header="${null}" noDefer="true" includeSidepanel="true" width="wide">
<j:set var="list" value="${app.updateCenter.updates}" />
<script src="${resURL}/jsbundles/components/row-selection-controller.js" type="text/javascript" defer="true" />

Expand Down
38 changes: 16 additions & 22 deletions core/src/main/resources/hudson/logging/LogRecorder/configure.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,8 @@ THE SOFTWARE.
Config page
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<l:layout permission="${app.ADMINISTER}" title="${%Configure log recorder}" type="one-column">
<l:breadcrumb title="${%Configure log recorder}" />

<l:main-panel>
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<l:settings-subpage permission="${app.ADMINISTER}" title="${%Configure log recorder}" includeBreadcrumb="true" header="${null}">
<l:app-bar title="${%Configure log recorder}">
<t:help href="https://www.jenkins.io/redirect/log-recorders" tooltip="${%Additional information on log levels}" />
</l:app-bar>
Expand All @@ -49,25 +46,22 @@ THE SOFTWARE.
help="/help/LogRecorder/logger.html">
<j:set var="instance" value="${null}" />
<f:repeatable var="instance" items="${it.loggers}" name="loggers">
<div>
<f:entry title="${%Logger}">
<f:textbox field="name" checkUrl="checkName" checkDependsOn="level" autoCompleteUrl="autoCompleteLoggerName" />
</f:entry>
<f:entry title="${%Log level}">
<div class="jenkins-select">
<select class="jenkins-select__input" name="level">
<j:forEach var="lv" items="${it.LEVELS}">
<f:option value="${lv.name}" selected="${instance.level==lv}">${lv.localizedName}</f:option>
</j:forEach>
</select>
</div>
</f:entry>
<f:repeatableDeleteButton/>
</div>
<f:entry title="${%Logger}">
<f:textbox field="name" checkUrl="checkName" checkDependsOn="level" autoCompleteUrl="autoCompleteLoggerName" />
</f:entry>
<f:entry title="${%Log level}">
<div class="jenkins-select">
<select class="jenkins-select__input" name="level">
<j:forEach var="lv" items="${it.LEVELS}">
<f:option value="${lv.name}" selected="${instance.level==lv}">${lv.localizedName}</f:option>
</j:forEach>
</select>
</div>
</f:entry>
<f:repeatableDeleteButton/>
</f:repeatable>
</f:entry>
<f:saveApplyBar/>
</f:form>
</l:main-panel>
</l:layout>
</l:settings-subpage>
</j:jelly>
16 changes: 7 additions & 9 deletions core/src/main/resources/hudson/logging/LogRecorder/index.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,9 @@ THE SOFTWARE.
Log view
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout"
xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:dd="/lib/layout/dropdowns">
<l:layout title="Log" permission="${app.SYSTEM_READ}" type="one-column">
<!-- no need for additional breadcrumb here as we're on an index page already including breadcrumb -->
<l:main-panel>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:dd="/lib/layout/dropdowns">
<l:settings-subpage title="${it.displayName}" permission="${app.SYSTEM_READ}" header="${null}" width="wide">
<!-- no need for additional breadcrumb here as we're on an index page already including breadcrumb -->
<j:set var="noLogs" value="${it.logRecords.isEmpty() and it.slaveLogRecords.isEmpty()}" />

<l:app-bar title="${it.displayName}">
Expand All @@ -39,11 +37,12 @@ THE SOFTWARE.
<form method="post" id='clear-logrecorder' action="clear">
<f:submit icon="symbol-close-circle"
value="${%Clear This Log}"
primary="false" />
primary="false"
clazz="jenkins-!-destructive-color" />
</form>
</j:if>
<a class="jenkins-button" href="configure">
Configure
${%Configure}
</a>
</l:isAdmin>
<l:overflowButton>
Expand Down Expand Up @@ -77,6 +76,5 @@ THE SOFTWARE.
<h2><a href="${rootURL}/${entry.key.url}" class="model-link">${entry.key.displayName}</a></h2>
<t:logRecords logRecords="${entry.value}"/>
</j:forEach>
</l:main-panel>
</l:layout>
</l:settings-subpage>
</j:jelly>
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@
# THE SOFTWARE.

Clear\ This\ Log=Clear this log
delete.logrecorder=Are you sure you want to delete the log recorder ‘{0}’?
delete.logrecorder=Are you sure you want to delete ‘{0}’?
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:t="/lib/hudson">
<l:layout title="${%All Jenkins Logs}" type="one-column">
<l:breadcrumb title="${%All Jenkins Logs}" />
<l:main-panel>
<l:settings-subpage title="${%All Jenkins Logs}" includeBreadcrumb="true" header="${null}" width="wide">
<l:app-bar title="${%All Jenkins Logs}">
<l:overflowButton icon="symbol-rss" text="${%Atom feed}" tooltip="${null}">
<st:include page="feeds.jelly" />
Expand All @@ -39,7 +37,7 @@ THE SOFTWARE.
<div class="jenkins-alert jenkins-alert-info">
Log messages at a level more verbose than INFO (i.e., CONFIG, FINE, FINER, FINEST) are never recorded in the Jenkins log. Use <a href=".">log recorders</a> to record these log messages.
</div>

<t:logRecords logRecords="${h.logRecords}"/>
</l:main-panel>
</l:layout>
</l:settings-subpage>
</j:jelly>
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,12 @@ THE SOFTWARE.
<l:view>
<l:app-bar title="${it.managementLink.displayName}">
<l:isAdmin>
<a href="new" class="jenkins-button jenkins-button--primary">
<button class="jenkins-button jenkins-button--primary"
data-type="dialog-opener"
data-dialog-url="newDialog">
<l:icon src="symbol-add" />
${%Add recorder}
</a>
</button>
</l:isAdmin>
<a href="levels" class="jenkins-button">
${%Log levels}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,36 +26,35 @@ THE SOFTWARE.
Show form to adjust log levels
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<l:layout title="${%Logger Configuration}" type="one-column">
<l:breadcrumb title="${%Log Levels}" />
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<l:settings-subpage title="${%Log levels}" header="${null}" includeBreadcrumb="true">
<l:app-bar title="${%Log levels}">
<t:help tooltip="${%Additional information on log levels}" href="${%url}"/>
</l:app-bar>

<l:main-panel>
<l:app-bar title="${%Logger Configuration}">
<t:help tooltip="${%Additional information on log levels}" href="${%url}"/>
</l:app-bar>
<p class="jenkins-page-description">${%defaultLoggerMsg}</p>

<table class="sortable jenkins-table" id="logLevels">
<thead>
<table class="sortable jenkins-table" id="logLevels">
<thead>
<tr>
<th>${%Name}</th>
<th>${%Level}</th>
</tr>
</thead>
<j:invokeStatic var="lm" className="java.util.logging.LogManager" method="getLogManager"/>
<j:forEach var="name" items="${h.loggerNames}">
<j:set var="logger" value="${lm.getLogger(name)}"/>
<j:if test="${logger.level != null}">
<tr>
<th>${%Name}</th>
<th>${%Level}</th>
<td>${name}</td>
<td>${logger.level}</td>
</tr>
</thead>
<j:invokeStatic var="lm" className="java.util.logging.LogManager" method="getLogManager"/>
<j:forEach var="name" items="${h.loggerNames}">
<j:set var="logger" value="${lm.getLogger(name)}"/>
<j:if test="${logger.level != null}">
<tr>
<td>${name}</td>
<td>${logger.level}</td>
</tr>
</j:if>
</j:forEach>
</table>
<p>${%defaultLoggerMsg}</p>
<l:isAdmin>
<h2>${%Adjust Levels}</h2>
</j:if>
</j:forEach>
</table>

<l:isAdmin>
<f:section title="${%Adjust Levels}">
<form action="configLogger" method="post" name="configLogger">
<f:entry>
<label class="jenkins-form-label" for="name">${%Name}</label>
Expand All @@ -82,7 +81,7 @@ THE SOFTWARE.
<f:submit value="${%Save}"/>
</f:bottomButtonBar>
</form>
</l:isAdmin>
</l:main-panel>
</l:layout>
</f:section>
</l:isAdmin>
</l:settings-subpage>
</j:jelly>

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!--
The MIT License

Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi
Copyright (c) 2026, Jan Faracik

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -22,19 +22,19 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->

<!--
Side panel for the log recorder
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:i="jelly:fmt">
<l:header />
<l:side-panel>
<l:tasks>
<l:task href="." icon="symbol-journal" title="${%Log records}"/>
<l:isAdmin>
<l:task href="configure" icon="symbol-settings" title="${%Configure}"/>
<l:delete title="${%Delete}" message="${%delete.logrecorder(it.displayName)}" />
</l:isAdmin>
</l:tasks>
</l:side-panel>
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout" xmlns:st="jelly:stapler" xmlns:f="/lib/form">
<st:setHeader name="X-Dialog-Title" value="${%Add recorder}" />

<l:ajax>
<f:form name="configSubmit" method="post" action="newLogRecorder">
<f:entry title="${%Name}">
<f:textbox name="name" checkDependsOn="name" checkUrl="checkNewName" autofocus="true" />
</f:entry>

<f:bottomButtonBar>
<f:submit value="${%Create}" />
</f:bottomButtonBar>
</f:form>
</l:ajax>
</j:jelly>

This file was deleted.

This file was deleted.

2 changes: 1 addition & 1 deletion core/src/main/resources/hudson/logging/Messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# THE SOFTWARE.

LogRecorderManager.init=Initializing log recorders
LogRecorderManager.DisplayName=System Log
LogRecorderManager.DisplayName=Logs
LogRecorderManager.LoggerNotFound=A logger named "{0}" does not exist. \
Add a logger by this name to a log recorder before attempting to configure its level.
LogRecorder.Target.Empty.Warning=Setting the Root (empty) logger to FINE or below is strongly discouraged \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ PluginsLink.incompatibleUpdatesAvailable={0} updates are incompatible with the i
SystemInfoLink.DisplayName=System Information
SystemInfoLink.Description=Displays various environmental information to assist trouble-shooting.

SystemLogLink.DisplayName=System Log
SystemLogLink.Description=System log captures output from <code>java.util.logging</code> output related to Jenkins.
SystemLogLink.DisplayName=Logs
SystemLogLink.Description=View output from <code>java.util.logging</code> related to Jenkins.

StatisticsLink.DisplayName=Load Statistics
StatisticsLink.Description=Check your resource utilization and see if you need more computers for your builds.
Expand Down
5 changes: 4 additions & 1 deletion core/src/main/resources/lib/layout/settings-subpage.jelly
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ THE SOFTWARE.
Optional, includes the sidepanel for if the Experimental Manage Jenkins is disabled.
Defaults to false if not set.
</st:attribute>
<st:attribute name="width">
Optional, sets the width of the page. Available options are 'default' or 'wide'.
</st:attribute>
</st:documentation>

<j:new className="hudson.model.ManageJenkinsAction" var="manageJenkinsAction" />
Expand Down Expand Up @@ -124,7 +127,7 @@ THE SOFTWARE.
</l:side-panel>
<l:main-panel>
<div class="app-settings-container">
<div class="app-settings-container__inner">
<div class="app-settings-container__inner ${attrs.width eq 'wide' ? 'app-settings-container__inner--wide' : ''}">
<j:if test="${!attrs.containsKey('header')}">
<l:app-bar title="${pageTitle}" />
<j:if test="${!empty(description)}">
Expand Down
Loading
Loading