diff options
Diffstat (limited to 'src/main/java/com/gitblit/wicket/pages/RepositoryPage.java')
-rw-r--r-- | 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 079cb2e9..86df4565 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.UserModel; 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 abstract class RepositoryPage extends RootPage { 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 @@ public abstract class RepositoryPage extends RootPage { }
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 @@ public abstract class RepositoryPage extends RootPage { }
}
+ // 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());
|