From f76fee63ed9cb3a30d3c0c092d860b1cb93a481b Mon Sep 17 00:00:00 2001
From: Gerard Smyth <gerard.smyth@gmail.com>
Date: Thu, 08 May 2014 13:09:30 -0400
Subject: [PATCH] Updated the SyndicationServlet to provide an additional option to return details of the tags in the repository instead of the commits. This uses a new 'ot' request parameter to indicate the object type of the content to return, which can be ither TAG or COMMIT. If this is not provided, then COMMIT is assumed to maintain backwards compatability. If tags are returned, then the paging parameters, 'l' and 'pg' are still supported, but searching options are currently ignored.
---
src/main/java/com/gitblit/wicket/panels/NavigationPanel.java | 61 +++++++++++++++++++-----------
1 files changed, 39 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/panels/NavigationPanel.java b/src/main/java/com/gitblit/wicket/panels/NavigationPanel.java
index 436db37..2bc92f4 100644
--- a/src/main/java/com/gitblit/wicket/panels/NavigationPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/NavigationPanel.java
@@ -23,9 +23,11 @@
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
-import com.gitblit.wicket.PageRegistration;
-import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
-import com.gitblit.wicket.PageRegistration.OtherPageLink;
+import com.gitblit.models.NavLink;
+import com.gitblit.models.NavLink.DropDownMenuNavLink;
+import com.gitblit.models.NavLink.DropDownPageMenuNavLink;
+import com.gitblit.models.NavLink.ExternalNavLink;
+import com.gitblit.models.NavLink.PageNavLink;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.pages.BasePage;
@@ -34,44 +36,59 @@
private static final long serialVersionUID = 1L;
public NavigationPanel(String id, final Class<? extends BasePage> pageClass,
- List<PageRegistration> registeredPages) {
+ List<NavLink> navLinks) {
super(id);
- ListDataProvider<PageRegistration> refsDp = new ListDataProvider<PageRegistration>(
- registeredPages);
- DataView<PageRegistration> refsView = new DataView<PageRegistration>("navLink", refsDp) {
+ ListDataProvider<NavLink> refsDp = new ListDataProvider<NavLink>(navLinks);
+ DataView<NavLink> linksView = new DataView<NavLink>("navLink", refsDp) {
private static final long serialVersionUID = 1L;
- public void populateItem(final Item<PageRegistration> item) {
- PageRegistration entry = item.getModelObject();
- if (entry.hiddenPhone) {
+ @Override
+ public void populateItem(final Item<NavLink> item) {
+ NavLink navLink = item.getModelObject();
+ String linkText = navLink.translationKey;
+ try {
+ // try to lookup translation key
+ linkText = getString(navLink.translationKey);
+ } catch (Exception e) {
+ }
+
+ if (navLink.hiddenPhone) {
WicketUtils.setCssClass(item, "hidden-phone");
}
- if (entry instanceof OtherPageLink) {
+ if (navLink instanceof ExternalNavLink) {
// other link
- OtherPageLink link = (OtherPageLink) entry;
- Component c = new LinkPanel("link", null, getString(entry.translationKey), link.url);
+ ExternalNavLink link = (ExternalNavLink) navLink;
+ Component c = new LinkPanel("link", null, linkText, link.url);
c.setRenderBodyOnly(true);
item.add(c);
- } else if (entry instanceof DropDownMenuRegistration) {
+ } else if (navLink instanceof DropDownPageMenuNavLink) {
// drop down menu
- DropDownMenuRegistration reg = (DropDownMenuRegistration) entry;
- Component c = new DropDownMenu("link", getString(entry.translationKey), reg);
+ DropDownPageMenuNavLink reg = (DropDownPageMenuNavLink) navLink;
+ Component c = new DropDownMenu("link", linkText, reg);
c.setRenderBodyOnly(true);
item.add(c);
WicketUtils.setCssClass(item, "dropdown");
- } else {
- // standard page link
- Component c = new LinkPanel("link", null, getString(entry.translationKey),
- entry.pageClass, entry.params);
+ } else if (navLink instanceof DropDownMenuNavLink) {
+ // drop down menu
+ DropDownMenuNavLink reg = (DropDownMenuNavLink) navLink;
+ Component c = new DropDownMenu("link", linkText, reg);
c.setRenderBodyOnly(true);
- if (entry.pageClass.equals(pageClass)) {
+ item.add(c);
+ WicketUtils.setCssClass(item, "dropdown");
+ } else if (navLink instanceof PageNavLink) {
+ PageNavLink reg = (PageNavLink) navLink;
+ // standard page link
+ Component c = new LinkPanel("link", null, linkText,
+ reg.pageClass, reg.params);
+ c.setRenderBodyOnly(true);
+ if (reg.pageClass.equals(pageClass)) {
WicketUtils.setCssClass(item, "active");
}
item.add(c);
}
}
};
- add(refsView);
+ add(linksView);
}
}
\ No newline at end of file
--
Gitblit v1.9.1