From 856f3fc2a8365c141d1418d3cfff502be233c104 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 05 May 2014 11:17:14 -0400
Subject: [PATCH] Overhaul menu item classes and add AdminMenuExtension point
---
src/main/java/com/gitblit/wicket/WicketUtils.java | 118 +++++++++++++++++++++--------------------------------------
1 files changed, 42 insertions(+), 76 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/WicketUtils.java b/src/main/java/com/gitblit/wicket/WicketUtils.java
index 1cf465e..10b2146 100644
--- a/src/main/java/com/gitblit/wicket/WicketUtils.java
+++ b/src/main/java/com/gitblit/wicket/WicketUtils.java
@@ -21,7 +21,6 @@
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.TimeZone;
@@ -39,13 +38,10 @@
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.resource.ContextRelativeResource;
import org.eclipse.jgit.diff.DiffEntry.ChangeType;
-import org.wicketstuff.googlecharts.AbstractChartData;
-import org.wicketstuff.googlecharts.IChartData;
import com.gitblit.Constants;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.FederationPullStatus;
-import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.models.FederationModel;
import com.gitblit.models.Metric;
@@ -115,7 +111,7 @@
default:
setCssClass(container, "badge");
break;
- }
+ }
}
public static void setAlternatingBackground(Component c, int i) {
@@ -190,11 +186,10 @@
return newImage(wicketId, "file_settings_16x16.png");
}
- List<String> mdExtensions = GitBlit.getStrings(Keys.web.markdownExtensions);
- for (String ext : mdExtensions) {
- if (filename.endsWith('.' + ext.toLowerCase())) {
- return newImage(wicketId, "file_world_16x16.png");
- }
+ MarkupProcessor processor = new MarkupProcessor(GitBlitWebApp.get().settings());
+ String ext = StringUtils.getFileExtension(filename).toLowerCase();
+ if (processor.getMarkupExtensions().contains(ext)) {
+ return newImage(wicketId, "file_world_16x16.png");
}
return newImage(wicketId, "file_16x16.png");
}
@@ -232,17 +227,17 @@
public static Label newIcon(String wicketId, String css) {
Label lbl = new Label(wicketId);
- setCssClass(lbl, css);
+ setCssClass(lbl, css);
return lbl;
}
-
+
public static Label newBlankIcon(String wicketId) {
Label lbl = new Label(wicketId);
setCssClass(lbl, "");
lbl.setRenderBodyOnly(true);
return lbl;
}
-
+
public static ContextRelativeResource getResource(String file) {
return new ContextRelativeResource(file);
}
@@ -257,6 +252,7 @@
return new HeaderContributor(new IHeaderContributor() {
private static final long serialVersionUID = 1L;
+ @Override
public void renderHead(IHeaderResponse response) {
String contentType = "application/rss+xml";
@@ -304,7 +300,9 @@
public static PageParameters newRepositoryParameter(String repositoryName) {
Map<String, String> parameterMap = new HashMap<String, String>();
- parameterMap.put("r", repositoryName);
+ if (!StringUtils.isEmpty(repositoryName)) {
+ parameterMap.put("r", repositoryName);
+ }
return new PageParameters(parameterMap);
}
@@ -437,6 +435,16 @@
return new PageParameters(parameterMap);
}
+ public static PageParameters newBlameTypeParameter(String repositoryName,
+ String commitId, String path, String blameType) {
+ Map<String, String> parameterMap = new HashMap<String, String>();
+ parameterMap.put("r", repositoryName);
+ parameterMap.put("h", commitId);
+ parameterMap.put("f", path);
+ parameterMap.put("blametype", blameType);
+ return new PageParameters(parameterMap);
+ }
+
public static String getProjectName(PageParameters params) {
return params.getString("p", "");
}
@@ -507,10 +515,14 @@
}
public static Label createDateLabel(String wicketId, Date date, TimeZone timeZone, TimeUtils timeUtils) {
- String format = GitBlit.getString(Keys.web.datestampShortFormat, "MM/dd/yy");
+ return createDateLabel(wicketId, date, timeZone, timeUtils, true);
+ }
+
+ public static Label createDateLabel(String wicketId, Date date, TimeZone timeZone, TimeUtils timeUtils, boolean setCss) {
+ String format = GitBlitWebApp.get().settings().getString(Keys.web.datestampShortFormat, "MM/dd/yy");
DateFormat df = new SimpleDateFormat(format);
if (timeZone == null) {
- timeZone = GitBlit.getTimezone();
+ timeZone = GitBlitWebApp.get().getTimezone();
}
df.setTimeZone(timeZone);
String dateString;
@@ -524,13 +536,15 @@
// past
title = timeUtils.timeAgo(date);
}
- if ((System.currentTimeMillis() - date.getTime()) < 10 * 24 * 60 * 60 * 1000L) {
+ if (title != null && (System.currentTimeMillis() - date.getTime()) < 10 * 24 * 60 * 60 * 1000L) {
String tmp = dateString;
dateString = title;
title = tmp;
}
Label label = new Label(wicketId, dateString);
- WicketUtils.setCssClass(label, timeUtils.timeAgoCss(date));
+ if (setCss) {
+ WicketUtils.setCssClass(label, timeUtils.timeAgoCss(date));
+ }
if (!StringUtils.isEmpty(title)) {
WicketUtils.setHtmlTooltip(label, title);
}
@@ -538,10 +552,10 @@
}
public static Label createTimeLabel(String wicketId, Date date, TimeZone timeZone, TimeUtils timeUtils) {
- String format = GitBlit.getString(Keys.web.timeFormat, "HH:mm");
+ String format = GitBlitWebApp.get().settings().getString(Keys.web.timeFormat, "HH:mm");
DateFormat df = new SimpleDateFormat(format);
if (timeZone == null) {
- timeZone = GitBlit.getTimezone();
+ timeZone = GitBlitWebApp.get().getTimezone();
}
df.setTimeZone(timeZone);
String timeString;
@@ -559,10 +573,10 @@
}
public static Label createDatestampLabel(String wicketId, Date date, TimeZone timeZone, TimeUtils timeUtils) {
- String format = GitBlit.getString(Keys.web.datestampLongFormat, "EEEE, MMMM d, yyyy");
+ String format = GitBlitWebApp.get().settings().getString(Keys.web.datestampLongFormat, "EEEE, MMMM d, yyyy");
DateFormat df = new SimpleDateFormat(format);
if (timeZone == null) {
- timeZone = GitBlit.getTimezone();
+ timeZone = GitBlitWebApp.get().getTimezone();
}
df.setTimeZone(timeZone);
String dateString;
@@ -575,10 +589,13 @@
if (TimeUtils.isToday(date, timeZone)) {
title = timeUtils.today();
} else if (TimeUtils.isYesterday(date, timeZone)) {
- title = timeUtils.yesterday();
+ title = timeUtils.yesterday();
} else if (date.getTime() <= System.currentTimeMillis()) {
// past
title = timeUtils.timeAgo(date);
+ } else {
+ // future
+ title = timeUtils.inFuture(date);
}
if ((System.currentTimeMillis() - date.getTime()) < 10 * 24 * 60 * 60 * 1000L) {
String tmp = dateString;
@@ -593,11 +610,11 @@
}
public static Label createTimestampLabel(String wicketId, Date date, TimeZone timeZone, TimeUtils timeUtils) {
- String format = GitBlit.getString(Keys.web.datetimestampLongFormat,
+ String format = GitBlitWebApp.get().settings().getString(Keys.web.datetimestampLongFormat,
"EEEE, MMMM d, yyyy HH:mm Z");
DateFormat df = new SimpleDateFormat(format);
if (timeZone == null) {
- timeZone = GitBlit.getTimezone();
+ timeZone = GitBlitWebApp.get().getTimezone();
}
df.setTimeZone(timeZone);
String dateString;
@@ -618,31 +635,6 @@
return label;
}
- public static IChartData getChartData(Collection<Metric> metrics) {
- final double[] commits = new double[metrics.size()];
- final double[] tags = new double[metrics.size()];
- int i = 0;
- double max = 0;
- for (Metric m : metrics) {
- commits[i] = m.count;
- if (m.tag > 0) {
- tags[i] = m.count;
- } else {
- tags[i] = -1d;
- }
- max = Math.max(max, m.count);
- i++;
- }
- IChartData data = new AbstractChartData(max) {
- private static final long serialVersionUID = 1L;
-
- public double[][] getData() {
- return new double[][] { commits, tags };
- }
- };
- return data;
- }
-
public static double maxValue(Collection<Metric> metrics) {
double max = Double.MIN_VALUE;
for (Metric m : metrics) {
@@ -652,30 +644,4 @@
}
return max;
}
-
- public static IChartData getScatterData(Collection<Metric> metrics) {
- final double[] y = new double[metrics.size()];
- final double[] x = new double[metrics.size()];
- int i = 0;
- double max = 0;
- for (Metric m : metrics) {
- y[i] = m.count;
- if (m.duration > 0) {
- x[i] = m.duration;
- } else {
- x[i] = -1d;
- }
- max = Math.max(max, m.count);
- i++;
- }
- IChartData data = new AbstractChartData(max) {
- private static final long serialVersionUID = 1L;
-
- public double[][] getData() {
- return new double[][] { x, y };
- }
- };
- return data;
- }
-
}
--
Gitblit v1.9.1