From 6f3c326ed6fac5888bf603744840991427bc5b3f Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Mon, 16 Mar 2020 13:27:08 +0100 Subject: [PATCH 1/2] Add section titles to Manage Jenkins context menu --- .../model/ModelObjectWithContextMenu.java | 21 +++++++++++++++++++ .../jenkins/model/Jenkins/manage.jelly | 1 + .../main/resources/lib/layout/breadcrumbs.css | 4 ++++ .../main/resources/lib/layout/breadcrumbs.js | 6 +++++- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java b/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java index e20e71289c..2c211bdfb8 100644 --- a/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java +++ b/core/src/main/java/jenkins/model/ModelObjectWithContextMenu.java @@ -14,6 +14,8 @@ import org.apache.commons.jelly.JellyException; import org.apache.commons.jelly.JellyTagException; import org.apache.commons.jelly.Script; import org.apache.commons.jelly.XMLOutput; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; @@ -128,6 +130,18 @@ public interface ModelObjectWithContextMenu extends ModelObject { return this; } + /** + * Add a header row (no icon, no URL, rendered in header style). + * + * @since TODO + */ + @Restricted(DoNotUse.class) // manage.jelly only + public ContextMenu addHeader(String title) { + final MenuItem item = new MenuItem().withDisplayName(title); + item.header = true; + return add(item); + } + /** * Adds a manually constructed {@link MenuItem} * @@ -259,6 +273,13 @@ public interface ModelObjectWithContextMenu extends ModelObject { */ @Exported public boolean requiresConfirmation; + + /** + * True to display this item as a section header. + * @since TODO + */ + @Exported public boolean header; + /** * If this is a submenu, definition of subitems. */ diff --git a/core/src/main/resources/jenkins/model/Jenkins/manage.jelly b/core/src/main/resources/jenkins/model/Jenkins/manage.jelly index d290e210d2..bddc021d37 100644 --- a/core/src/main/resources/jenkins/model/Jenkins/manage.jelly +++ b/core/src/main/resources/jenkins/model/Jenkins/manage.jelly @@ -47,6 +47,7 @@ THE SOFTWARE. + ${taskTags!=null and attrs.contextMenu!='false' ? taskTags.addHeader(category.key.label) : null}

${category.key.label}

diff --git a/core/src/main/resources/lib/layout/breadcrumbs.css b/core/src/main/resources/lib/layout/breadcrumbs.css index 38e5a85a2f..4f46faa3b8 100644 --- a/core/src/main/resources/lib/layout/breadcrumbs.css +++ b/core/src/main/resources/lib/layout/breadcrumbs.css @@ -126,3 +126,7 @@ A.model-link.inside, #breadcrumbs A.inside {/* additional 'inside' class allows pre-allocation of the context menu space */ padding-right: 16px; } + +#breadcrumb-menu .header { + font-weight: bold; +} diff --git a/core/src/main/resources/lib/layout/breadcrumbs.js b/core/src/main/resources/lib/layout/breadcrumbs.js index adbebc8435..196ac75473 100644 --- a/core/src/main/resources/lib/layout/breadcrumbs.js +++ b/core/src/main/resources/lib/layout/breadcrumbs.js @@ -203,7 +203,11 @@ var breadcrumbs = (function() { onComplete:function (x) { var a = x.responseText.evalJSON().items; function fillMenuItem(e) { - e.text = makeMenuHtml(e.icon, e.displayName); + if (e.header) { + e.text = makeMenuHtml(e.icon, "" + e.displayName + ""); + } else { + e.text = makeMenuHtml(e.icon, e.displayName); + } if (e.subMenu!=null) e.subMenu = {id:"submenu"+(iota++), itemdata:e.subMenu.items.each(fillMenuItem)}; if (e.requiresConfirmation) { From 1f2ad7129bfc87fccf713ecce95b148daee5776e Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Mon, 16 Mar 2020 14:02:29 +0100 Subject: [PATCH 2/2] Larger font size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Félix Queiruga --- core/src/main/resources/lib/layout/breadcrumbs.css | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/resources/lib/layout/breadcrumbs.css b/core/src/main/resources/lib/layout/breadcrumbs.css index 4f46faa3b8..b305e1c7c6 100644 --- a/core/src/main/resources/lib/layout/breadcrumbs.css +++ b/core/src/main/resources/lib/layout/breadcrumbs.css @@ -129,4 +129,5 @@ A.model-link.inside, #breadcrumbs A.inside {/* additional 'inside' class allows #breadcrumb-menu .header { font-weight: bold; + font-size: 0.875rem; }