From 79c1280d517bbb22705eb0dcfd8a2a2cca1fdd6f Mon Sep 17 00:00:00 2001
From: Jan Faracik <43062514+janfaracik@users.noreply.github.com>
Date: Thu, 30 Jan 2025 18:36:28 +0000
Subject: [PATCH] Tidy up

---
 .../jenkins/model/navigation/UserAction.java  |  20 ++
 .../footer.jelly                              |  71 -------
 .../footer.properties                         |   2 -
 .../footer_bg.properties                      |  27 ---
 .../footer_de.properties                      |  24 ---
 .../footer_fr.properties                      |   2 -
 .../footer_it.properties                      |  25 ---
 .../footer_pl.properties                      |  24 ---
 .../footer_pt_BR.properties                   |  24 ---
 .../footer_sv_SE.properties                   |   2 -
 .../footer_tr.properties                      |  25 ---
 .../footer_zh_TW.properties                   |   2 -
 .../resources.css                             | 184 ------------------
 .../resources.js                              | 128 ------------
 .../navigation/UserAction/jumplist.jelly      |  17 +-
 15 files changed, 31 insertions(+), 546 deletions(-)
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.jelly
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_de.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_fr.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_it.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pl.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pt_BR.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_sv_SE.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_tr.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_zh_TW.properties
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css
 delete mode 100644 core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.js

diff --git a/core/src/main/java/jenkins/model/navigation/UserAction.java b/core/src/main/java/jenkins/model/navigation/UserAction.java
index 96f33db95220..c10aa6356ca8 100644
--- a/core/src/main/java/jenkins/model/navigation/UserAction.java
+++ b/core/src/main/java/jenkins/model/navigation/UserAction.java
@@ -27,11 +27,17 @@
 import static hudson.Functions.getAvatar;
 
 import hudson.Extension;
+import hudson.model.Action;
 import hudson.model.RootAction;
 import hudson.model.User;
 import org.kohsuke.accmod.Restricted;
 import org.kohsuke.accmod.restrictions.NoExternalUse;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
 /**
  * TODO
  */
