Skip to content
Permalink
Browse files

[JENKINS-43786] Overhaul of Manage Jenkins page (#2857)

* [JENKINS-43786] Initial source code modifications

* [JENKINS-43786] Adding a customized Bootstrap version and some messages were adapted

* [JENKINS-43786] Some Monitors included in the core have been adapted

* [JENKINS-43786] Reverting an unexisting typo

* [JENKINS-43786] Applying final styles

* [JENKINS-43786] Addressing more use cases

* [JENKINS-43786] Revisiting how the buttons are shown

* [JENKINS-43786] Adjustments in the administrative monitor pop-up

* [JENKINS-43786] Added more use cases related with administrative messages

* [JENKINS-43786] Adapted the Administrative Monitors provided by Jenkins core

* [JENKINS-43786] Addressed the @daniel-beck's review

* [JENKINS-43786] Wrong indent

* [JENKINS-43786] Better semantic HTML

* [JENKINS-43786] Better semantic HTML

* [JENKINS-43786] Applying the same criteria for listing items

* [JENKINS-43786] Adapted tests

* [JENKINS-43786] Removing redirect links in the administrative monitor descriptions

* [JENKINS-43786] Adapted Administrative Monitor

* [JENKINS-43786] Reverted Redirect URLs

* [JENKINS-43786] Applying the same code style

* [JENKINS-43786] Applying the same code style

* [JENKINS-43786] Apply a common HTML markup to the Administrative Monitors in core

* [JENKINS-43786] One more Administrative Monitor updated

* [JENKINS-43786] Polishing some details

* [JENKINS-43786] Deprecating CSS Styles

* [JENKINS-43786] We are ready for deprecating anything

* [JENKINS-43786] We are ready for deprecating anything

* [JENKINS-43786] Details
  • Loading branch information
recena authored and oleg-nenashev committed Jan 21, 2018
1 parent 0311b2d commit 6f2769e69ae23114f381cd095712bfa33ced91d2
Showing with 1,798 additions and 258 deletions.
  1. +7 −7 core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/message.jelly
  2. +1 −1 core/src/main/resources/hudson/PluginManager/PluginCycleDependenciesMonitor/message.properties
  3. +7 −7 core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/message.jelly
  4. +1 −1 core/src/main/resources/hudson/PluginManager/PluginUpdateMonitor/message.properties
  5. +14 −19 core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/message.jelly
  6. +1 −1 core/src/main/resources/hudson/PluginWrapper/PluginWrapperAdministrativeMonitor/message.properties
  7. +8 −10 core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message.jelly
  8. +1 −1 core/src/main/resources/hudson/diagnosis/HudsonHomeDiskUsageMonitor/message.properties
  9. +8 −10 core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message.jelly
  10. +1 −1 core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message.properties
  11. +2 −4 core/src/main/resources/hudson/diagnosis/OldDataMonitor/message.jelly
  12. +2 −2 core/src/main/resources/hudson/diagnosis/ReverseProxySetupMonitor/message.jelly
  13. +4 −6 core/src/main/resources/hudson/diagnosis/TooManyJobsButNoView/message.jelly
  14. +9 −9 core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.jelly
  15. +3 −3 core/src/main/resources/hudson/node_monitors/MonitorMarkedNodeOffline/message.jelly
  16. +2 −2 core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationCompleteNotice/message.jelly
  17. +1 −1 core/src/main/resources/hudson/os/solaris/ZFSInstaller/MigrationFailedNotice/message.jelly
  18. +4 −6 core/src/main/resources/hudson/os/solaris/ZFSInstaller/message.jelly
  19. +5 −3 core/src/main/resources/hudson/triggers/SCMTrigger/AdministrativeMonitorImpl/message.jelly
  20. +1 −1 core/src/main/resources/hudson/util/AdministrativeError/message.jelly
  21. +7 −9 core/src/main/resources/jenkins/CLI/WarnWhenEnabled/message.jelly
  22. +1 −1 core/src/main/resources/jenkins/CLI/WarnWhenEnabled/message.properties
  23. +1 −1 core/src/main/resources/jenkins/diagnosis/HsErrPidList/message.jelly
  24. +3 −4 core/src/main/resources/jenkins/diagnostics/CompletedInitializationMonitor/message.jelly
  25. +4 −6 core/src/main/resources/jenkins/diagnostics/SecurityIsOffMonitor/message.jelly
  26. +21 −3 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css
  27. +1 −1 core/src/main/resources/jenkins/management/Messages.properties
  28. +3 −3 core/src/main/resources/jenkins/management/PluginsLink/info.jelly
  29. +1 −0 core/src/main/resources/jenkins/management/PluginsLink/info.properties
  30. +6 −6 core/src/main/resources/jenkins/model/DownloadSettings/Warning/message.jelly
  31. +6 −8 ...src/main/resources/jenkins/model/Jenkins/EnforceSlaveAgentPortAdministrativeMonitor/message.jelly
  32. +1 −1 ...ain/resources/jenkins/model/Jenkins/EnforceSlaveAgentPortAdministrativeMonitor/message.properties
  33. +8 −8 core/src/main/resources/jenkins/model/Jenkins/downgrade.jelly
  34. +53 −39 core/src/main/resources/jenkins/model/Jenkins/manage.jelly
  35. +13 −14 core/src/main/resources/jenkins/security/RekeySecretAdminMonitor/message.groovy
  36. +4 −4 core/src/main/resources/jenkins/security/RekeySecretAdminMonitor/message.properties
  37. +23 −27 core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message.groovy
  38. +4 −4 core/src/main/resources/jenkins/security/UpdateSiteWarningsMonitor/message.properties
  39. +5 −7 core/src/main/resources/jenkins/security/s2m/AdminCallableMonitor/message.jelly
  40. +5 −7 core/src/main/resources/jenkins/security/s2m/MasterKillSwitchWarning/message.jelly
  41. +1 −1 core/src/main/resources/jenkins/security/s2m/MasterKillSwitchWarning/message.properties
  42. +4 −4 core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.jelly
  43. +1 −1 core/src/main/resources/jenkins/slaves/DeprecatedAgentProtocolMonitor/message.properties
  44. +1 −1 test/src/test/java/hudson/model/ManagementLinkTest.java
  45. +389 −0 war/src/main/webapp/bootstrap/config.json
  46. +596 −0 war/src/main/webapp/bootstrap/css/bootstrap-theme.css
  47. +14 −0 war/src/main/webapp/bootstrap/css/bootstrap-theme.min.css
  48. +416 −0 war/src/main/webapp/bootstrap/css/bootstrap.css
  49. +14 −0 war/src/main/webapp/bootstrap/css/bootstrap.min.css
  50. +110 −3 war/src/main/webapp/css/style.css
@@ -24,12 +24,12 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="error">
${%PluginCycles}
<ul>
<j:forEach var="p" items="${it.pluginsWithCycle}">
<li><j:out value="${p.longName} v${p.version}"/></li>
</j:forEach>
</ul>
<div class="alert alert-danger">
<dl>
<dt>${%PluginCycles}</dt>
<j:forEach var="p" items="${it.pluginsWithCycle}">
<dd><j:out value="${p.longName} v${p.version}"/></dd>
</j:forEach>
</dl>
</div>
</j:jelly>
@@ -21,4 +21,4 @@
# THE SOFTWARE.


PluginCycles=The following plugins are deactivated because of cyclic dependencies, most likely you can resolve the issue by updating these to a newer version.
PluginCycles=The following plugins are deactivated because of cyclic dependencies, most likely you can resolve the issue by updating these to a newer version
@@ -24,12 +24,12 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="error">
${%RequiredPluginUpdates}
<ul>
<j:forEach var="p" items="${it.pluginsToBeUpdated}">
<li><j:out value="${p.pluginName}"/> — <j:out value="${p.message}"/></li>
</j:forEach>
</ul>
<div class="alert alert-danger">
<dl>
<dt>${%RequiredPluginUpdates}</dt>
<j:forEach var="p" items="${it.pluginsToBeUpdated}">
<dd><j:out value="${p.pluginName}"/> — <j:out value="${p.message}"/></dd>
</j:forEach>
</dl>
</div>
</j:jelly>
@@ -21,4 +21,4 @@
# THE SOFTWARE.


RequiredPluginUpdates=The following plugins require an update.
RequiredPluginUpdates=The following plugins require an update
@@ -1,22 +1,17 @@
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<div class="error">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<div style="float:right">
<f:submit name="correct" value="${%Correct}"/>
</div>
</form>
${%Dependency errors}:
<ul>
<j:forEach items="${it.plugins}" var="plugin">
<li>${plugin.longName} v${plugin.version}
<ul>
<j:forEach items="${plugin.dependencyErrors}" var="d">
<li>${d}</li>
</j:forEach>
</ul>
</li>
</j:forEach>
</ul>
</div>
<div class="alert alert-danger" role="alert">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<f:submit name="correct" value="${%Correct}"/>
</form>
${%Dependency errors}
<j:forEach items="${it.plugins}" var="plugin">
<dl>
<dt>${plugin.longName} v${plugin.version}</dt>
<j:forEach items="${plugin.dependencyErrors}" var="d">
<dd>${d}</dd>
</j:forEach>
</dl>
</j:forEach>
</div>
</j:jelly>
@@ -19,4 +19,4 @@
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Dependency\ errors=There are dependency errors loading some plugins
Dependency\ errors=There are dependency errors loading some plugins.
@@ -24,13 +24,11 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<div style="float:right">
<f:submit name="yes" value="${%Tell me more}"/>
<f:submit name="no" value="${%Dismiss}"/>
</div>
${%blurb(app.rootDir)}
</form>
</div>
</j:jelly>
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<f:submit name="yes" value="${%Tell me more}"/>
<f:submit name="no" value="${%Dismiss}"/>
</form>
${%blurb(app.rootDir)}
</div>
</j:jelly>
@@ -1 +1 @@
blurb=Your Jenkins data directory "{0}" (AKA <tt>JENKINS_HOME</tt>) is almost full. You should act on it before it gets completely full.
blurb=Your Jenkins data directory <code>{0}</code> (AKA <code>JENKINS_HOME</code>) is almost full. You should act on it before it gets completely full.
@@ -24,14 +24,12 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="error">
${%blurb}
<ul>
<j:forEach var="d" items="${it.problems}">
<li>
${%problem(d, d.displayName, app.pluginManager.whichPlugin(d.getClass()))}
</li>
</j:forEach>
</ul>
</div>
<div class="alert alert-danger">
<dl>
<dt>${%blurb}</dt>
<j:forEach var="d" items="${it.problems}">
<dd>${%problem(d, d.displayName, app.pluginManager.whichPlugin(d.getClass()))}</dd>
</j:forEach>
</dl>
</div>
</j:jelly>
@@ -1,3 +1,3 @@
blurb=The following extensions have no ID value and therefore likely cause a problem. Please upgrade these plugins if they are not the latest, \
and if they are the latest, please file a bug so that we can fix them.
and if they are the latest, please file a bug so that we can fix them
problem=Descriptor {0} from plugin {2} with display name {1}
@@ -24,13 +24,11 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
${%You have data stored in an older format and/or unreadable data.}
<st:nbsp/>
<st:nbsp/>
<f:submit name="yes" value="${%Manage}"/>
<f:submit name="no" value="${%Dismiss}"/>
</form>
${%You have data stored in an older format and/or unreadable data.}
</div>
</j:jelly>
@@ -38,11 +38,11 @@ THE SOFTWARE.
}
);
</script>
<div class="error" id="redirect-error" style="display:none">
<div id="redirect-error" class="alert alert-danger" style="display:none">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
${%blurb}
<f:submit name="yes" value="${%More Info}"/>
<f:submit name="no" value="${%Dismiss}"/>
</form>
${%blurb}
</div>
</j:jelly>
@@ -24,13 +24,11 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<div style="float:right">
<f:submit name="yes" value="${%Create a view now}"/>
<f:submit name="no" value="${%Dismiss}"/>
</div>
${%blurb}
<f:submit name="yes" value="${%Create a view now}"/>
<f:submit name="no" value="${%Dismiss}"/>
</form>
${%blurb}
</div>
</j:jelly>
@@ -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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<div class="alert alert-info">
<j:set var="ucData" value="${it.data}" />
<j:set var="upJob" value="${app.updateCenter.hudsonJob}" />
<j:choose>
@@ -40,23 +40,23 @@ THE SOFTWARE.
</j:choose>
</j:when>
<j:when test="${upJob!=null and upJob.error != null}">
${%UpgradeFailed(ucData.core.version,upJob.errorMessage,rootURL+'/updateCenter/')}
<j:if test="${ucData.canUpgrade()}">
<form method="post" action="${rootURL}/updateCenter/upgrade">
${%UpgradeFailed(ucData.core.version,upJob.errorMessage,rootURL+'/updateCenter/')}
<j:if test="${ucData.canUpgrade()}">
<f:submit value="${%Retry}"/>
</j:if>
<f:submit value="${%Retry}"/>
</form>
</j:if>
</j:when>
<j:when test="${upJob!=null}">
${%UpgradeProgress(ucData.core.version,rootURL+'/updateCenter/')}
</j:when>
<j:otherwise>
<form method="post" action="${rootURL}/updateCenter/upgrade">
${%NewVersionAvailable(ucData.core.version,ucData.core.url)}
<j:if test="${ucData.canUpgrade()}">
<f:submit value="${%Or Upgrade Automatically}"/>
</j:if>
<j:if test="${ucData.canUpgrade()}">
<form method="post" action="${rootURL}/updateCenter/upgrade">
<f:submit value="${%Or Upgrade Automatically}"/>
</form>
</j:if>
</j:otherwise>
</j:choose>
</div>
@@ -24,10 +24,10 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/disable">
${%blurb(rootURL)}
<f:submit value="${%Dismiss}"/>
</form>
${%blurb(rootURL)}
</div>
</j:jelly>
</j:jelly>
@@ -24,10 +24,10 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="info">
<div class="alert alert-info">
<form method="post" action="${rootURL}/${it.url}/disable">
${%Data was successfully migrated to ZFS.}
<f:submit value="${%OK}"/>
</form>
${%Data was successfully migrated to ZFS.}
</div>
</j:jelly>
@@ -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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="error">
<div class="alert alert-danger">
${%ZFS migration failed.}
<a href="${rootURL}/${it.url}/">${%See the log for more details}</a>.
</div>
@@ -24,13 +24,11 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/act">
<p>${%blurb}</p>
<div style="margin-left:2em">
<f:submit name="y" value="${%Yes, please}"/>
<f:submit name="n" value="${%No, thank you}"/>
</div>
<f:submit name="y" value="${%Yes, please}"/>
<f:submit name="n" value="${%No, thank you}"/>
</form>
${%blurb}
</div>
</j:jelly>
@@ -23,6 +23,8 @@ THE SOFTWARE.
-->

