From 5e3521f8496511db4df45f011ea72f25623ad90f Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 03 Mar 2014 21:34:32 -0500 Subject: [PATCH] Ticket tracker with patchset contributions --- src/main/java/com/gitblit/wicket/pages/RepositoryPage.java | 20 ++++++++++++++++++-- 1 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java index 079cb2e..86df456 100644 --- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java @@ -56,6 +56,7 @@ import com.gitblit.models.UserRepositoryPreferences; import com.gitblit.servlet.PagesServlet; import com.gitblit.servlet.SyndicationServlet; +import com.gitblit.tickets.TicketIndexer.Lucene; import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.DeepCopier; import com.gitblit.utils.JGitUtils; @@ -95,7 +96,7 @@ public RepositoryPage(PageParameters params) { super(params); repositoryName = WicketUtils.getRepositoryName(params); - String root =StringUtils.getFirstPathElement(repositoryName); + String root = StringUtils.getFirstPathElement(repositoryName); if (StringUtils.isEmpty(root)) { projectName = app().settings().getString(Keys.web.repositoryRootGroupName, "main"); } else { @@ -200,11 +201,18 @@ } pages.put("commits", new PageRegistration("gb.commits", LogPage.class, params)); pages.put("tree", new PageRegistration("gb.tree", TreePage.class, params)); + if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(getRepositoryModel()) || app().tickets().hasTickets(getRepositoryModel()))) { + PageParameters tParams = new PageParameters(params); + for (String state : TicketsPage.openStatii) { + tParams.add(Lucene.status.name(), state); + } + pages.put("tickets", new PageRegistration("gb.tickets", TicketsPage.class, tParams)); + } pages.put("docs", new PageRegistration("gb.docs", DocsPage.class, params, true)); - pages.put("compare", new PageRegistration("gb.compare", ComparePage.class, params, true)); if (app().settings().getBoolean(Keys.web.allowForking, true)) { pages.put("forks", new PageRegistration("gb.forks", ForksPage.class, params, true)); } + pages.put("compare", new PageRegistration("gb.compare", ComparePage.class, params, true)); // conditional links // per-repository extra page links @@ -288,6 +296,14 @@ } } + // new ticket button + if (user.isAuthenticated && app().tickets().isAcceptingNewTickets(getRepositoryModel())) { + String newTicketUrl = getRequestCycle().urlFor(NewTicketPage.class, WicketUtils.newRepositoryParameter(repositoryName)).toString(); + addToolbarButton("newTicketLink", "fa fa-ticket", getString("gb.new"), newTicketUrl); + } else { + add(new Label("newTicketLink").setVisible(false)); + } + // (un)star link allows a user to star a repository if (user.isAuthenticated) { PageParameters starParams = DeepCopier.copy(getPageParameters()); -- Gitblit v1.9.1