From 05fc269e7e31c4abc6db85b56e99faf60332a287 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 7 Jan 2012 18:04:40 +0100 Subject: [PATCH] highlight links in plugin descriptions --- .../java/sonia/scm/plugin/PluginUtil.java | 26 ++++++++++++++++++- .../sonia/scm/plugin/rest/DetailResource.java | 2 +- .../scm/plugin/rest/OverviewResource.java | 4 ++- .../scm/plugin/rest/PluginDetailWrapper.java | 5 ++-- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java index e4e09c89a3..b536f8f9eb 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java @@ -35,6 +35,7 @@ package sonia.scm.plugin; //~--- non-JDK imports -------------------------------------------------------- +import sonia.scm.util.LinkTextParser; import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -101,6 +102,28 @@ public class PluginUtil return filtered; } + /** + * Method description + * + * + * @param plugin + * + * @return + */ + public static PluginInformation prepareForView(PluginInformation plugin) + { + String description = plugin.getDescription(); + + if (Util.isNotEmpty(description)) + { + plugin = plugin.clone(); + description = LinkTextParser.parseText(description); + plugin.setDescription(description); + } + + return plugin; + } + //~--- get methods ---------------------------------------------------------- /** @@ -121,7 +144,8 @@ public class PluginUtil if (Util.isNotEmpty(pluginVersions)) { - Collections.sort(pluginVersions, PluginInformationNameComparator.INSTANCE); + Collections.sort(pluginVersions, + PluginInformationNameComparator.INSTANCE); pluginVersions = PluginUtil.filterSameVersions(pluginVersions); } diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DetailResource.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DetailResource.java index 721ea9af14..8c71f82256 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DetailResource.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DetailResource.java @@ -158,7 +158,7 @@ public class DetailResource extends CachedViewableResource pluginVersions); Map vars = createVarMap(latest.getName()); - vars.put("latest", latest); + vars.put("latest", PluginUtil.prepareForView(latest)); vars.put("versions", detailList); viewable = new Viewable("/detail", vars); putToCache(cacheKey, viewable); diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/OverviewResource.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/OverviewResource.java index 22bac4a7c0..e93be1ca7e 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/OverviewResource.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/OverviewResource.java @@ -37,11 +37,13 @@ package sonia.scm.plugin.rest; import com.google.inject.Inject; +import sonia.scm.plugin.*; import sonia.scm.plugin.BackendConfiguration; import sonia.scm.plugin.Category; import sonia.scm.plugin.CategoryNameComaparator; import sonia.scm.plugin.PluginBackend; import sonia.scm.plugin.PluginInformation; +import sonia.scm.util.LinkTextParser; import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -133,7 +135,7 @@ public class OverviewResource extends ViewableResource categories.put(name, category); } - category.getPlugins().add(plugin); + category.getPlugins().add(PluginUtil.prepareForView(plugin)); } //~--- get methods ---------------------------------------------------------- diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginDetailWrapper.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginDetailWrapper.java index 324c741bf6..54e062e392 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginDetailWrapper.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginDetailWrapper.java @@ -36,6 +36,7 @@ package sonia.scm.plugin.rest; //~--- non-JDK imports -------------------------------------------------------- import sonia.scm.plugin.PluginInformation; +import sonia.scm.plugin.PluginUtil; /** * @@ -52,7 +53,7 @@ public class PluginDetailWrapper */ public PluginDetailWrapper(PluginInformation plugin) { - this.plugin = plugin; + this(plugin, null); } /** @@ -64,7 +65,7 @@ public class PluginDetailWrapper */ public PluginDetailWrapper(PluginInformation plugin, String compareUrl) { - this.plugin = plugin; + this.plugin = PluginUtil.prepareForView(plugin); this.compareUrl = compareUrl; }