From 6db88c3f5ba82ecc68af2bced3a568058cf80e2b Mon Sep 17 00:00:00 2001 From: Jan Faracik <43062514+janfaracik@users.noreply.github.com> Date: Tue, 6 Sep 2022 08:30:33 +0100 Subject: [PATCH] Add sidebar to plugin manager, increase search bar size (#6783) Co-authored-by: Daniel Beck <1831569+daniel-beck@users.noreply.github.com> Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com> Co-authored-by: Basil Crow Co-authored-by: Alexander Brandes --- core/src/main/java/hudson/PluginManager.java | 28 ++- .../hudson/PluginManager/advanced.jelly | 7 +- .../hudson/PluginManager/available.jelly | 33 ++-- .../hudson/PluginManager/installed.jelly | 32 ++-- .../hudson/PluginManager/sidepanel.groovy | 35 ---- .../{tabBar.jelly => sidepanel.jelly} | 26 +-- .../PluginManager/sidepanel_bg.properties | 28 --- .../PluginManager/sidepanel_ca.properties | 23 --- .../PluginManager/sidepanel_cs.properties | 23 --- .../PluginManager/sidepanel_da.properties | 25 --- .../PluginManager/sidepanel_de.properties | 25 --- .../PluginManager/sidepanel_el.properties | 23 --- .../PluginManager/sidepanel_es.properties | 25 --- .../PluginManager/sidepanel_fi.properties | 24 --- .../PluginManager/sidepanel_fr.properties | 24 --- .../PluginManager/sidepanel_hu.properties | 24 --- .../PluginManager/sidepanel_it.properties | 26 --- .../PluginManager/sidepanel_ja.properties | 25 --- .../PluginManager/sidepanel_ko.properties | 24 --- .../PluginManager/sidepanel_nb_NO.properties | 24 --- .../PluginManager/sidepanel_nl.properties | 24 --- .../PluginManager/sidepanel_pl.properties | 24 --- .../PluginManager/sidepanel_pt_BR.properties | 25 --- .../PluginManager/sidepanel_pt_PT.properties | 23 --- .../PluginManager/sidepanel_ru.properties | 24 --- .../PluginManager/sidepanel_sr.properties | 5 - .../PluginManager/sidepanel_sv_SE.properties | 23 --- .../PluginManager/sidepanel_tr.properties | 24 --- .../PluginManager/sidepanel_zh_TW.properties | 26 --- .../hudson/PluginManager/tabBar_bg.properties | 32 ---- .../hudson/PluginManager/tabBar_ca.properties | 6 - .../hudson/PluginManager/tabBar_cs.properties | 26 --- .../hudson/PluginManager/tabBar_da.properties | 27 --- .../hudson/PluginManager/tabBar_de.properties | 28 --- .../hudson/PluginManager/tabBar_es.properties | 27 --- .../PluginManager/tabBar_es_AR.properties | 26 --- .../hudson/PluginManager/tabBar_et.properties | 6 - .../hudson/PluginManager/tabBar_fi.properties | 26 --- .../hudson/PluginManager/tabBar_fr.properties | 26 --- .../hudson/PluginManager/tabBar_he.properties | 26 --- .../hudson/PluginManager/tabBar_hu.properties | 26 --- .../hudson/PluginManager/tabBar_it.properties | 27 --- .../hudson/PluginManager/tabBar_ja.properties | 26 --- .../hudson/PluginManager/tabBar_ko.properties | 26 --- .../hudson/PluginManager/tabBar_lt.properties | 6 - .../hudson/PluginManager/tabBar_lv.properties | 26 --- .../PluginManager/tabBar_nb_NO.properties | 26 --- .../hudson/PluginManager/tabBar_nl.properties | 26 --- .../hudson/PluginManager/tabBar_pl.properties | 26 --- .../PluginManager/tabBar_pt_BR.properties | 26 --- .../PluginManager/tabBar_pt_PT.properties | 6 - .../hudson/PluginManager/tabBar_ro.properties | 26 --- .../hudson/PluginManager/tabBar_ru.properties | 26 --- .../hudson/PluginManager/tabBar_sk.properties | 26 --- .../hudson/PluginManager/tabBar_sr.properties | 7 - .../PluginManager/tabBar_sv_SE.properties | 26 --- .../hudson/PluginManager/tabBar_tr.properties | 26 --- .../hudson/PluginManager/tabBar_uk.properties | 6 - .../PluginManager/tabBar_zh_TW.properties | 28 --- .../hudson/PluginManager/table.jelly | 33 ++-- .../hudson/model/UpdateCenter/index.jelly | 6 +- war/src/main/js/plugin-manager-ui.js | 8 +- war/src/main/less/modules/app-bar.less | 35 ++++ .../main/less/modules/side-panel-tasks.less | 26 +++ war/src/main/less/pages/plugin-manager.less | 162 ++++++++++++++++++ .../resources/images/symbols/shopping-bag.svg | 1 + 66 files changed, 325 insertions(+), 1322 deletions(-) delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel.groovy rename core/src/main/resources/hudson/PluginManager/{tabBar.jelly => sidepanel.jelly} (60%) delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_bg.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_ca.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_cs.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_da.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_de.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_el.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_es.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_fi.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_fr.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_hu.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_it.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_ja.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_ko.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_nl.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_pl.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_pt_PT.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_ru.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_sr.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_tr.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/sidepanel_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_bg.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_ca.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_cs.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_da.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_de.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_es.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_es_AR.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_et.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_fi.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_fr.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_he.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_hu.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_it.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_ja.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_ko.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_lt.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_lv.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_nl.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_pl.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_pt_PT.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_ro.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_ru.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_sk.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_sr.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_tr.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_uk.properties delete mode 100644 core/src/main/resources/hudson/PluginManager/tabBar_zh_TW.properties create mode 100644 war/src/main/resources/images/symbols/shopping-bag.svg diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 57247738d1..a904b86c1b 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -154,6 +154,7 @@ import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerFallback; import org.kohsuke.stapler.StaplerOverridable; import org.kohsuke.stapler.StaplerProxy; import org.kohsuke.stapler.StaplerRequest; @@ -1386,6 +1387,27 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas return !("adopt-this-plugin".equals(label) || "deprecated".equals(label)); } + /** + * This allows "Update Center" to live at the URL + * {@code /pluginManager/updates/} in addition to its {@code /updateCenter/} + * URL which is provided by {@link jenkins.model.Jenkins#getUpdateCenter()}. + * For purposes of Stapler, this object is the current item serving the + * view, and since this is not a {@link hudson.model.ModelObject}, it does + * not appear as an additional breadcrumb and only the "Plugin Manager" + * breadcrumb is shown. + */ + @Restricted(NoExternalUse.class) + public static class UpdateCenterProxy implements StaplerFallback { + @Override + public Object getStaplerFallback() { + return Jenkins.get().getUpdateCenter(); + } + } + + public UpdateCenterProxy getUpdates() { + return new UpdateCenterProxy(); + } + @Restricted(NoExternalUse.class) public HttpResponse doPluginsSearch(@QueryParameter String query, @QueryParameter Integer limit) { List plugins = new ArrayList<>(); @@ -1593,7 +1615,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas boolean dynamicLoad = req.getParameter("dynamicLoad") != null; install(plugins, dynamicLoad); - rsp.sendRedirect("../updateCenter/"); + rsp.sendRedirect("updates/"); } /** @@ -1898,7 +1920,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas element("url", t.toURI().toString()). element("dependencies", dependencies); new UpdateSite(UpdateCenter.ID_UPLOAD, null).new Plugin(UpdateCenter.ID_UPLOAD, cfg).deploy(true); - return new HttpRedirect("../updateCenter"); + return new HttpRedirect("updates/"); } catch (FileUploadException e) { throw new ServletException(e); } @@ -2124,7 +2146,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas @RequirePOST public HttpResponse doInstallNecessaryPlugins(StaplerRequest req) throws IOException { prevalidateConfig(req.getInputStream()); - return HttpResponses.redirectViaContextPath("updateCenter"); + return HttpResponses.redirectViaContextPath("updates/"); } /** diff --git a/core/src/main/resources/hudson/PluginManager/advanced.jelly b/core/src/main/resources/hudson/PluginManager/advanced.jelly index 9a90b4a893..15853cc472 100644 --- a/core/src/main/resources/hudson/PluginManager/advanced.jelly +++ b/core/src/main/resources/hudson/PluginManager/advanced.jelly @@ -28,15 +28,14 @@ THE SOFTWARE. - + - + - + -

${%HTTP Proxy Configuration}

diff --git a/core/src/main/resources/hudson/PluginManager/available.jelly b/core/src/main/resources/hudson/PluginManager/available.jelly index 8d8e4ab7a3..6b7d573666 100644 --- a/core/src/main/resources/hudson/PluginManager/available.jelly +++ b/core/src/main/resources/hudson/PluginManager/available.jelly @@ -27,31 +27,30 @@ THE SOFTWARE. --> - - + - + +
+
+ +
+
+