@@ -69,4 +75,18 @@ public String getUrlName() {
     public User getUser() {
         return User.current();
     }
+
+    @Restricted(NoExternalUse.class)
+    public List<Action> getActions() {
+        User current = User.current();
+
+        if (User.current() == null) {
+            return null;
+        }
+
+        List<Action> actions = new ArrayList<>();
+        actions.addAll(current.getPropertyActions());
+        actions.addAll(current.getTransientActions());
+        return Collections.unmodifiableList(actions);
+    }
 }
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.jelly b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.jelly
deleted file mode 100644
index 933aa774f50f..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.jelly
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--
-The MIT License
-
-Copyright (c) 2016, Daniel Beck, Keith Zantow, CloudBees, Inc.
-
-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.
--->
-<?jelly escape-by-default='true'?>
-<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout">
-<!--    <j:set var="activeMonitors" value="${it.getMonitorsToDisplay()}"/>-->
-
-<!--    <j:if test="${activeMonitors != null and activeMonitors.size() > 0}">-->
-<!--        <st:adjunct includes="jenkins.management.AdministrativeMonitorsDecorator.resources"/>-->
-
-<!--        <j:set var="activeNonSecurityAM" value="${it.filterNonSecurityAdministrativeMonitors(activeMonitors)}" />-->
-<!--        <j:set var="activeNonSecurityAMCount" value="${activeNonSecurityAM.size()}" />-->
-<!--        <j:set var="activeSecurityAM" value="${it.filterSecurityAdministrativeMonitors(activeMonitors)}" />-->
-<!--        <j:set var="activeSecurityAMCount" value="${activeSecurityAM.size()}" />-->
-
-<!--        <div id="visible-am-container" class="am-container">-->
-<!--            <j:if test="${activeNonSecurityAMCount > 0}">-->
-<!--                <a id="visible-am-button"-->
-<!--                   class="am-button"-->
-<!--                   href="#"-->
-<!--                   data-href="${rootURL}/administrativeMonitorsApi/nonSecurityPopupContent"-->
-<!--                   title="${%tooltip(activeNonSecurityAMCount)}">-->
-<!--                    <l:icon src="symbol-notifications" class="icon-md"/>-->
-<!--                    <div class="am-monitor__indicator-mobile"/>-->
-<!--                    <span class="am-monitor__count">-->
-<!--                        ${activeNonSecurityAMCount}-->
-<!--                    </span>-->
-<!--                </a>-->
-<!--                <div id="visible-am-list" class="am-list">-->
-<!--                </div>-->
-<!--            </j:if>-->
-<!--        </div>-->
-<!--        <div id="visible-sec-am-container" class="am-container">-->
-<!--            <j:if test="${activeSecurityAMCount > 0}">-->
-<!--                <a id="visible-sec-am-button"-->
-<!--                   class="am-button security-am"-->
-<!--                   href="#"-->
-<!--                   data-href="${rootURL}/administrativeMonitorsApi/securityPopupContent"-->
-<!--                   title="${%tooltipSec(activeSecurityAMCount)}">-->
-<!--                    <l:icon src="symbol-shield-warning" class="icon-md"/>-->
-<!--                    <div class="am-monitor__indicator-mobile"/>-->
-<!--                    <span class="am-monitor__count">-->
-<!--                        ${activeSecurityAMCount}-->
-<!--                    </span>-->
-<!--                </a>-->
-<!--                <div id="visible-sec-am-list" class="am-list">-->
-<!--                </div>-->
-<!--            </j:if>-->
-<!--        </div>-->
-<!--    </j:if>-->
-</j:jelly>
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.properties
deleted file mode 100644
index 59c787763b8e..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-tooltip=There are {0} active administrative monitors.
-tooltipSec=There are {0} active security administrative monitors.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties
deleted file mode 100644
index 53275bc89bc7..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_bg.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-# The MIT License
-#
-# Bulgarian translation: Copyright (c) 2017, Alexander Shopov <ash@kambanaria.org>
-#
-# 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.
-
-# There are {0} active administrative monitors.
-tooltip=\
- В момента има {0} предупреждения.
-Manage\ Jenkins=\
- Управление на Jenkins
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_de.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_de.properties
deleted file mode 100644
index df9d5a8ab8ff..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_de.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# The MIT License
-#
-# Copyright (c) 2017 Daniel Beck and a number of other of contributors
-#
-# 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.
-
-Manage\ Jenkins=Jenkins verwalten
-tooltip={0,choice,0#Keine Administrator-Warnungen sind|1#{0} Administrator-Warnung ist|1<{0} Administrator-Warnungen sind} aktiv.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_fr.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_fr.properties
deleted file mode 100644
index 870a942ce747..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_fr.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-tooltip=Il existe {0} moniteurs d''administration activés.
-tooltipSec=Il existe {0} moniteurs d''administration de sécurité activés.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_it.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_it.properties
deleted file mode 100644
index 9967613a7191..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_it.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-# The MIT License
-#
-# Italian localization plugin for Jenkins
-# Copyright © 2020 Alessandro Menti
-#
-# 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.
-
-Manage\ Jenkins=Gestisci Jenkins
-tooltip=Ci sono {0} monitor amministrativi attivi.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pl.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pl.properties
deleted file mode 100644
index 963548d361c7..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pl.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# The MIT License
-#
-# Copyright (c) 2016-2017, Damian Szczepanik
-#
-# 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.
-# There are {0} active administrative monitors.
-tooltip=Znaleziono {0} aktywnych powiadomień dla administratorów
-Manage\ Jenkins=Zarządzaj Jenkinsem
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pt_BR.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pt_BR.properties
deleted file mode 100644
index 103fb02ed797..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_pt_BR.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-# The MIT License
-#
-# Copyright (c) 2004-, Kohsuke Kawaguchi, Sun Microsystems, Inc., and a number of other of contributors
-#
-# 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.
-
-tooltip=Existem {0} monitores administrativos ativos.
-tooltipSec=Existem {0} monitores administrativos de segurança ativos.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_sv_SE.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_sv_SE.properties
deleted file mode 100644
index 477e8b1001a8..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_sv_SE.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-tooltip=Det finns {0} aktiva administrativa övervakningar.
-tooltipSec=Det finns {0} aktiva säkerhetsadministrativa övervakningar.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_tr.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_tr.properties
deleted file mode 100644
index 8447c064c4aa..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_tr.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-# The MIT License
-# 
-# Copyright (c) 2021, Mustafa Ulu
-# 
-# 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.
-
-Manage\ Jenkins=Jenkins''i Yönet
-tooltip={0} adet aktif yönetimsel gösterge var.
-tooltipSec={0} adet aktif yönetimsel güvenlik göstergesi var.
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_zh_TW.properties b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_zh_TW.properties
deleted file mode 100644
index 8fb68379da9f..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/footer_zh_TW.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-tooltip=有 {0} 個啟用中的管理監視器。
-tooltipSec=有 {0} 個啟用中的安全性管理監視器。
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css
deleted file mode 100644
index 27540b350d84..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.css
+++ /dev/null
@@ -1,184 +0,0 @@
-.am-container {
-  display: contents;
-}
-
-.am-button {
-  position: relative;
-}
-
-.am-button .am-monitor__indicator-mobile {
-  display: none;
-  position: absolute;
-  top: 0.25rem;
-  right: 0.25rem;
-  border-radius: 50%;
-  width: 0.65rem;
-  height: 0.65rem;
-  background-color: var(--warning-color);
-}
-.security-am .am-monitor__indicator-mobile {
-  background-color: var(--error-color);
-}
-
-.am-button .am-monitor__count {
-  display: inline-flex;
-  justify-content: center;
-  align-items: center;
-  height: 18px;
-  min-width: 18px;
-
-  color: #fff;
-  background-color: var(--warning-color);
-  font-weight: var(--font-bold-weight);
-  font-size: var(--font-size-xs);
-
-  border-radius: 16px;
-}
-.am-button.security-am .am-monitor__count {
-  color: #fff;
-  background-color: var(--error-color);
-}
-.am-container div.am-list {
-  position: absolute;
-  top: 48px;
-  right: 2%;
-  height: auto;
-  padding: var(--section-padding);
-  text-align: left;
-  display: block;
-  background-color: var(--background);
-  box-shadow: var(--dropdown-box-shadow);
-  border-radius: 15px;
-  opacity: 0;
-  z-index: 0;
-  transform: scale(0);
-}
-
-.am-container.am-hidden div.am-list {
-  animation: hide-am-list 300ms ease-in 1 normal;
-}
-
-.am-container.visible div.am-list {
-  opacity: 1;
-  animation: show-am-list 300ms ease-in 1 normal forwards;
-  z-index: 1000;
-}
-
-@keyframes show-am-list {
-  from {
-    opacity: 0;
-    visibility: hidden;
-    transform: translateY(-10px) scale(0.975);
-  }
-  to {
-    opacity: 1;
-    visibility: visible;
-    transform: scale(1);
-  }
-}
-
-@keyframes hide-am-list {
-  from {
-    opacity: 1;
-    visibility: visible;
-    transform: scale(1);
-    z-index: 1000;
-  }
-  to {
-    opacity: 0;
-    visibility: hidden;
-    transform: translateY(-10px) scale(0.975);
-    z-index: 1000;
-  }
-}
-
-.am-container .am-message {
-  display: block;
-  line-height: 1.4em;
-  margin-bottom: 1.4em;
-}
-.am-container.visible .am-button:after {
-  background: var(--button-background--hover);
-}
-
-.am-message-list {
-  padding: 0;
-  margin: 0;
-}
-
-.am-container .am-message .alert form,
-.am-container .am-message .jenkins-alert form {
-  position: relative;
-  float: right;
-  margin: -6px 0 0 0 !important;
-  gap: 0.5rem;
-  display: flex;
-  padding-left: 0.5rem;
-}
-
-.am-container .am-message .alert form span,
-.am-container .am-message .jenkins-alert form span {
-  margin: 0 0 0 4px !important;
-}
-
-.am-container .am-message .alert,
-.am-container .am-message .jenkins-alert {
-  margin-bottom: 0 !important;
-}
-
-.am-container .am-message dl dt::after {
-  content: ": ";
-}
-
-/* Restore hyperlink style overriden by the page header */
-.am-container .am-list a:link {
-  display: inline-block;
-  color: var(--link-color);
-  text-decoration: underline;
-  margin-right: 0;
-  padding: 0;
-  font-weight: var(--link-font-weight);
-}
-.am-container .am-list a:visited {
-  color: var(--link-color);
-}
-.am-container .am-list a:hover,
-.am-container .am-list a:focus,
-.am-container .am-list a:active {
-  color: var(--link-color);
-  background-color: transparent;
-  text-decoration: underline;
-  text-decoration: var(--link-text-decoration--hover);
-}
-
-.am-container .am-list .jenkins-alert-success a {
-  color: var(--alert-success-text-color);
-}
-
-.am-container .am-list .jenkins-alert-info a {
-  color: var(--alert-info-text-color);
-}
-
-.am-container .am-list .jenkins-alert-warning a {
-  color: var(--alert-warning-text-color);
-}
-
-.am-container .am-list .jenkins-alert-danger a {
-  color: var(--alert-danger-text-color);
-}
-
-@media screen and (max-width: 576px) {
-  /* Hide non-security monitors on mobile view to avoid messing up the heading */
-  #visible-am-container {
-    display: none;
-  }
-}
-
-@media screen and (max-width: 768px) {
-  .am-button .am-monitor__indicator-mobile {
-    display: block;
-  }
-  .am-button .am-monitor__count {
-    display: none;
-  }
-}
diff --git a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.js b/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.js
deleted file mode 100644
index 5982e0302570..000000000000
--- a/core/src/main/resources/jenkins/management/AdministrativeMonitorsDecorator/resources.js
+++ /dev/null
@@ -1,128 +0,0 @@
-(function () {
-  function initializeAmMonitor(amMonitorRoot, options) {
-    var button = amMonitorRoot.querySelector(".am-button");
-    var amList = amMonitorRoot.querySelector(".am-list");
-    if (button === null || amList === null) {
-      return null;
-    }
-
-    var url = button.getAttribute("data-href");
-
-    function onClose(e) {
-      var list = amList;
-      var el = e.target;
-      while (el) {
-        if (el === list) {
-          return; // clicked in the list
-        }
-        el = el.parentElement;
-      }
-      close();
-    }
-
-    function onEscClose(e) {
-      var escapeKeyCode = 27;
-      if (e.keyCode === escapeKeyCode) {
-        close();
-      }
-    }
-
-    function show() {
-      if (options.closeAll) {
-        options.closeAll();
-      }
-
-      fetch(url).then((rsp) => {
-        if (rsp.ok) {
-          rsp.text().then((responseText) => {
-            var popupContent = responseText;
-            amList.innerHTML = popupContent;
-            amMonitorRoot.classList.add("visible");
-            amMonitorRoot.classList.remove("am-hidden");
-            document.addEventListener("click", onClose);
-            document.addEventListener("keydown", onEscClose);
-
-            // Applies all initialization code to the elements within the popup
-            // Among other things, this sets the CSRF crumb to the forms within
-            Behaviour.applySubtree(amList);
-          });
-        }
-      });
-    }
-
-    function close() {
-      if (amMonitorRoot.classList.contains("visible")) {
-        amMonitorRoot.classList.add("am-hidden");
-      }
-      amMonitorRoot.classList.remove("visible");
-      document.removeEventListener("click", onClose);
-      document.removeEventListener("keydown", onEscClose);
-    }
-
-    function toggle(e) {
-      if (amMonitorRoot.classList.contains("visible")) {
-        close();
-      } else {
-        show();
-      }
-      e.preventDefault();
-    }
-
-    function startListeners() {
-      button.addEventListener("click", toggle);
-    }
-
-    return {
-      close: close,
-      startListeners: startListeners,
-    };
-  }
-
-  document.addEventListener("DOMContentLoaded", function () {
-    var monitorWidgets;
-
-    function closeAll() {
-      monitorWidgets.forEach(function (widget) {
-        widget.close();
-      });
-    }
-
-    var normalMonitors = initializeAmMonitor(
-      document.getElementById("visible-am-container"),
-      {
-        closeAll: closeAll,
-      },
-    );
-    var securityMonitors = initializeAmMonitor(
-      document.getElementById("visible-sec-am-container"),
-      {
-        closeAll: closeAll,
-      },
-    );
-    monitorWidgets = [normalMonitors, securityMonitors].filter(
-      function (widget) {
-        return widget !== null;
-      },
-    );
-
-    monitorWidgets.forEach(function (widget) {
-      widget.startListeners();
-    });
-  });
-})();
-
-document.addEventListener("DOMContentLoaded", function () {
-  var amContainer = document.getElementById("visible-am-container");
-  var amInsertion = document.getElementById("visible-am-insertion");
-
-  if (amInsertion) {
-    amInsertion.appendChild(amContainer);
-  }
-
-  var secAmContainer = document.getElementById("visible-sec-am-container");
-  var secAmInsertion = document.getElementById("visible-sec-am-insertion");
-
-  if (secAmInsertion) {
-    secAmInsertion.appendChild(secAmContainer);
-  }
-});
diff --git a/core/src/main/resources/jenkins/model/navigation/UserAction/jumplist.jelly b/core/src/main/resources/jenkins/model/navigation/UserAction/jumplist.jelly
index 1c222a5e8427..0b0aa13c4127 100644
--- a/core/src/main/resources/jenkins/model/navigation/UserAction/jumplist.jelly
+++ b/core/src/main/resources/jenkins/model/navigation/UserAction/jumplist.jelly
@@ -7,12 +7,17 @@
       </div>
       ${it.user.fullName}
     </a>
-    <a class="jenkins-dropdown__item" href="${rootURL}/${it.user.url}/account">
-      <div class="jenkins-dropdown__item__icon">
-        <l:icon src="symbol-settings" />
-      </div>
-      ${%Configure}
-    </a>
+    <div class="jenkins-dropdown__separator" />
+
+    <j:forEach var="action" items="${it.actions}">
+      <a class="jenkins-dropdown__item" href="${rootURL}/${it.user.url}/${action.urlName}">
+        <div class="jenkins-dropdown__item__icon">
+          <l:icon src="${action.iconFileName}" />
+        </div>
+        ${action.displayName}
+      </a>
+    </j:forEach>
+
     <div class="jenkins-dropdown__separator" />
     <a class="jenkins-dropdown__item" href="${rootURL}/logout">
       <div class="jenkins-dropdown__item__icon">