James Moger
2013-06-25 0a44f9b3546f778a5d25c93dde3560703660a206
src/main/java/com/gitblit/wicket/pages/RootPage.java
@@ -27,6 +27,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
@@ -51,6 +52,7 @@
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.PageRegistration;
import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
import com.gitblit.wicket.PageRegistration.DropDownToggleItem;
import com.gitblit.wicket.SessionlessForm;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.GravatarImage;
@@ -118,8 +120,8 @@
      // navigation links
      List<PageRegistration> pages = new ArrayList<PageRegistration>();
      if (!authenticateView || (authenticateView && GitBlitWebSession.get().isLoggedIn())) {
//         pages.add(new PageRegistration("gb.home", HomePage.class,
//               getRootPageParameters()));
         pages.add(new PageRegistration(GitBlitWebSession.get().isLoggedIn() ? "gb.myDashboard" : "gb.dashboard", MyDashboardPage.class,
               getRootPageParameters()));
         pages.add(new PageRegistration("gb.repositories", RepositoriesPage.class,
               getRootPageParameters()));
         pages.add(new PageRegistration("gb.activity", ActivityPage.class, getRootPageParameters()));
@@ -178,7 +180,7 @@
            // remove days back parameter if it is the default value
            if (params.containsKey("db")
                  && params.getInt("db") == GitBlit.getInteger(Keys.web.activityDuration, 14)) {
                  && params.getInt("db") == GitBlit.getInteger(Keys.web.activityDuration, 7)) {
               params.remove("db");
            }
            return params;
@@ -255,7 +257,7 @@
         List<String> sets = new ArrayList<String>(setMap.keySet());
         Collections.sort(sets);
         for (String set : sets) {
            filters.add(new DropDownMenuItem(MessageFormat.format("{0} ({1})", set,
            filters.add(new DropDownToggleItem(MessageFormat.format("{0} ({1})", set,
                  setMap.get(set).get()), "set", set, params));
         }
         // divider
@@ -267,7 +269,7 @@
         List<TeamModel> teams = new ArrayList<TeamModel>(user.teams);
         Collections.sort(teams);
         for (TeamModel team : teams) {
            filters.add(new DropDownMenuItem(MessageFormat.format("{0} ({1})", team.name,
            filters.add(new DropDownToggleItem(MessageFormat.format("{0} ({1})", team.name,
                  team.repositories.size()), "team", team.name, params));
         }
         // divider
@@ -282,7 +284,7 @@
         for (String expression : expressions) {
            if (!StringUtils.isEmpty(expression)) {
               addedExpression = true;
               filters.add(new DropDownMenuItem(null, "x", expression, params));
               filters.add(new DropDownToggleItem(null, "x", expression, params));
            }
         }
         // if we added any custom expressions, add a divider
@@ -295,18 +297,36 @@
   protected List<DropDownMenuItem> getTimeFilterItems(PageParameters params) {
      // days back choices - additive parameters
      int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 14);
      int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 7);
      if (daysBack < 1) {
         daysBack = 14;
         daysBack = 7;
      }
      PageParameters clonedParams;
      if (params == null) {
         clonedParams = new PageParameters();
      } else {
         clonedParams = new PageParameters(params);
      }
      if (!clonedParams.containsKey("db")) {
         clonedParams.put("db",  daysBack);
      }
      List<DropDownMenuItem> items = new ArrayList<DropDownMenuItem>();
      Set<Integer> choicesSet = new HashSet<Integer>(Arrays.asList(daysBack, 14, 28, 60, 90, 180));
      Set<Integer> choicesSet = new TreeSet<Integer>(GitBlit.getIntegers(Keys.web.activityDurationChoices));
      if (choicesSet.isEmpty()) {
          choicesSet.addAll(Arrays.asList(1, 3, 7, 14, 21, 28));
      }
      List<Integer> choices = new ArrayList<Integer>(choicesSet);
      Collections.sort(choices);
      String lastDaysPattern = getString("gb.lastNDays");
      for (Integer db : choices) {
         String txt = MessageFormat.format(lastDaysPattern, db);
         items.add(new DropDownMenuItem(txt, "db", db.toString(), params));
         if (db == 1) {
            items.add(new DropDownMenuItem(getString("gb.time.today"), "db", db.toString(), clonedParams));
         } else {
            String txt = MessageFormat.format(lastDaysPattern, db);
            items.add(new DropDownMenuItem(txt, "db", db.toString(), clonedParams));
         }
      }
      items.add(new DropDownMenuItem());
      return items;
@@ -500,13 +520,17 @@
         boolean standardLogin = session.authenticationType.isStandard();
         if (GitBlit.getBoolean(Keys.web.allowGravatar, true)) {
            add(new GravatarImage("username", user.getDisplayName(), user.emailAddress, "navbarGravatar", 20, false));
            add(new GravatarImage("username", user.getDisplayName(),
                  user.emailAddress, "navbarGravatar", 20, false, false));
         } else {
            add(new Label("username", user.getDisplayName()));
         }
         add(new Label("displayName", user.getDisplayName()));
         add(new BookmarkablePageLink<Void>("newRepository",
               EditRepositoryPage.class).setVisible(user.canAdmin() || user.canCreate()));
         add(new BookmarkablePageLink<Void>("myProfile", 
               UserPage.class, WicketUtils.newUsernameParameter(user.username)));