| | |
| | | package com.gitblit.wicket;
|
| | |
|
| | | import java.text.MessageFormat;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.HashMap;
|
| | |
| | | import com.gitblit.utils.JGitUtils;
|
| | | import com.gitblit.utils.JGitUtils.SearchType;
|
| | | import com.gitblit.utils.StringUtils;
|
| | | import com.gitblit.wicket.models.RepositoryModel;
|
| | | import com.gitblit.wicket.pages.BranchesPage;
|
| | | import com.gitblit.wicket.pages.DocsPage;
|
| | | import com.gitblit.wicket.pages.LogPage;
|
| | | import com.gitblit.wicket.pages.RepositoriesPage;
|
| | | import com.gitblit.wicket.pages.SearchPage;
|
| | | import com.gitblit.wicket.pages.SummaryPage;
|
| | | import com.gitblit.wicket.pages.TagsPage;
|
| | |
| | |
|
| | | protected final String repositoryName;
|
| | | protected final String objectId;
|
| | | protected String description;
|
| | |
|
| | | private transient Repository r = null;
|
| | |
|
| | | private RepositoryModel m = null;
|
| | |
|
| | | private final Logger logger = LoggerFactory.getLogger(RepositoryPage.class);
|
| | |
|
| | |
| | |
|
| | | public RepositoryPage(PageParameters params) {
|
| | | super(params);
|
| | | if (!params.containsKey("r")) {
|
| | | error("Repository not specified!");
|
| | | redirectToInterceptPage(new RepositoriesPage());
|
| | | }
|
| | | repositoryName = WicketUtils.getRepositoryName(params);
|
| | | objectId = WicketUtils.getObject(params);
|
| | |
|
| | | Repository r = getRepository();
|
| | | if (StringUtils.isEmpty(repositoryName)) {
|
| | | error(MessageFormat.format("Repository not specified for {0}!", getPageName()), true);
|
| | | }
|
| | |
|
| | | Repository r = getRepository();
|
| | | RepositoryModel model = getRepositoryModel();
|
| | | |
| | | // standard page links
|
| | | add(new BookmarkablePageLink<Void>("summary", SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | | add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | |
| | | add(new BookmarkablePageLink<Void>("tags", TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | | add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | |
|
| | | // per-repository extra page links |
| | | // per-repository extra page links
|
| | | List<String> extraPageLinks = new ArrayList<String>();
|
| | |
|
| | | // Conditionally add tickets page
|
| | | boolean checkTickets = JGitUtils.getRepositoryUseTickets(r);
|
| | | if (checkTickets && JGitUtils.getTicketsBranch(r) != null) {
|
| | | if (model.useTickets && JGitUtils.getTicketsBranch(r) != null) {
|
| | | extraPageLinks.add("tickets");
|
| | | }
|
| | |
|
| | | // Conditionally add docs page
|
| | | boolean checkDocs = JGitUtils.getRepositoryUseDocs(r);
|
| | | if (checkDocs) {
|
| | | if (model.useDocs) {
|
| | | extraPageLinks.add("docs");
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | };
|
| | | add(extrasView);
|
| | | |
| | |
|
| | | // disable current page
|
| | | disablePageLink(getPageName());
|
| | |
|
| | |
| | | SearchForm searchForm = new SearchForm("searchForm", repositoryName);
|
| | | add(searchForm);
|
| | | searchForm.setTranslatedAttributes();
|
| | | |
| | |
|
| | | // set stateless page preference
|
| | | setStatelessHint(true);
|
| | | }
|
| | |
| | | if (r == null) {
|
| | | Repository r = GitBlit.self().getRepository(repositoryName);
|
| | | if (r == null) {
|
| | | error("Can not load repository " + repositoryName);
|
| | | redirectToInterceptPage(new RepositoriesPage());
|
| | | error("Can not load repository " + repositoryName, true);
|
| | | return null;
|
| | | }
|
| | | description = JGitUtils.getRepositoryDescription(r);
|
| | | this.r = r;
|
| | | }
|
| | | return r;
|
| | | }
|
| | |
|
| | | protected RepositoryModel getRepositoryModel() {
|
| | | if (m == null) {
|
| | | RepositoryModel model = GitBlit.self().getRepositoryModel(GitBlitWebSession.get().getUser(), repositoryName);
|
| | | if (model == null) {
|
| | | error("Unauthorized access for repository " + repositoryName, true); |
| | | return null;
|
| | | }
|
| | | m = model;
|
| | | }
|
| | | return m;
|
| | | }
|
| | |
|
| | | protected RevCommit getCommit() {
|
| | | RevCommit commit = JGitUtils.getCommit(r, objectId);
|
| | | if (commit == null) {
|
| | | error(MessageFormat.format("Failed to find commit \"{0}\" in {1} for {2} page!", objectId, repositoryName, getPageName()), true);
|
| | | }
|
| | | return commit;
|
| | | }
|
| | |
|
| | | protected void addRefs(Repository r, RevCommit c) {
|
| | |
| | | TextField<String> searchBox = new TextField<String>("searchBox", searchBoxModel);
|
| | | add(searchBox);
|
| | | }
|
| | | |
| | | void setTranslatedAttributes() { |
| | |
|
| | | void setTranslatedAttributes() {
|
| | | WicketUtils.setHtmlTooltip(get("searchType"), getString("gb.searchTypeTooltip"));
|
| | | WicketUtils.setHtmlTooltip(get("searchBox"), getString("gb.searchTooltip"));
|
| | | WicketUtils.setInputPlaceholder(get("searchBox"), getString("gb.search")); |
| | | WicketUtils.setInputPlaceholder(get("searchBox"), getString("gb.search"));
|
| | | }
|
| | |
|
| | | @Override
|