From 077d23176a8f098766bf492081ae5ab9acb2d285 Mon Sep 17 00:00:00 2001
From: Carsten Lenz <clenz2@csc.com>
Date: Fri, 13 Jun 2014 08:26:23 -0400
Subject: [PATCH] Add german translation of welcome.mkd

---
 src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java |  151 +++++++++++++++++++-------------------------------
 1 files changed, 57 insertions(+), 94 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java b/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
index b0c89b7..0f7d602 100644
--- a/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/MyDashboardPage.java
@@ -19,10 +19,7 @@
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.io.Serializable;
-import java.text.DateFormat;
 import java.text.MessageFormat;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collections;
@@ -34,12 +31,10 @@
 
 import org.apache.wicket.Component;
 import org.apache.wicket.PageParameters;
-import org.apache.wicket.behavior.HeaderContributor;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Fragment;
 import org.eclipse.jgit.lib.Constants;
 
-import com.gitblit.GitBlit;
 import com.gitblit.Keys;
 import com.gitblit.models.ProjectModel;
 import com.gitblit.models.RepositoryModel;
@@ -47,11 +42,14 @@
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.MarkdownUtils;
 import com.gitblit.utils.StringUtils;
+import com.gitblit.wicket.CacheControl;
+import com.gitblit.wicket.CacheControl.LastModified;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.WicketUtils;
-import com.gitblit.wicket.ng.NgController;
-import com.gitblit.wicket.panels.LinkPanel;
+import com.gitblit.wicket.panels.FilterableProjectList;
+import com.gitblit.wicket.panels.FilterableRepositoryList;
 
