resources/bootstrap.gb.css | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/wicket/PageRegistration.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/wicket/pages/ActivityPage.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/wicket/pages/RepositoriesPage.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/wicket/pages/RootPage.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/wicket/panels/DropDownMenu.java | ●●●●● patch | view | raw | blame | history |
resources/bootstrap.gb.css
@@ -86,12 +86,22 @@ border-color: #eee; } .topbar div > ul .menu-dropdown .selected, .nav .menu-dropdown .selected, .topbar div > ul .dropdown-menu .selected, .nav .dropdown-menu .selected { background-image: url("bullet_blue.png"); background-repeat: no-repeat; background-position: left; } .topbar div > ul .menu-dropdown li a, .nav .menu-dropdown li a, .topbar div > ul .dropdown-menu li a, .nav .dropdown-menu li a { color: #555; text-shadow: none; outline: 0; } .topbar ul .menu-dropdown li a, .topbar ul .dropdown-menu li a { padding: 4px 22px; } topbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{ background-color: #000070; background-repeat:no-repeat; src/com/gitblit/wicket/PageRegistration.java
@@ -76,19 +76,17 @@ private static final long serialVersionUID = 1L; final PageParameters params; final PageParameters parameters; final String displayText; final String parameter; final String value; final boolean isSelected; /** * Divider constructor. */ public DropDownMenuItem() { displayText = null; parameter = null; value = null; params = null; this(null, null, null, null); } /** @@ -114,16 +112,37 @@ this.displayText = displayText; this.parameter = parameter; this.value = value; if (params == null) { this.params = new PageParameters(); // no parameters specified parameters = new PageParameters(); setParameter(parameter, value); isSelected = false; } else { this.params = new PageParameters(params); parameters = new PageParameters(params); if (parameters.containsKey(parameter)) { isSelected = params.getString(parameter).equals(value); if (isSelected) { // already selected, so remove this enables toggling parameters.remove(parameter); } else { // set the new selection value setParameter(parameter, value); } } else { // not currently selected isSelected = false; setParameter(parameter, value); } } } private void setParameter(String parameter, String value) { if (!StringUtils.isEmpty(parameter)) { if (StringUtils.isEmpty(value)) { this.params.remove(parameter); this.parameters.remove(parameter); } else { this.params.put(parameter, value); this.parameters.put(parameter, value); } } } @@ -136,13 +155,17 @@ } public PageParameters getPageParameters() { return params; return parameters; } public boolean isDivider() { return displayText == null && value == null && parameter == null; } public boolean isSelected() { return isSelected; } @Override public int hashCode() { if (isDivider()) { src/com/gitblit/wicket/pages/ActivityPage.java
@@ -109,16 +109,13 @@ PageParameters currentParameters = getPageParameters(); int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 14); if (currentParameters.containsKey("db")) { daysBack = currentParameters.getInt("db"); } if (daysBack < 1) { daysBack = 14; if (currentParameters != null && !currentParameters.containsKey("db")) { currentParameters.put("db", daysBack); } // preserve time filter options on repository choices filters.menuItems.addAll(getRepositoryFilterItems(new PageParameters("db=" + daysBack))); filters.menuItems.addAll(getRepositoryFilterItems(currentParameters)); // preserve repository filter options on time choices filters.menuItems.addAll(getTimeFilterItems(currentParameters)); src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -91,20 +91,16 @@ @Override protected void addDropDownMenus(List<PageRegistration> pages) { int daysBack = 0; PageParameters currentParameters = getPageParameters(); if (currentParameters != null && currentParameters.containsKey("db")) { daysBack = currentParameters.getInt("db"); } PageParameters params = null; if (daysBack > 0) { params = new PageParameters("db=" + daysBack); int daysBack = GitBlit.getInteger(Keys.web.activityDuration, 14); if (currentParameters != null && !currentParameters.containsKey("db")) { currentParameters.put("db", daysBack); } DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters", RepositoriesPage.class); // preserve time filter option on repository choices menu.menuItems.addAll(getRepositoryFilterItems(params)); menu.menuItems.addAll(getRepositoryFilterItems(currentParameters)); // preserve repository filter option on time choices menu.menuItems.addAll(getTimeFilterItems(currentParameters)); src/com/gitblit/wicket/pages/RootPage.java
@@ -171,12 +171,19 @@ private PageParameters getRootPageParameters() { if (reusePageParameters()) { PageParameters params = getPageParameters(); if (params != null) { PageParameters pp = getPageParameters(); if (pp != null) { PageParameters params = new PageParameters(pp); // remove named repository parameter params.remove("r"); } return params; // remove days back parameter if it is the default value if (params.containsKey("db") && params.getInt("db") == GitBlit.getInteger(Keys.web.activityDuration, 14)) { params.remove("db"); } return params; } } return null; } @@ -262,7 +269,7 @@ if (addedExpression) { filters.add(new DropDownMenuItem()); } } } return new ArrayList<DropDownMenuItem>(filters); } @@ -362,7 +369,7 @@ if (!hasParameter) { models.addAll(availableModels); } // time-filter the list if (daysBack > 0) { Calendar cal = Calendar.getInstance(); src/com/gitblit/wicket/panels/DropDownMenu.java
@@ -43,9 +43,12 @@ if (entry.isDivider()) { item.add(new Label("menuItem").setRenderBodyOnly(true)); WicketUtils.setCssClass(item, "divider"); } else { } else { item.add(new LinkPanel("menuItem", null, entry.toString(), menu.pageClass, entry.getPageParameters()).setRenderBodyOnly(true)); if (entry.isSelected()) { WicketUtils.setCssClass(item, "selected"); } } } };