diff options
author | James Moger <james.moger@gitblit.com> | 2011-06-02 22:40:23 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2011-06-02 22:40:23 -0400 |
commit | a125cf6876e0edc5a2498df57a9df06d60b1f572 (patch) | |
tree | 7e0757213e7b69c7e97c0fe7ac4b7e2edfc41b81 /src/com/gitblit/wicket | |
parent | 793f76563d4bb3f58fa62ff53985e20561c6e330 (diff) | |
download | gitblit-a125cf6876e0edc5a2498df57a9df06d60b1f572.tar.gz gitblit-a125cf6876e0edc5a2498df57a9df06d60b1f572.zip |
Unit testing. Start of git-notes display feature.
Diffstat (limited to 'src/com/gitblit/wicket')
-rw-r--r-- | src/com/gitblit/wicket/pages/BlobDiffPage.java | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/CommitDiffPage.java | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/CommitPage.html | 8 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/CommitPage.java | 24 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/EditRepositoryPage.java | 19 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/MetricsPage.java | 10 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/SummaryPage.java | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/panels/CommitLegendPanel.java | 15 |
8 files changed, 70 insertions, 12 deletions
diff --git a/src/com/gitblit/wicket/pages/BlobDiffPage.java b/src/com/gitblit/wicket/pages/BlobDiffPage.java index b94da011..a8f8b3c1 100644 --- a/src/com/gitblit/wicket/pages/BlobDiffPage.java +++ b/src/com/gitblit/wicket/pages/BlobDiffPage.java @@ -24,8 +24,8 @@ import org.eclipse.jgit.revwalk.RevCommit; import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.utils.DiffUtils;
+import com.gitblit.utils.DiffUtils.DiffOutputType;
import com.gitblit.utils.JGitUtils;
-import com.gitblit.utils.JGitUtils.DiffOutputType;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
diff --git a/src/com/gitblit/wicket/pages/CommitDiffPage.java b/src/com/gitblit/wicket/pages/CommitDiffPage.java index e7af833d..4815b2c7 100644 --- a/src/com/gitblit/wicket/pages/CommitDiffPage.java +++ b/src/com/gitblit/wicket/pages/CommitDiffPage.java @@ -32,8 +32,8 @@ import com.gitblit.GitBlit; import com.gitblit.Keys;
import com.gitblit.models.PathModel.PathChangeModel;
import com.gitblit.utils.DiffUtils;
+import com.gitblit.utils.DiffUtils.DiffOutputType;
import com.gitblit.utils.JGitUtils;
-import com.gitblit.utils.JGitUtils.DiffOutputType;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
import com.gitblit.wicket.panels.CommitLegendPanel;
diff --git a/src/com/gitblit/wicket/pages/CommitPage.html b/src/com/gitblit/wicket/pages/CommitPage.html index 1b5fffed..bd317b7a 100644 --- a/src/com/gitblit/wicket/pages/CommitPage.html +++ b/src/com/gitblit/wicket/pages/CommitPage.html @@ -44,6 +44,14 @@ <!-- full message -->
<div class="commit_message" wicket:id="fullMessage">[commit message]</div>
+ <!-- git notes -->
+ <table style="padding-bottom:5px;">
+ <tr wicket:id="notes">
+ <td style="vertical-align:top;"><span class="headRef" wicket:id="refName"></span><br/><span wicket:id="authorName"></span><br/><span wicket:id="authorDate"></span></td>
+ <td><span wicket:id="noteContent"></span></td>
+ </tr>
+ </table>
+
<!-- commit legend -->
<div style="text-align:right;" wicket:id="commitLegend"></div>
diff --git a/src/com/gitblit/wicket/pages/CommitPage.java b/src/com/gitblit/wicket/pages/CommitPage.java index bc0d8792..3af9cf1d 100644 --- a/src/com/gitblit/wicket/pages/CommitPage.java +++ b/src/com/gitblit/wicket/pages/CommitPage.java @@ -18,6 +18,7 @@ package com.gitblit.wicket.pages; import java.util.ArrayList;
import java.util.List;
+import org.apache.wicket.Component;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
@@ -33,8 +34,10 @@ import org.eclipse.jgit.revwalk.RevCommit; import com.gitblit.DownloadZipServlet;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
+import com.gitblit.models.GitNote;
import com.gitblit.models.PathModel.PathChangeModel;
import com.gitblit.utils.JGitUtils;
+import com.gitblit.utils.StringUtils;
import com.gitblit.utils.JGitUtils.SearchType;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
@@ -112,6 +115,27 @@ public class CommitPage extends RepositoryPage { addFullText("fullMessage", c.getFullMessage(), true);
+ // git notes
+ List<GitNote> notes = JGitUtils.getNotesOnCommit(r, c);
+ ListDataProvider<GitNote> notesDp = new ListDataProvider<GitNote>(notes);
+ DataView<GitNote> notesView = new DataView<GitNote>("notes", notesDp) {
+ private static final long serialVersionUID = 1L;
+
+ public void populateItem(final Item<GitNote> item) {
+ GitNote entry = item.getModelObject();
+ Component c = new LinkPanel("refName", null, entry.notesRef.displayName,
+ CommitPage.class, newCommitParameter(entry.notesRef.commit.getName()));
+ WicketUtils.setCssClass(c, "headRef");
+ item.add(c);
+ item.add(createPersonPanel("authorName", entry.notesRef.commit.getAuthorIdent(), SearchType.AUTHOR));
+ item.add(WicketUtils.createTimestampLabel("authorDate",
+ entry.notesRef.commit.getAuthorIdent().getWhen(), getTimeZone()));
+ item.add(new Label("noteContent", StringUtils.breakLinesForHtml(entry.content)).setEscapeModelStrings(false));
+ }
+ };
+ add(notesView.setVisible(notes.size() > 0));
+
+
// changed paths list
List<PathChangeModel> paths = JGitUtils.getFilesInCommit(r, c);
add(new CommitLegendPanel("commitLegend", paths));
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java index eb2a8e64..e5496a1a 100644 --- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java +++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java @@ -19,7 +19,6 @@ import java.text.MessageFormat; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -104,6 +103,22 @@ public class EditRepositoryPage extends BasePage { // automatically convert backslashes to forward slashes
repositoryModel.name = repositoryModel.name.replace('\\', '/');
+ // Automatically replace // with /
+ repositoryModel.name = repositoryModel.name.replace("//", "/");
+
+ // prohibit folder paths
+ if (repositoryModel.name.startsWith("/")) {
+ error("Leading root folder references (/) are prohibited.");
+ return;
+ }
+ if (repositoryModel.name.startsWith("../")) {
+ error("Relative folder references (../) are prohibited.");
+ return;
+ }
+ if (repositoryModel.name.contains("/../")) {
+ error("Relative folder references (../) are prohibited.");
+ return;
+ }
// confirm valid characters in repository name
char[] validChars = { '/', '.', '_', '-' };
@@ -120,7 +135,7 @@ public class EditRepositoryPage extends BasePage { }
}
}
-
+
// confirm access restriction selection
if (repositoryModel.accessRestriction == null) {
error("Please select access restriction!");
diff --git a/src/com/gitblit/wicket/pages/MetricsPage.java b/src/com/gitblit/wicket/pages/MetricsPage.java index 2186ae37..c6231e9d 100644 --- a/src/com/gitblit/wicket/pages/MetricsPage.java +++ b/src/com/gitblit/wicket/pages/MetricsPage.java @@ -47,7 +47,7 @@ public class MetricsPage extends RepositoryPage { public MetricsPage(PageParameters params) {
super(params);
Repository r = getRepository();
- insertLinePlot("commitsChart", MetricUtils.getDateMetrics(r, false));
+ insertLinePlot("commitsChart", MetricUtils.getDateMetrics(r, false, null));
insertBarPlot("dayOfWeekChart", getDayOfWeekMetrics(r));
insertLinePlot("timeOfDayChart", getTimeOfDayMetrics(r));
insertPieChart("authorsChart", getAuthorMetrics(r));
@@ -57,7 +57,7 @@ public class MetricsPage extends RepositoryPage { if ((metrics != null) && (metrics.size() > 0)) {
IChartData data = WicketUtils.getChartData(metrics);
- ChartProvider provider = new ChartProvider(new Dimension(400, 100), ChartType.LINE,
+ ChartProvider provider = new ChartProvider(new Dimension(500, 100), ChartType.LINE,
data);
ChartAxis dateAxis = new ChartAxis(ChartAxisType.BOTTOM);
dateAxis.setLabels(new String[] { metrics.get(0).name,
@@ -82,7 +82,7 @@ public class MetricsPage extends RepositoryPage { if ((metrics != null) && (metrics.size() > 0)) {
IChartData data = WicketUtils.getChartData(metrics);
- ChartProvider provider = new ChartProvider(new Dimension(400, 100),
+ ChartProvider provider = new ChartProvider(new Dimension(500, 100),
ChartType.BAR_VERTICAL_SET, data);
ChartAxis dateAxis = new ChartAxis(ChartAxisType.BOTTOM);
List<String> labels = new ArrayList<String>();
@@ -110,7 +110,7 @@ public class MetricsPage extends RepositoryPage { for (Metric metric : metrics) {
labels.add(metric.name);
}
- ChartProvider provider = new ChartProvider(new Dimension(400, 200), ChartType.PIE, data);
+ ChartProvider provider = new ChartProvider(new Dimension(500, 200), ChartType.PIE, data);
provider.setPieLabels(labels.toArray(new String[labels.size()]));
add(new Chart(wicketId, provider));
} else {
@@ -164,7 +164,7 @@ public class MetricsPage extends RepositoryPage { }
private List<Metric> getAuthorMetrics(Repository repository) {
- List<Metric> authors = MetricUtils.getAuthorMetrics(repository);
+ List<Metric> authors = MetricUtils.getAuthorMetrics(repository, true);
Collections.sort(authors, new Comparator<Metric>() {
@Override
public int compare(Metric o1, Metric o2) {
diff --git a/src/com/gitblit/wicket/pages/SummaryPage.java b/src/com/gitblit/wicket/pages/SummaryPage.java index c054fcca..a2d36d2e 100644 --- a/src/com/gitblit/wicket/pages/SummaryPage.java +++ b/src/com/gitblit/wicket/pages/SummaryPage.java @@ -77,7 +77,7 @@ public class SummaryPage extends RepositoryPage { List<Metric> metrics = null;
Metric metricsTotal = null;
if (GitBlit.getBoolean(Keys.web.generateActivityGraph, true)) {
- metrics = MetricUtils.getDateMetrics(r, true);
+ metrics = MetricUtils.getDateMetrics(r, true, null);
metricsTotal = metrics.remove(0);
}
diff --git a/src/com/gitblit/wicket/panels/CommitLegendPanel.java b/src/com/gitblit/wicket/panels/CommitLegendPanel.java index bbfa1855..d875233a 100644 --- a/src/com/gitblit/wicket/panels/CommitLegendPanel.java +++ b/src/com/gitblit/wicket/panels/CommitLegendPanel.java @@ -17,6 +17,7 @@ package com.gitblit.wicket.panels; import java.text.MessageFormat;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
@@ -29,7 +30,6 @@ import org.apache.wicket.markup.repeater.data.ListDataProvider; import org.eclipse.jgit.diff.DiffEntry.ChangeType;
import com.gitblit.models.PathModel.PathChangeModel;
-import com.gitblit.utils.JGitUtils;
import com.gitblit.wicket.WicketUtils;
public class CommitLegendPanel extends Panel {
@@ -38,7 +38,7 @@ public class CommitLegendPanel extends Panel { public CommitLegendPanel(String id, List<PathChangeModel> paths) {
super(id);
- final Map<ChangeType, AtomicInteger> stats = JGitUtils.getChangedPathsStats(paths);
+ final Map<ChangeType, AtomicInteger> stats = getChangedPathsStats(paths);
ListDataProvider<ChangeType> legendDp = new ListDataProvider<ChangeType>(
new ArrayList<ChangeType>(stats.keySet()));
DataView<ChangeType> legendsView = new DataView<ChangeType>("legend", legendDp) {
@@ -74,4 +74,15 @@ public class CommitLegendPanel extends Panel { };
add(legendsView);
}
+
+ protected Map<ChangeType, AtomicInteger> getChangedPathsStats(List<PathChangeModel> paths) {
+ Map<ChangeType, AtomicInteger> stats = new HashMap<ChangeType, AtomicInteger>();
+ for (PathChangeModel path : paths) {
+ if (!stats.containsKey(path.changeType)) {
+ stats.put(path.changeType, new AtomicInteger(0));
+ }
+ stats.get(path.changeType).incrementAndGet();
+ }
+ return stats;
+ }
}
\ No newline at end of file |