Add config option to set log entry template variant Change-Id: Id185c1492f9d854c396e4a0eb914dc24beea084d
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java index 76d9f96..972f913 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/BaseServlet.java
@@ -195,11 +195,8 @@ Map<String, Object> allData = getData(req); - String headerVariant = getAccess(req).getConfig().getString("template", null, "customHeader"); - if (headerVariant != null) { - allData.put("headerVariant", headerVariant); - } - + GitilesConfig.putVariant( + getAccess(req).getConfig(), "customHeader", "headerVariant", allData); allData.putAll(soyData); GitilesView view = ViewFilter.getView(req); if (!allData.containsKey("repositoryName") && view.getRepositoryName() != null) {
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesConfig.java b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesConfig.java index b7d9a10..a196c07 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesConfig.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesConfig.java
@@ -21,6 +21,7 @@ import java.io.File; import java.io.IOException; +import java.util.Map; import javax.servlet.FilterConfig; @@ -52,5 +53,13 @@ return config; } + public static void putVariant(Config config, String templateName, String keyName, + Map<String, ? super String> out) { + String variant = config.getString("template", null, templateName); + if (variant != null) { + out.put(keyName, variant); + } + } + private GitilesConfig() {} }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java index ba979bc..e547563 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
@@ -108,6 +108,7 @@ } data.put("title", title); + GitilesConfig.putVariant(getAccess(req).getConfig(), "logEntry", "logEntryVariant", data); renderHtml(req, res, "gitiles.logDetail", data); } catch (RevWalkException e) {
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java index d266a1c..1c134cf 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
@@ -34,7 +34,7 @@ public class LogSoyData { private static final ImmutableSet<Field> FIELDS = Sets.immutableEnumSet(Field.ABBREV_SHA, - Field.URL, Field.SHORT_MESSAGE, Field.AUTHOR, Field.BRANCHES, Field.TAGS); + Field.URL, Field.SHORT_MESSAGE, Field.AUTHOR, Field.COMMITTER, Field.BRANCHES, Field.TAGS); private final HttpServletRequest req; private final GitilesView view;
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java index 09d9918..ec375ba 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/RepositoryIndexServlet.java
@@ -78,10 +78,10 @@ data = new LogSoyData(req, view).toSoyData(walk, LOG_LIMIT, "HEAD", null, df); } else { // TODO(dborowitz): Handle non-commit or missing HEAD? - data = Maps.newHashMapWithExpectedSize(6); + data = Maps.newHashMapWithExpectedSize(7); } } else { - data = Maps.newHashMapWithExpectedSize(6); + data = Maps.newHashMapWithExpectedSize(7); } } finally { walk.release(); @@ -102,6 +102,7 @@ if (tags.size() > REF_LIMIT) { data.put("moreTagsUrl", GitilesView.refs().copyFrom(view).toUrl()); } + GitilesConfig.putVariant(getAccess(req).getConfig(), "logEntry", "logEntryVariant", data); return data; }
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy index 3d5531e..eeccb94 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy
@@ -23,6 +23,7 @@ * @param breadcrumbs breadcrumbs for this page. * @param? tags optional list of tags encountered when peeling this object, with * keys corresponding to gitiles.tagDetail. + * @param? logEntryVariant variant name for log entry template. * @param entries list of log entries; see .logEntry. * @param? nextUrl URL for the next page of results. * @param? previousUrl URL for the previous page of results. @@ -44,6 +45,7 @@ /** * List of log entries. * + * @param? logEntryVariant variant name for log entry template. * @param entries list of log entries; see .logEntry. * @param? nextUrl URL for the next page of results. * @param? previousUrl URL for the previous page of results. @@ -59,7 +61,8 @@ <ol class="shortlog"> {foreach $entry in $entries} <li{if $previousUrl and isFirst($entry)} class="first"{/if}> - {call .logEntry data="$entry" /} + {delcall gitiles.logEntry variant="$logEntryVariant ?: 'default'" + data="$entry" /} </li> {/foreach} </ol> @@ -85,7 +88,7 @@ * @param branches list of branches for this entry, with "name" and "url" keys. * @param tags list of tags for this entry, with "name" and "url" keys. */ -{template .logEntry} +{deltemplate gitiles.logEntry variant="'default'"} <a href="{$url}"> <span class="sha1">{$abbrevSha}</span> // nbsp instad of CSS padding/margin because those cause a break in the @@ -105,4 +108,4 @@ {sp}<a href="{$tag.url}" class="tag-label">{$tag.name}</a> {/foreach} {/if} -{/template} +{/deltemplate}
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy index 14d5335..cdd5005 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy
@@ -29,6 +29,7 @@ * @param? moreTagsUrl URL to show more branches, if necessary. * @param? nextUrl URL for the next page of log results. * @param? previousUrl URL for the previous page of log results. + * @param? logEntryVariant variant name for log entry template. * @param entries list of log entries; see .logEntry. */ {template .repositoryIndex}