From 6c5511020457c39961d069071ac60f7140ec724f Mon Sep 17 00:00:00 2001
From: Lukasz Jader <ljaderdev@gmail.com>
Date: Wed, 19 Sep 2012 16:24:10 -0400
Subject: [PATCH] Update polish translation of EmptyRepositoryPage

---
 src/com/gitblit/wicket/pages/LuceneSearchPage.java |  113 +++++++++++++++++++++++++-------------------------------
 1 files changed, 50 insertions(+), 63 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.java b/src/com/gitblit/wicket/pages/LuceneSearchPage.java
index 8e09a34..54e27ce 100644
--- a/src/com/gitblit/wicket/pages/LuceneSearchPage.java
+++ b/src/com/gitblit/wicket/pages/LuceneSearchPage.java
@@ -19,11 +19,12 @@
 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.form.ListMultipleChoice;
-import org.apache.wicket.markup.html.form.StatelessForm;
 import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
@@ -39,6 +40,7 @@
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
+import com.gitblit.wicket.SessionlessForm;
 import com.gitblit.wicket.StringChoiceRenderer;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.LinkPanel;
@@ -71,7 +73,7 @@
 				repositories.add(repository);
 			}
 
-			page = WicketUtils.getPage(params);	
+			page = WicketUtils.getPage(params);
 			
 			if (params.containsKey("repositories")) {
 				String value = params.getString("repositories", "");
@@ -103,9 +105,13 @@
 				availableRepositories.add(model.name);
 			}
 		}
