diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index b279fd88413b..5e6a69690c76 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -2322,18 +2322,7 @@ public static String tryGetIconPath(String iconGuess, JellyContext context) { StaplerRequest currentRequest = Stapler.getCurrentRequest(); currentRequest.getWebApp().getDispatchValidator().allowDispatch(currentRequest, Stapler.getCurrentResponse()); String rootURL = currentRequest.getContextPath(); - Icon iconMetadata = IconSet.icons.getIconByClassSpec(iconGuess); - - if (iconMetadata == null) { - // Icon could be provided as a simple iconFileName e.g. "settings.png" - iconMetadata = IconSet.icons.getIconByClassSpec(IconSet.toNormalizedIconNameClass(iconGuess) + " icon-md"); - } - - if (iconMetadata == null) { - // Icon could be provided as an absolute iconFileName e.g. "/plugin/foo/abc.png" - iconMetadata = IconSet.icons.getIconByUrl(iconGuess); - } - + Icon iconMetadata = tryGetIcon(iconGuess, context); String iconSource = null; if (iconMetadata != null) { diff --git a/core/src/main/java/org/jenkins/ui/icon/IconType.java b/core/src/main/java/org/jenkins/ui/icon/IconType.java index 0757d1d6a817..b2e9c4fceeb6 100644 --- a/core/src/main/java/org/jenkins/ui/icon/IconType.java +++ b/core/src/main/java/org/jenkins/ui/icon/IconType.java @@ -24,8 +24,6 @@ package org.jenkins.ui.icon; -import jnr.ffi.annotations.Out; - /** * Icon type. * diff --git a/core/src/main/resources/lib/layout/breadcrumbs.js b/core/src/main/resources/lib/layout/breadcrumbs.js index 98aba574d07f..f84037ae9722 100644 --- a/core/src/main/resources/lib/layout/breadcrumbs.js +++ b/core/src/main/resources/lib/layout/breadcrumbs.js @@ -23,8 +23,13 @@ var breadcrumbs = (function() { var logger = function() {}; // logger = function() { console.log.apply(console,arguments) }; // uncomment this line to enable logging - function makeMenuHtml(icon,displayName) { + function makeMenuHtml(icon, iconXml, displayName) { var displaynameSpan = '' + displayName + ''; + + if (iconXml != null) { + return iconXml + displaynameSpan; + } + if (icon === null) return "" + displaynameSpan; // TODO: move this to the API response in a clean way @@ -213,9 +218,9 @@ var breadcrumbs = (function() { var a = x.responseText.evalJSON().items; function fillMenuItem(e) { if (e.header) { - e.text = makeMenuHtml(e.icon, "" + e.displayName + ""); + e.text = makeMenuHtml(e.icon, e.iconXml, "" + e.displayName + ""); } else { - e.text = makeMenuHtml(e.icon, e.displayName); + e.text = makeMenuHtml(e.icon, e.iconXml, e.displayName); } if (e.subMenu!=null) e.subMenu = {id:"submenu"+(iota++), itemdata:e.subMenu.items.each(fillMenuItem)}; @@ -287,7 +292,7 @@ var breadcrumbs = (function() { * @return {breadcrumbs.MenuItem} */ "add" : function (url,icon,displayName) { - this.items.push({ url:url, text:makeMenuHtml(icon,displayName) }); + this.items.push({ url:url, text:makeMenuHtml(icon, null, displayName) }); return this; } }; diff --git a/war/src/main/less/base/yui-compatibility.less b/war/src/main/less/base/yui-compatibility.less index 655054472655..7f8e97a1a5ff 100644 --- a/war/src/main/less/base/yui-compatibility.less +++ b/war/src/main/less/base/yui-compatibility.less @@ -161,6 +161,13 @@ div.yahooTree td { #jenkins .yuimenuitem { font-size: var(--font-size-xs); padding: 3px; + + svg, + img { + width: 1.2rem; + height: 1.2rem; + margin: 0.25rem 0.5rem 0.25rem 0; + } } #jenkins .yuimenuitem,