| | |
| | | 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.BugtraqProcessor;
|
| | | import com.gitblit.utils.DeepCopier;
|
| | |
| | | import com.gitblit.wicket.CacheControl;
|
| | | import com.gitblit.wicket.GitBlitWebSession;
|
| | | import com.gitblit.wicket.SessionlessForm;
|
| | | import com.gitblit.wicket.TicketsUI;
|
| | | import com.gitblit.wicket.WicketUtils;
|
| | | import com.gitblit.wicket.panels.LinkPanel;
|
| | | import com.gitblit.wicket.panels.NavigationPanel;
|
| | |
| | | error(MessageFormat.format(getString("gb.repositoryNotSpecifiedFor"), getPageName()), true);
|
| | | }
|
| | |
|
| | | if (!getRepositoryModel().hasCommits) {
|
| | | if (!getRepositoryModel().hasCommits && getClass() != EmptyRepositoryPage.class) {
|
| | | throw new RestartResponseException(EmptyRepositoryPage.class, params);
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | showAdmin = false;
|
| | | if (app().settings().getBoolean(Keys.web.authenticateAdminPages, true)) {
|
| | | boolean allowAdmin = app().settings().getBoolean(Keys.web.allowAdministration, false);
|
| | | showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
|
| | | } else {
|
| | | showAdmin = app().settings().getBoolean(Keys.web.allowAdministration, false);
|
| | | }
|
| | | isOwner = GitBlitWebSession.get().isLoggedIn()
|
| | | && (getRepositoryModel().isOwner(GitBlitWebSession.get().getUsername()));
|
| | |
|
| | | // register the available navigation links for this page and user
|
| | | List<NavLink> navLinks = registerNavLinks();
|
| | |
|
| | |
| | | add(navigationPanel);
|
| | |
|
| | | add(new ExternalLink("syndication", SyndicationServlet.asLink(getRequest()
|
| | | .getRelativePathPrefixToContextRoot(), repositoryName, null, 0)));
|
| | | .getRelativePathPrefixToContextRoot(), getRepositoryName(), null, 0)));
|
| | |
|
| | | // add floating search form
|
| | | SearchForm searchForm = new SearchForm("searchForm", repositoryName);
|
| | | SearchForm searchForm = new SearchForm("searchForm", getRepositoryName());
|
| | | add(searchForm);
|
| | | searchForm.setTranslatedAttributes();
|
| | |
|
| | |
| | | private List<NavLink> registerNavLinks() {
|
| | | PageParameters params = null;
|
| | | if (!StringUtils.isEmpty(repositoryName)) {
|
| | | params = WicketUtils.newRepositoryParameter(repositoryName);
|
| | | params = WicketUtils.newRepositoryParameter(getRepositoryName());
|
| | | }
|
| | | List<NavLink> navLinks = new ArrayList<NavLink>();
|
| | |
|
| | |
| | | navLinks.add(new PageNavLink("gb.summary", SummaryPage.class, params));
|
| | | } else {
|
| | | navLinks.add(new PageNavLink("gb.summary", SummaryPage.class, params));
|
| | | // pages.put("overview", new PageRegistration("gb.overview", OverviewPage.class, params));
|
| | | // pages.put("overview", new PageRegistration("gb.overview", OverviewPage.class, params));
|
| | | navLinks.add(new PageNavLink("gb.reflog", ReflogPage.class, params));
|
| | | }
|
| | |
|
| | | if (!model.hasCommits) {
|
| | | return navLinks;
|
| | | }
|
| | |
|
| | | navLinks.add(new PageNavLink("gb.commits", LogPage.class, params));
|
| | | navLinks.add(new PageNavLink("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 : TicketsUI.openStatii) {
|
| | | tParams.add(Lucene.status.name(), state);
|
| | | }
|
| | | if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(model) || app().tickets().hasTickets(model))) {
|
| | | PageParameters tParams = WicketUtils.newOpenTicketsParameter(getRepositoryName());
|
| | | navLinks.add(new PageNavLink("gb.tickets", TicketsPage.class, tParams)); |
| | | } |
| | | navLinks.add(new PageNavLink("gb.docs", DocsPage.class, params, true));
|
| | |
| | | // per-repository extra navlinks
|
| | | if (JGitUtils.getPagesBranch(r) != null) {
|
| | | ExternalNavLink pagesLink = new ExternalNavLink("gb.pages", PagesServlet.asLink(
|
| | | getRequest().getRelativePathPrefixToContextRoot(), repositoryName, null), true);
|
| | | getRequest().getRelativePathPrefixToContextRoot(), getRepositoryName(), null), true);
|
| | | navLinks.add(pagesLink);
|
| | | }
|
| | |
|
| | |
| | | navLinks.addAll(ext.getNavLinks(user, model));
|
| | | }
|
| | |
|
| | | // Conditionally add edit link
|
| | | showAdmin = false;
|
| | | if (app().settings().getBoolean(Keys.web.authenticateAdminPages, true)) {
|
| | | boolean allowAdmin = app().settings().getBoolean(Keys.web.allowAdministration, false);
|
| | | showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
|
| | | } else {
|
| | | showAdmin = app().settings().getBoolean(Keys.web.allowAdministration, false);
|
| | | }
|
| | | isOwner = GitBlitWebSession.get().isLoggedIn()
|
| | | && (model.isOwner(GitBlitWebSession.get().getUsername()));
|
| | | return navLinks;
|
| | | }
|
| | |
|
| | |
| | | }
|
| | |
|
| | | // (un)star link allows a user to star a repository
|
| | | if (user.isAuthenticated) {
|
| | | if (user.isAuthenticated && model.hasCommits) {
|
| | | PageParameters starParams = DeepCopier.copy(getPageParameters());
|
| | | starParams.put(PARAM_STAR, !user.getPreferences().isStarredRepository(model.name));
|
| | | String toggleStarUrl = getRequestCycle().urlFor(getClass(), starParams).toString();
|
| | |
| | | } else {
|
| | | String fork = app().repositories().getFork(user.username, model.name);
|
| | | boolean hasFork = fork != null;
|
| | | boolean canFork = user.canFork(model);
|
| | | boolean canFork = user.canFork(model) && model.hasCommits;
|
| | |
|
| | | if (hasFork || !canFork) {
|
| | | // user not allowed to fork or fork already exists or repo forbids forking
|
| | |
| | | m = model;
|
| | | }
|
| | | return m;
|
| | | }
|
| | |
|
| | | protected String getRepositoryName() {
|
| | | return getRepositoryModel().name;
|
| | | }
|
| | |
|
| | | protected RevCommit getCommit() {
|
| | |
| | | r = null;
|
| | | }
|
| | | // setup page header and footer
|
| | | setupPage(repositoryName, "/ " + getPageName());
|
| | | setupPage(getRepositoryName(), "/ " + getPageName());
|
| | | super.onBeforeRender();
|
| | | }
|
| | |
|