<?jelly escape-by-default='true'?>
<div class='warning'>
${%blurb(rootURL)}
</div>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:t="/lib/hudson">
<div class="alert alert-warning">
${%blurb(rootURL)}
</div>
</j:jelly>
@@ -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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="error">
<div class="alert alert-danger">
<j:out value="${it.message}"/>
<a href="${rootURL}/${it.url}/">${%See the log for more details}</a>.
</div>
@@ -25,13 +25,11 @@ THE SOFTWARE.

<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<div class="warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<div style="float:right">
<f:submit name="yes" value="${%Disable CLI over Remoting}"/>
<f:submit name="no" value="${%Dismiss}"/>
</div>
${%blurb}
</form>
</div>
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<f:submit name="yes" value="${%Disable CLI over Remoting}"/>
<f:submit name="no" value="${%Dismiss}"/>
</form>
${%blurb}
</div>
</j:jelly>
@@ -23,4 +23,4 @@
blurb=\
Allowing Jenkins CLI to work in <code>-remoting</code> mode is considered dangerous and usually unnecessary. \
You are advised to disable this mode. \
Please refer to the <a href="https://jenkins.io/doc/book/managing/cli/">CLI documentation</a> for details.
Please refer to the <a href="https://jenkins.io/doc/book/managing/cli/" target="_blank">CLI documentation</a> for details.
@@ -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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="error">
<div class="alert alert-danger">
${%blurb(rootURL+'/'+it.url)}
</div>
</j:jelly>
@@ -1,11 +1,10 @@
<?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">
<div class="warning">
<b>${%Warning!}</b>
<div class="alert alert-warning">
${%blurb(app.initLevel)}
${%Example: usage of} <code>@Initializer(after = InitMilestone.COMPLETED)</code> ${%in a plugin}
(<a href="https://jenkins.io/redirect/troubleshooting/initialization-not-completed">${%See documentation}</a>).
${%Please} <a href="https://jenkins.io/redirect/report-an-issue">${%report a bug}</a> ${%in the Jenkins bugtracker}.
(<a href="https://jenkins.io/redirect/troubleshooting/initialization-not-completed" target="_blank">${%See documentation}</a>).
${%Please} <a href="https://jenkins.io/redirect/report-an-issue" target="_blank">${%report a bug}</a> ${%in the Jenkins bugtracker}.
<!--TODO: Nice2have: cause diagnostics-->
<!-- FIXME TODO XXX i18n does not take into account different sentence structure, rewrite with arguments -->
</div>
@@ -24,13 +24,11 @@ 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:t="/lib/hudson" xmlns:f="/lib/form">
<div class="warning">
<div class="alert alert-warning">
<form method="post" action="${rootURL}/${it.url}/act" name="${it.id}">
<div style="float:right">
<f:submit name="yes" value="${%Setup Security}"/>
<f:submit name="no" value="${%Dismiss}"/>
</div>
${%blurb}
<f:submit name="yes" value="${%Setup Security}"/>
<f:submit name="no" value="${%Dismiss}"/>
</form>
${%blurb}
</div>
</j:jelly>

0 comments on commit 6f2769e

Please sign in to comment.
You can’t perform that action at this time.