From dfc4ece4083bbbb98f55291d05e7d2b1513464b7 Mon Sep 17 00:00:00 2001 From: Thomas Pummer <dev@nullpointer.at> Date: Fri, 22 Feb 2013 11:10:11 -0500 Subject: [PATCH] the display-name in web.xml now shows the actual version of Gitblit --- src/com/gitblit/wicket/pages/RepositoriesPage.java | 109 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 73 insertions(+), 36 deletions(-) diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java index 4c50b44..4bce77f 100644 --- a/src/com/gitblit/wicket/pages/RepositoriesPage.java +++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java @@ -16,17 +16,19 @@ package com.gitblit.wicket.pages; import java.io.File; -import java.io.FileReader; +import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.List; -import org.apache.wicket.Application; import org.apache.wicket.Component; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.resource.ContextRelativeResource; +import org.apache.wicket.util.resource.ResourceStreamNotFoundException; +import org.eclipse.jgit.lib.Constants; import com.gitblit.GitBlit; import com.gitblit.Keys; @@ -35,6 +37,7 @@ import com.gitblit.utils.StringUtils; import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.PageRegistration; +import com.gitblit.wicket.PageRegistration.DropDownMenuItem; import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.RepositoriesPanel; @@ -49,6 +52,11 @@ public RepositoriesPage(PageParameters params) { super(params); setup(params); + } + + @Override + protected boolean reusePageParameters() { + return true; } private void setup(PageParameters params) { @@ -74,7 +82,7 @@ List<RepositoryModel> repositories = getRepositories(params); RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", showAdmin, - repositories, true, getAccessRestrictions()); + true, repositories, true, getAccessRestrictions()); // push the panel down if we are hiding the admin controls and the // welcome message if (!showAdmin && !repositoriesMessage.isVisible()) { @@ -85,8 +93,21 @@ @Override protected void addDropDownMenus(List<PageRegistration> pages) { - DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters", RepositoriesPage.class); - menu.menuItems.addAll(getFilterMenuItems()); + PageParameters params = getPageParameters(); + + DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters", + RepositoriesPage.class); + // preserve time filter option on repository choices + menu.menuItems.addAll(getRepositoryFilterItems(params)); + + // preserve repository filter option on time choices + menu.menuItems.addAll(getTimeFilterItems(params)); + + if (menu.menuItems.size() > 0) { + // Reset Filter + menu.menuItems.add(new DropDownMenuItem(getString("gb.reset"), null, null)); + } + pages.add(menu); } @@ -98,17 +119,20 @@ } else { // Read user-supplied message if (!StringUtils.isEmpty(messageSource)) { - File file = new File(messageSource); + File file = GitBlit.getFileOrFolder(messageSource); if (file.exists()) { try { - FileReader reader = new FileReader(file); + FileInputStream fis = new FileInputStream(file); + InputStreamReader reader = new InputStreamReader(fis, + Constants.CHARACTER_ENCODING); message = MarkdownUtils.transformMarkdown(reader); + reader.close(); } catch (Throwable t) { - message = "Failed to read " + file; + message = getString("gb.failedToRead") + " " + file; warn(message, t); } } else { - message = messageSource + " is not a valid file."; + message = messageSource + " " + getString("gb.isNotValidFile"); } } } @@ -116,34 +140,47 @@ } private String readDefaultMarkdown(String file) { - String message; - try { - ContextRelativeResource res = WicketUtils.getResource(file); - InputStream is = res.getResourceStream().getInputStream(); - InputStreamReader reader = new InputStreamReader(is); - message = MarkdownUtils.transformMarkdown(reader); - reader.close(); - } catch (Throwable t) { - message = MessageFormat.format("Failed to read default message from {0}!", file); - error(message, t, false); + String base = file.substring(0, file.lastIndexOf('.')); + String ext = file.substring(file.lastIndexOf('.')); + String lc = getLanguageCode(); + String cc = getCountryCode(); + + // try to read file_en-us.ext, file_en.ext, file.ext + List<String> files = new ArrayList<String>(); + if (!StringUtils.isEmpty(lc)) { + if (!StringUtils.isEmpty(cc)) { + files.add(base + "_" + lc + "-" + cc + ext); + files.add(base + "_" + lc + "_" + cc + ext); + } + files.add(base + "_" + lc + ext); } - return message; - } - - @Override - protected void onBeforeRender() { - if (GitBlit.isDebugMode()) { - // strip Wicket tags in debug mode for jQuery DOM traversal - Application.get().getMarkupSettings().setStripWicketTags(true); + files.add(file); + + for (String name : files) { + String message; + InputStreamReader reader = null; + try { + ContextRelativeResource res = WicketUtils.getResource(name); + InputStream is = res.getResourceStream().getInputStream(); + reader = new InputStreamReader(is, Constants.CHARACTER_ENCODING); + message = MarkdownUtils.transformMarkdown(reader); + reader.close(); + return message; + } catch (ResourceStreamNotFoundException t) { + continue; + } catch (Throwable t) { + message = MessageFormat.format(getString("gb.failedToReadMessage"), file); + error(message, t, false); + return message; + } finally { + if (reader != null) { + try { + reader.close(); + } catch (Exception e) { + } + } + } } - super.onBeforeRender(); - } - @Override - protected void onAfterRender() { - if (GitBlit.isDebugMode()) { - // restore Wicket debug tags - Application.get().getMarkupSettings().setStripWicketTags(false); - } - super.onAfterRender(); + return MessageFormat.format(getString("gb.failedToReadMessage"), file); } } -- Gitblit v1.9.1