mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-11 19:16:42 +00:00
[JENKINS-68286] Allow extra classes with <layout:icon> (#6510)
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
This commit is contained in:
1 parent
db743e7e8d
commit
0f90eba886
3 files changed
+55
-7
No files matched your search
@@ -2293,12 +2293,17 @@ public class Functions {
|
||||
return null;
|
||||
}
|
||||
|
||||
StaplerRequest currentRequest = Stapler.getCurrentRequest();
|
||||
currentRequest.getWebApp().getDispatchValidator().allowDispatch(currentRequest, Stapler.getCurrentResponse());
|
||||
Icon iconMetadata = IconSet.icons.getIconByClassSpec(iconGuess);
|
||||
|
||||
// `iconGuess` must be class names if it contains a whitespace.
|
||||
// It may contains extra css classes unrelated to icons.
|
||||
// Filter classes with `icon-` prefix.
|
||||
if (iconMetadata == null && iconGuess.contains(" ")) {
|
||||
iconMetadata = IconSet.icons.getIconByClassSpec(filterIconNameClasses(iconGuess));
|
||||
}
|
||||
|
||||
if (iconMetadata == null) {
|
||||
// Icon could be provided as a simple iconFileName e.g. "settings.png"
|
||||
// Icon could be provided as a simple iconFileName e.g. "help.svg"
|
||||
iconMetadata = IconSet.icons.getIconByClassSpec(IconSet.toNormalizedIconNameClass(iconGuess) + " icon-md");
|
||||
}
|
||||
|
||||
@@ -2310,6 +2315,12 @@ public class Functions {
|
||||
return iconMetadata;
|
||||
}
|
||||
|
||||
private static @NonNull String filterIconNameClasses(@NonNull String classNames) {
|
||||
return Arrays.stream(StringUtils.split(classNames, ' '))
|
||||
.filter(className -> className.startsWith("icon-"))
|
||||
.collect(Collectors.joining(" "));
|
||||
}
|
||||
|
||||
@Restricted(NoExternalUse.class)
|
||||
public static String extractPluginNameFromIconSrc(String iconSrc) {
|
||||
if (iconSrc == null) {
|
||||
|
||||
Reference in new issue
Block a user