-		
-		if (availableRepositories.size() == 0) {
-			info(getString("gb.noIndexedRepositoriesWarning"));
+		boolean luceneEnabled = GitBlit.getBoolean(Keys.web.allowLuceneIndexing, true);
+		if (luceneEnabled) {
+			if (availableRepositories.size() == 0) {
+				info(getString("gb.noIndexedRepositoriesWarning"));
+			}
+		} else {
+			error(getString("gb.luceneDisabled"));
 		}
 
 		// enforce user-accessible repository selections
@@ -119,7 +125,7 @@
 		// search form
 		final Model<String> queryModel = new Model<String>(query);
 		final Model<ArrayList<String>> repositoriesModel = new Model<ArrayList<String>>(searchRepositories);
-		StatelessForm<Void> form = new StatelessForm<Void>("searchForm") {
+		SessionlessForm<Void> form = new SessionlessForm<Void>("searchForm", getClass()) {
 			
 			private static final long serialVersionUID = 1L;
 
@@ -144,9 +150,9 @@
 		ListMultipleChoice<String> selections = new ListMultipleChoice<String>("repositories", 
 				repositoriesModel, availableRepositories, new StringChoiceRenderer());
 		selections.setMaxRows(8);
-		form.add(selections);
-		form.add(new TextField<String>("query", queryModel));
-		add(form);
+		form.add(selections.setEnabled(luceneEnabled));
+		form.add(new TextField<String>("query", queryModel).setEnabled(luceneEnabled));
+		add(form.setEnabled(luceneEnabled));
 				
 		// execute search
 		final List<SearchResult> results = new ArrayList<SearchResult>();
@@ -156,11 +162,16 @@
 		
 		// results header
 		if (results.size() == 0) {
-			add(new Label("resultsHeader").setVisible(false));
-			add(new Label("resultsCount").setVisible(false));
+			if (!ArrayUtils.isEmpty(searchRepositories) && !StringUtils.isEmpty(query)) {
+				add(new Label("resultsHeader", query).setRenderBodyOnly(true));
+				add(new Label("resultsCount", getString("gb.noHits")).setRenderBodyOnly(true));
+			} else {
+				add(new Label("resultsHeader").setVisible(false));
+				add(new Label("resultsCount").setVisible(false));
+			}
 		} else {
 			add(new Label("resultsHeader", query).setRenderBodyOnly(true));
-			add(new Label("resultsCount", MessageFormat.format("results {0} - {1} ({2} hits)",
+			add(new Label("resultsCount", MessageFormat.format(getString("gb.queryResults"),
 					results.get(0).hitId, results.get(results.size() - 1).hitId, results.get(0).totalHits)).
 					setRenderBodyOnly(true));
 		}
@@ -170,13 +181,32 @@
 		final DataView<SearchResult> resultsView = new DataView<SearchResult>("searchResults", resultsDp) {
 			private static final long serialVersionUID = 1L;
 			public void populateItem(final Item<SearchResult> item) {
-				SearchResult sr = item.getModelObject();
+				final SearchResult sr = item.getModelObject();
 				switch(sr.type) {
 				case commit: {
 					Label icon = WicketUtils.newIcon("type", "icon-refresh");
 					WicketUtils.setHtmlTooltip(icon, "commit");
 					item.add(icon);
 					item.add(new LinkPanel("summary", null, sr.summary, CommitPage.class, WicketUtils.newObjectParameter(sr.repository, sr.commitId)));
+					// show tags
+					Fragment fragment = new Fragment("tags", "tagsPanel", LuceneSearchPage.this);
+					List<String> tags = sr.tags;
+					if (tags == null) {
+						tags = new ArrayList<String>();
+					}
+					ListDataProvider<String> tagsDp = new ListDataProvider<String>(tags);
+					final DataView<String> tagsView = new DataView<String>("tag", tagsDp) {
+						private static final long serialVersionUID = 1L;
+						public void populateItem(final Item<String> item) {
+							String tag = item.getModelObject();
+							Component c = new LinkPanel("tagLink", null, tag, TagPage.class,
+									WicketUtils.newObjectParameter(sr.repository, Constants.R_TAGS + tag));
+							WicketUtils.setCssClass(c, "tagRef");							
+							item.add(c);
+						}
+					};
+					fragment.add(tagsView);
+					item.add(fragment);
 					break;
 				}
 				case blob: {
@@ -184,6 +214,7 @@
 					WicketUtils.setHtmlTooltip(icon, "blob");
 					item.add(icon);
 					item.add(new LinkPanel("summary", null, sr.path, BlobPage.class, WicketUtils.newPathParameter(sr.repository, sr.branch, sr.path)));
+					item.add(new Label("tags").setVisible(false));
 					break;
 				}
 				case issue: {
@@ -191,6 +222,7 @@
 					WicketUtils.setHtmlTooltip(icon, "issue");
 					item.add(icon);
 					item.add(new Label("summary", "issue: " + sr.issueId));
+					item.add(new Label("tags").setVisible(false));
 					break;
 				}
 				}
@@ -202,7 +234,7 @@
 					item.add(new LinkPanel("branch", "branch", StringUtils.getRelativePath(Constants.R_HEADS, sr.branch), LogPage.class, WicketUtils.newObjectParameter(sr.repository, sr.branch)));
 				}
 				item.add(new Label("author", sr.author));
-				item.add(WicketUtils.createDatestampLabel("date", sr.date, getTimeZone()));
+				item.add(WicketUtils.createDatestampLabel("date", sr.date, getTimeZone(), getTimeUtils()));
 			}
 		};
 		add(resultsView.setVisible(results.size() > 0));
@@ -211,59 +243,14 @@
 		pagerParams.put("repositories", StringUtils.flattenStrings(repositoriesModel.getObject()));
 		pagerParams.put("query", queryModel.getObject());
 		
+		boolean showPager = false;
 		int totalPages = 0;
 		if (results.size() > 0) {
 			totalPages = (results.get(0).totalHits / pageSize) + (results.get(0).totalHits % pageSize > 0 ? 1 : 0);
+			showPager = results.get(0).totalHits > pageSize;
 		}
 		
-		add(new PagerPanel("topPager", page, totalPages, LuceneSearchPage.class, pagerParams));
-		add(new PagerPanel("bottomPager", page, totalPages, LuceneSearchPage.class, pagerParams));
+		add(new PagerPanel("topPager", page, totalPages, LuceneSearchPage.class, pagerParams).setVisible(showPager));
+		add(new PagerPanel("bottomPager", page, totalPages, LuceneSearchPage.class, pagerParams).setVisible(showPager));
 	}
-	
-//	private String buildPager(int currentPage, int count, int total) {
-//		int pages = (total / count) + (total % count == 0 ? 0 : 1);
-//		
-//		// pages are 1-indexed
-//		// previous page link
-//		if (currentPage <= 1) {
-//			sb.append(MessageFormat.format(li, "disabled", "#", "&larr;"));
-//		} else {
-//			List<String> parameters = new ArrayList<String>();
-//			if (!StringUtils.isEmpty(penString)) {
-//				parameters.add(penString);
-//			}
-//			parameters.add(MessageFormat.format(pg, currentPage - 1));
-//			sb.append(MessageFormat.format(li, "", StringUtils.flattenStrings(parameters, "&"), "&larr;"));
-//		}
-//
-//		// page links in middle
-//		int minpage = Math.max(1, currentPage - Math.min(2, 2));
-//		int maxpage = Math.min(pages, minpage + 4);
-//		for (int i = minpage; i <= maxpage; i++) {
-//			String cssClass = "";
-//			if (i == currentPage) {
-//				cssClass = "active";
-//			}
-//			List<String> parameters = new ArrayList<String>();
-//			if (!StringUtils.isEmpty(penString)) {
-//				parameters.add(penString);
-//			}
-//			parameters.add(MessageFormat.format(pg, i));
-//			sb.append(MessageFormat.format(li, cssClass, StringUtils.flattenStrings(parameters, "&"), i));
-//		}
-//
-//		// next page link
-//		if (currentPage == pages) {
-//			sb.append(MessageFormat.format(li, "disabled", "#", "&rarr;"));
-//		} else {
-//			List<String> parameters = new ArrayList<String>();
-//			if (!StringUtils.isEmpty(penString)) {
-//				parameters.add(penString);
-//			}
-//			parameters.add(MessageFormat.format(pg, currentPage + 1));
-//			sb.append(MessageFormat.format(li, "", StringUtils.flattenStrings(parameters, "&"), "&rarr;"));
-//		}
-//		return sb.toString();
-//	}
-
 }

--
Gitblit v1.9.1