From cf9550d8df51d927c63176675280d69b86e7a6e2 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 04 May 2011 17:35:49 -0400 Subject: [PATCH] Build infrastructure improvements. Setting to show remote branches. --- src/com/gitblit/wicket/BasePage.java | 113 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 72 insertions(+), 41 deletions(-) diff --git a/src/com/gitblit/wicket/BasePage.java b/src/com/gitblit/wicket/BasePage.java index 5d8176a..6125f2a 100644 --- a/src/com/gitblit/wicket/BasePage.java +++ b/src/com/gitblit/wicket/BasePage.java @@ -1,69 +1,100 @@ package com.gitblit.wicket; -import java.util.Date; +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.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) { - if (string.length() > 60) { - return string.substring(0, 60) + "..."; + // header + String siteName = GitBlit.self().settings().getString(Keys.web.siteName, Constants.NAME); + if (siteName == null || siteName.trim().length() == 0) { + siteName = Constants.NAME; } - return string; + 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 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