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