highlight links in plugin descriptions

This commit is contained in:
Sebastian Sdorra
2012-01-07 18:04:40 +01:00
parent 4523b7bd35
commit 05fc269e7e
4 changed files with 32 additions and 5 deletions

View File

@@ -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);
}

View File

@@ -158,7 +158,7 @@ public class DetailResource extends CachedViewableResource
pluginVersions);
Map<String, Object> 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);

View File

@@ -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 ----------------------------------------------------------

View File

@@ -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;
}