From c19ae5c6d45085528dae8c94a2eb737e06c335ce Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 22 May 2011 13:04:11 -0400
Subject: [PATCH] Documentation.
---
src/com/gitblit/wicket/BasePage.java | 141 ++++++++++++++++++++++++++++++++---------------
1 files changed, 96 insertions(+), 45 deletions(-)
diff --git a/src/com/gitblit/wicket/BasePage.java b/src/com/gitblit/wicket/BasePage.java
index 5c29eac..733f4f7 100644
--- a/src/com/gitblit/wicket/BasePage.java
+++ b/src/com/gitblit/wicket/BasePage.java
@@ -1,73 +1,124 @@
package com.gitblit.wicket;
-import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.TimeZone;
-import org.apache.wicket.Component;
+import javax.servlet.http.HttpServletRequest;
+
import org.apache.wicket.PageParameters;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.gitblit.utils.Utils;
-
+import com.gitblit.Constants;
+import com.gitblit.Constants.AccessRestrictionType;
+import com.gitblit.GitBlit;
+import com.gitblit.Keys;
+import com.gitblit.wicket.pages.SummaryPage;
public abstract class BasePage extends WebPage {
- Logger logger = LoggerFactory.getLogger(BasePage.class);
+ private final Logger logger;
public BasePage() {
super();
+ logger = LoggerFactory.getLogger(getClass());
}
public BasePage(PageParameters params) {
super(params);
+ logger = LoggerFactory.getLogger(getClass());
}
- protected Label createAuthorLabel(String wicketId, String author) {
- Label label = new Label(wicketId, author);
- WicketUtils.setHtmlTitle(label, author);
- return label;
- }
-
- protected Label createDateLabel(String wicketId, Date date) {
- Label label = new Label(wicketId, GitBlitWebSession.get().formatDate(date));
- WicketUtils.setCssClass(label, Utils.timeAgoCss(date));
- WicketUtils.setHtmlTitle(label, Utils.timeAgo(date));
- return label;
- }
-
- protected Label createShortlogDateLabel(String wicketId, Date date) {
- String dateString = GitBlitWebSession.get().formatDate(date);
- String title = Utils.timeAgo(date);
- if ((System.currentTimeMillis() - date.getTime()) < 10 * 24 * 60 * 60 * 1000l) {
- dateString = title;
- title = GitBlitWebSession.get().formatDate(date);
+ protected void setupPage(String repositoryName, String pageName) {
+ if (repositoryName != null && repositoryName.trim().length() > 0) {
+ add(new Label("title", getServerName() + " - " + repositoryName));
+ } else {
+ add(new Label("title", getServerName()));
}
- Label label = new Label(wicketId, dateString);
- WicketUtils.setCssClass(label, Utils.timeAgoCss(date));
- WicketUtils.setHtmlTitle(label, title);
- return label;
- }
-
- protected void setAlternatingBackground(Component c, int i) {
- String clazz = i % 2 == 0 ? "dark" : "light";
- WicketUtils.setCssClass(c, clazz);
- }
-
- protected String trimShortLog(String string) {
- return trimString(string, 60);
- }
-
- protected String trimString(String value, int max) {
- if (value.length() <= max) {
- return value;
+ // header
+ String siteName = GitBlit.self().settings().getString(Keys.web.siteName, Constants.NAME);
+ if (siteName == null || siteName.trim().length() == 0) {
+ siteName = Constants.NAME;
}
- return value.substring(0, max - 3) + "...";
+ add(new Label("siteName", siteName));
+ add(new LinkPanel("repositoryName", null, repositoryName, SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
+ add(new Label("pageName", pageName));
+
+ // Feedback panel for info, warning, and non-fatal error messages
+ add(new FeedbackPanel("feedback"));
+
+ // footer
+ if (GitBlit.self().settings().getBoolean(Keys.web.authenticateViewPages, true) || GitBlit.self().settings().getBoolean(Keys.web.authenticateAdminPages, true)) {
+ if (GitBlitWebSession.get().isLoggedIn()) {
+ // logout
+ add(new LinkPanel("userPanel", null, getString("gb.logout") + " " + GitBlitWebSession.get().getUser().toString(), LogoutPage.class));
+ } else {
+ // login
+ add(new LinkPanel("userPanel", null, getString("gb.login"), LoginPage.class));
+ }
+ } else {
+ add(new Label("userPanel", ""));
+ }
+ add(new Label("gbVersion", "v" + Constants.VERSION));
+ if (GitBlit.self().settings().getBoolean(Keys.web.aggressiveHeapManagement, false)) {
+ System.gc();
+ }
}
- public void error(String message, Throwable t) {
- super.error(message);
+ protected Map<AccessRestrictionType, String> getAccessRestrictions() {
+ Map<AccessRestrictionType, String> map = new LinkedHashMap<AccessRestrictionType, String>();
+ for (AccessRestrictionType type : AccessRestrictionType.values()) {
+ switch (type) {
+ case NONE:
+ map.put(type, getString("gb.notRestricted"));
+ break;
+ case PUSH:
+ map.put(type, getString("gb.pushRestricted"));
+ break;
+ case CLONE:
+ map.put(type, getString("gb.cloneRestricted"));
+ break;
+ case VIEW:
+ map.put(type, getString("gb.viewRestricted"));
+ break;
+ }
+ }
+ return map;
+ }
+
+ protected TimeZone getTimeZone() {
+ return GitBlit.self().settings().getBoolean(Keys.web.useClientTimezone, false) ? GitBlitWebSession.get().getTimezone() : TimeZone.getDefault();
+ }
+
+ protected String getServerName() {
+ ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();
+ HttpServletRequest req = servletWebRequest.getHttpServletRequest();
+ return req.getServerName();
+ }
+
+ public void error(String message, boolean redirect) {
+ logger.error(message);
+ if (redirect) {
+ GitBlitWebSession.get().cacheErrorMessage(message);
+ throw new RestartResponseAtInterceptPageException(getApplication().getHomePage());
+ } else {
+ super.error(message);
+ }
+ }
+
+ public void error(String message, Throwable t, boolean redirect) {
logger.error(message, t);
+ if (redirect) {
+ GitBlitWebSession.get().cacheErrorMessage(message);
+ throw new RestartResponseAtInterceptPageException(getApplication().getHomePage());
+ } else {
+ super.error(message);
+ }
}
}
--
Gitblit v1.9.1