From a345163f0c1086cf78145a767f2a76890bf7010a Mon Sep 17 00:00:00 2001
From: strangelookingnerd
<49242855+strangelookingnerd@users.noreply.github.com>
Date: Sun, 13 Oct 2024 13:24:57 +0200
Subject: [PATCH] Add IconColum
---
.../main/java/hudson/views/IconColumn.java | 52 +++++++++++++++++++
.../hudson/views/IconColumn/column.jelly | 33 ++++++++++++
.../views/IconColumn/columnHeader.jelly | 28 ++++++++++
.../hudson/views/Messages.properties | 1 +
4 files changed, 114 insertions(+)
create mode 100644 core/src/main/java/hudson/views/IconColumn.java
create mode 100644 core/src/main/resources/hudson/views/IconColumn/column.jelly
create mode 100644 core/src/main/resources/hudson/views/IconColumn/columnHeader.jelly
diff --git a/core/src/main/java/hudson/views/IconColumn.java b/core/src/main/java/hudson/views/IconColumn.java
new file mode 100644
index 0000000000000..27aa2b598ea18
--- /dev/null
+++ b/core/src/main/java/hudson/views/IconColumn.java
@@ -0,0 +1,52 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Martin Eigenbrodt
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * 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.
+ */
+
+package hudson.views;
+
+import edu.umd.cs.findbugs.annotations.NonNull;
+import hudson.Extension;
+import hudson.model.StatusIcon;
+import org.jenkinsci.Symbol;
+import org.kohsuke.stapler.DataBoundConstructor;
+
+/**
+ * Shows the icon for an item. Default being the items type icon.
+ *
+ * @see StatusIcon
+ */
+public class IconColumn extends ListViewColumn {
+ @DataBoundConstructor
+ public IconColumn() {
+ }
+
+ @Extension(ordinal = DEFAULT_COLUMNS_ORDINAL_ICON_START - 1) @Symbol("icon")
+ public static class DescriptorImpl extends ListViewColumnDescriptor {
+ @NonNull
+ @Override
+ public String getDisplayName() {
+ return Messages.IconColumn_DisplayName();
+ }
+ }
+
+}
diff --git a/core/src/main/resources/hudson/views/IconColumn/column.jelly b/core/src/main/resources/hudson/views/IconColumn/column.jelly
new file mode 100644
index 0000000000000..64d859d3c19b1
--- /dev/null
+++ b/core/src/main/resources/hudson/views/IconColumn/column.jelly
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+ |
+
\ No newline at end of file
diff --git a/core/src/main/resources/hudson/views/IconColumn/columnHeader.jelly b/core/src/main/resources/hudson/views/IconColumn/columnHeader.jelly
new file mode 100644
index 0000000000000..9fde20329faa8
--- /dev/null
+++ b/core/src/main/resources/hudson/views/IconColumn/columnHeader.jelly
@@ -0,0 +1,28 @@
+
+
+
+
+ ${%I} |
+
\ No newline at end of file
diff --git a/core/src/main/resources/hudson/views/Messages.properties b/core/src/main/resources/hudson/views/Messages.properties
index 1afb3a59390b9..cdf0bb3dceaaa 100644
--- a/core/src/main/resources/hudson/views/Messages.properties
+++ b/core/src/main/resources/hudson/views/Messages.properties
@@ -21,6 +21,7 @@
# THE SOFTWARE.
BuildButtonColumn.DisplayName=Build Button
+IconColumn.DisplayName=Icon
JobColumn.DisplayName=Name
LastDurationColumn.DisplayName=Last Duration
LastFailureColumn.DisplayName=Last Failure