From 357109c5a5518db5925f49a6700a87e7ed30ca14 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 28 Dec 2011 16:19:29 -0500
Subject: [PATCH] Unit testing. Documentation.
---
src/com/gitblit/wicket/pages/TagPage.java | 88 ++++++++++++++++++++++++++++++++++---------
1 files changed, 69 insertions(+), 19 deletions(-)
diff --git a/src/com/gitblit/wicket/pages/TagPage.java b/src/com/gitblit/wicket/pages/TagPage.java
index 622c2b1..b1ab071 100644
--- a/src/com/gitblit/wicket/pages/TagPage.java
+++ b/src/com/gitblit/wicket/pages/TagPage.java
@@ -1,44 +1,94 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.gitblit.wicket.pages;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.Date;
import java.util.List;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
+import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.revwalk.RevCommit;
+import com.gitblit.models.RefModel;
import com.gitblit.utils.JGitUtils;
-import com.gitblit.wicket.LinkPanel;
-import com.gitblit.wicket.RepositoryPage;
import com.gitblit.wicket.WicketUtils;
-import com.gitblit.wicket.models.RefModel;
-
+import com.gitblit.wicket.panels.LinkPanel;
+import com.gitblit.wicket.panels.RefsPanel;
public class TagPage extends RepositoryPage {
public TagPage(PageParameters params) {
super(params);
- Repository r = getRepository();
- List<RefModel> tags = JGitUtils.getTags(r, -1);
- RevCommit c = JGitUtils.getCommit(r, objectId);
-
- String name = c.getName();
- for (RefModel tag:tags) {
- if (tag.getName().equals(objectId)) {
- name = tag.getDisplayName();
+ Repository r = getRepository();
+
+ // Find tag in repository
+ List<RefModel> tags = JGitUtils.getTags(r, true, -1);
+ RefModel tagRef = null;
+ for (RefModel tag : tags) {
+ if (tag.getName().equals(objectId) || tag.getObjectId().getName().equals(objectId)) {
+ tagRef = tag;
+ break;
}
}
- add(new LinkPanel("commit", "title", name, CommitPage.class, newCommitParameter()));
+ // Failed to find tag!
+ if (tagRef == null) {
+ error(MessageFormat.format("Could not find tag {0}", objectId), true);
+ }
- add(new LinkPanel("tagId", "list", c.getName(), CommitPage.class, newCommitParameter(c.getName())));
- add(new Label("tagAuthor", JGitUtils.getDisplayName(c.getAuthorIdent())));
- add(WicketUtils.createTimestampLabel("tagDate", c.getAuthorIdent().getWhen(), getTimeZone()));
+ // Display tag.
+ Class<? extends RepositoryPage> linkClass;
+ PageParameters linkParameters = newCommitParameter(tagRef.getReferencedObjectId().getName());
+ String typeKey;
+ switch (tagRef.getReferencedObjectType()) {
+ case Constants.OBJ_BLOB:
+ typeKey = "gb.blob";
+ linkClass = BlobPage.class;
+ break;
+ case Constants.OBJ_TREE:
+ typeKey = "gb.tree";
+ linkClass = TreePage.class;
+ break;
+ case Constants.OBJ_COMMIT:
+ default:
+ typeKey = "gb.commit";
+ linkClass = CommitPage.class;
+ break;
+ }
+ add(new LinkPanel("commit", "title", tagRef.displayName, linkClass, linkParameters));
+ add(new RefsPanel("tagName", repositoryName, Arrays.asList(tagRef)));
+ add(new Label("tagId", tagRef.getObjectId().getName()));
+ add(new LinkPanel("taggedObject", "list", tagRef.getReferencedObjectId().getName(),
+ linkClass, linkParameters));
+ add(new Label("taggedObjectType", getString(typeKey)));
- addFullText("fullMessage", c.getFullMessage(), true);
+ add(createPersonPanel("tagger", tagRef.getAuthorIdent(), com.gitblit.Constants.SearchType.AUTHOR));
+ Date when = new Date(0);
+ if (tagRef.getAuthorIdent() != null) {
+ when = tagRef.getAuthorIdent().getWhen();
+ }
+ add(WicketUtils.createTimestampLabel("tagDate", when, getTimeZone()));
+
+ addFullText("fullMessage", tagRef.getFullMessage(), true);
}
-
+
@Override
protected String getPageName() {
return getString("gb.tag");
--
Gitblit v1.9.1