+@CacheControl(LastModified.ACTIVITY)
 public class MyDashboardPage extends DashboardPage {
 
 	public MyDashboardPage() {
@@ -72,9 +70,9 @@
 	private void setup(PageParameters params) {
 		setupPage("", "");
 		// check to see if we should display a login message
-		boolean authenticateView = GitBlit.getBoolean(Keys.web.authenticateViewPages, true);
+		boolean authenticateView = app().settings().getBoolean(Keys.web.authenticateViewPages, true);
 		if (authenticateView && !GitBlitWebSession.get().isLoggedIn()) {
-			String messageSource = GitBlit.getString(Keys.web.loginMessage, "gitblit");
+			String messageSource = app().settings().getString(Keys.web.loginMessage, "gitblit");
 			String message = readMarkdown(messageSource, "login.mkd");
 			Component repositoriesMessage = new Label("repositoriesMessage", message);
 			add(repositoriesMessage.setEscapeModelStrings(false));
@@ -84,7 +82,7 @@
 		}
 
 		// Load the markdown welcome message
-		String messageSource = GitBlit.getString(Keys.web.repositoriesMessage, "gitblit");
+		String messageSource = app().settings().getString(Keys.web.repositoriesMessage, "gitblit");
 		String message = readMarkdown(messageSource, "welcome.mkd");
 		Component repositoriesMessage = new Label("repositoriesMessage", message)
 				.setEscapeModelStrings(false).setVisible(message.length() > 0);
@@ -97,14 +95,18 @@
 
 		// parameters
 		int daysBack = params == null ? 0 : WicketUtils.getDaysBack(params);
+		int maxDaysBack = app().settings().getInteger(Keys.web.activityDurationMaximum, 30);
 		if (daysBack < 1) {
-			daysBack = 7;
+			daysBack = app().settings().getInteger(Keys.web.activityDuration, 7);
+		}
+		if (maxDaysBack > 0 && daysBack > maxDaysBack) {
+			daysBack = maxDaysBack;
 		}
 		Calendar c = Calendar.getInstance();
 		c.add(Calendar.DATE, -1*daysBack);
 		Date minimumDate = c.getTime();
-		
-		// build repo lists 
+
+		// build repo lists
 		List<RepositoryModel> starred = new ArrayList<RepositoryModel>();
 		List<RepositoryModel> owned = new ArrayList<RepositoryModel>();
 		List<RepositoryModel> active = new ArrayList<RepositoryModel>();
@@ -113,80 +115,90 @@
 			if (model.isUsersPersonalRepository(user.username) || model.isOwner(user.username)) {
 				owned.add(model);
 			}
-			
+
 			if (user.getPreferences().isStarredRepository(model.name)) {
 				starred.add(model);
 			}
-			
+
 			if (model.isShowActivity() && model.lastChange.after(minimumDate)) {
 				active.add(model);
 			}
 		}
-		
+
 		Comparator<RepositoryModel> lastUpdateSort = new Comparator<RepositoryModel>() {
 			@Override
 			public int compare(RepositoryModel o1, RepositoryModel o2) {
 				return o2.lastChange.compareTo(o1.lastChange);
 			}
 		};
-		
+
 		Collections.sort(owned, lastUpdateSort);
 		Collections.sort(starred, lastUpdateSort);
 		Collections.sort(active, lastUpdateSort);
-		
+
+		String activityTitle;
 		Set<RepositoryModel> feed = new HashSet<RepositoryModel>();
 		feed.addAll(starred);
 		feed.addAll(owned);
 		if (feed.isEmpty()) {
+			// no starred or owned, go with recent activity
+			activityTitle = getString("gb.recentActivity");
 			feed.addAll(active);
+		} else if (starred.isEmpty()){
+			// no starred, owned repos feed
+			activityTitle = getString("gb.owned");
+		} else if (owned.isEmpty()){
+			// no owned, starred repos feed
+			activityTitle = getString("gb.starred");
+		} else {
+			// starred and owned repositories
+			activityTitle = getString("gb.starredAndOwned");
 		}
-		
-		addActivity(user, feed, daysBack);
-		
+
+		addActivity(user, feed, activityTitle, daysBack);
+
 		Fragment repositoryTabs;
 		if (UserModel.ANONYMOUS.equals(user)) {
 			repositoryTabs = new Fragment("repositoryTabs", "anonymousTabsFragment", this);
 		} else {
 			repositoryTabs = new Fragment("repositoryTabs", "authenticatedTabsFragment", this);
 		}
-		
+
 		add(repositoryTabs);
-		
-		Fragment projectList = createProjectList();
-		repositoryTabs.add(projectList);
-		
+
+		// projects list
+		List<ProjectModel> projects = app().projects().getProjectModels(getRepositoryModels(), false);
+		repositoryTabs.add(new FilterableProjectList("projects", projects));
+
 		// active repository list
 		if (active.isEmpty()) {
 			repositoryTabs.add(new Label("active").setVisible(false));
 		} else {
-			Fragment activeView = createNgList("active", "activeListFragment", "activeCtrl", active);
-			repositoryTabs.add(activeView);
+			FilterableRepositoryList repoList = new FilterableRepositoryList("active", active);
+			repoList.setTitle(getString("gb.activeRepositories"), "icon-time");
+			repositoryTabs.add(repoList);
 		}
-		
+
 		// starred repository list
 		if (ArrayUtils.isEmpty(starred)) {
 			repositoryTabs.add(new Label("starred").setVisible(false));
 		} else {
-			Fragment starredView = createNgList("starred", "starredListFragment", "starredCtrl", starred);
-			repositoryTabs.add(starredView);
+			FilterableRepositoryList repoList = new FilterableRepositoryList("starred", starred);
+			repoList.setTitle(getString("gb.starredRepositories"), "icon-star");
+			repositoryTabs.add(repoList);
 		}
-		
+
 		// owned repository list
 		if (ArrayUtils.isEmpty(owned)) {
 			repositoryTabs.add(new Label("owned").setVisible(false));
 		} else {
-			Fragment ownedView = createNgList("owned", "ownedListFragment", "ownedCtrl", owned);
-			if (user.canCreate) {
-				// create button
-				ownedView.add(new LinkPanel("create", "btn btn-mini", getString("gb.newRepository"), EditRepositoryPage.class));
-			} else {
-				// no button
-				ownedView.add(new Label("create").setVisible(false));
-			}
-			repositoryTabs.add(ownedView);
+			FilterableRepositoryList repoList = new FilterableRepositoryList("owned", owned);
+			repoList.setTitle(getString("gb.myRepositories"), "icon-user");
+			repoList.setAllowCreate(user.canCreate() || user.canAdmin());
+			repositoryTabs.add(repoList);
 		}
 	}
-	
+
 	private String readMarkdown(String messageSource, String resource) {
 		String message = "";
 		if (messageSource.equalsIgnoreCase("gitblit")) {
@@ -195,7 +207,7 @@
 		} else {
 			// Read user-supplied message
 			if (!StringUtils.isEmpty(messageSource)) {
-				File file = GitBlit.getFileOrFolder(messageSource);
+				File file = app().runtime().getFileOrFolder(messageSource);
 				if (file.exists()) {
 					try {
 						FileInputStream fis = new FileInputStream(file);
@@ -226,7 +238,7 @@
 		if (!StringUtils.isEmpty(lc)) {
 			if (!StringUtils.isEmpty(cc)) {
 				files.add(base + "_" + lc + "-" + cc + ext);
-				files.add(base + "_" + lc + "_" + cc + ext);
+				files.add(base + "_" + lc + "_" + cc.toUpperCase() + ext);
 			}
 			files.add(base + "_" + lc + ext);
 		}
@@ -255,57 +267,8 @@
 					} catch (Exception e) {
 					}
 				}
-			}			
+			}
 		}
 		return MessageFormat.format(getString("gb.failedToReadMessage"), file);
-	}
-	
-	protected Fragment createProjectList() {
-		String format = GitBlit.getString(Keys.web.datestampShortFormat, "MM/dd/yy");
-		final DateFormat df = new SimpleDateFormat(format);
-		df.setTimeZone(getTimeZone());
-		List<ProjectModel> projects = GitBlit.self().getProjectModels(getRepositoryModels(), false);
-		Collections.sort(projects, new Comparator<ProjectModel>() {
-			@Override
-			public int compare(ProjectModel o1, ProjectModel o2) {
-				return o2.lastChange.compareTo(o1.lastChange);
-			}
-		});
-
-		List<ProjectListItem> list = new ArrayList<ProjectListItem>();
-		for (ProjectModel proj : projects) {
-			if (proj.isUserProject() || proj.repositories.isEmpty()) {
-				// exclude user projects from list
-				continue;
-			}
-			ProjectListItem item = new ProjectListItem();
-			item.p = proj.name;
-			item.n = StringUtils.isEmpty(proj.title) ? proj.name : proj.title;
-			item.i = proj.description;
-			item.t = getTimeUtils().timeAgo(proj.lastChange);
-			item.d = df.format(proj.lastChange);
-			item.c = proj.repositories.size();
-			list.add(item);
-		}
-		
-		// inject an AngularJS controller with static data
-		NgController ctrl = new NgController("projectListCtrl");
-		ctrl.addVariable("projectList", list);
-		add(new HeaderContributor(ctrl));
-		
-		Fragment fragment = new Fragment("projectList", "projectListFragment", this);
-		return fragment;
-	}
-	
-	protected class ProjectListItem implements Serializable {
-
-		private static final long serialVersionUID = 1L;
-		
-		String p; // path
-		String n; // name
-		String t; // time ago
-		String d; // last updated
-		String i; // information/description
-		long c;   // repository count
 	}
 }

--
Gitblit v1.9.1