Browse Source

links suppoert current default rev context from request 'h'

pull/1257/head
qxo 6 years ago
parent
commit
977ac7a672

+ 27
- 15
src/main/java/com/gitblit/wicket/WicketUtils.java View File

import org.apache.wicket.Component; import org.apache.wicket.Component;
import org.apache.wicket.PageParameters; import org.apache.wicket.PageParameters;
import org.apache.wicket.Request; import org.apache.wicket.Request;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.behavior.HeaderContributor; import org.apache.wicket.behavior.HeaderContributor;
import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.behavior.SimpleAttributeModifier;
public static PageParameters newSearchParameter(String repositoryName, public static PageParameters newSearchParameter(String repositoryName,
String commitId, String search, Constants.SearchType type) { String commitId, String search, Constants.SearchType type) {
Map<String, String> parameterMap = new HashMap<String, String>(); Map<String, String> parameterMap = new HashMap<String, String>();
if (StringUtils.isEmpty(commitId)) {
parameterMap.put("r", repositoryName);
parameterMap.put("s", search);
parameterMap.put("st", type.name());
return new PageParameters(parameterMap);
}
setCommitIdIf(commitId, parameterMap);
parameterMap.put("r", repositoryName); parameterMap.put("r", repositoryName);
parameterMap.put("h", commitId);
parameterMap.put("s", search); parameterMap.put("s", search);
parameterMap.put("st", type.name()); parameterMap.put("st", type.name());
return new PageParameters(parameterMap); return new PageParameters(parameterMap);
} }
public static void setCommitIdIf(String commitId, Map<String, String> parameterMap) {
if (StringUtils.isEmpty(commitId)) {
final String branch = getRequestParameter("h");
if (!StringUtils.isEmpty(branch)) {
parameterMap.put("h", branch);
}
}else{
parameterMap.put("h", commitId);
}
}
protected static String getRequestParameter(final String key) {
final HttpServletRequest req = ((WebRequest)RequestCycle.get().getRequest()).getHttpServletRequest();
final String branch = req == null ? null : req.getParameter(key);
return branch;
}
public static void setCommitIdIf(final PageParameters params) {
if( params.get("h") == null ){
final String branch = getRequestParameter("h");
if (!StringUtils.isEmpty(branch)) {
params.put("h", branch);
}
}
}
public static PageParameters newSearchParameter(String repositoryName, public static PageParameters newSearchParameter(String repositoryName,
String commitId, String search, Constants.SearchType type, String commitId, String search, Constants.SearchType type,
int pageNumber) { int pageNumber) {
Map<String, String> parameterMap = new HashMap<String, String>(); Map<String, String> parameterMap = new HashMap<String, String>();
if (StringUtils.isEmpty(commitId)) {
parameterMap.put("r", repositoryName);
parameterMap.put("s", search);
parameterMap.put("st", type.name());
parameterMap.put("pg", String.valueOf(pageNumber));
return new PageParameters(parameterMap);
}
setCommitIdIf(commitId, parameterMap);
parameterMap.put("r", repositoryName); parameterMap.put("r", repositoryName);
parameterMap.put("h", commitId);
parameterMap.put("s", search); parameterMap.put("s", search);
parameterMap.put("st", type.name()); parameterMap.put("st", type.name());
parameterMap.put("pg", String.valueOf(pageNumber)); parameterMap.put("pg", String.valueOf(pageNumber));

+ 2
- 2
src/main/java/com/gitblit/wicket/pages/ComparePage.java View File

Repository r = getRepository(); Repository r = getRepository();
RepositoryModel repository = getRepositoryModel(); RepositoryModel repository = getRepositoryModel();


if (StringUtils.isEmpty(objectId)) {
String[] parts = StringUtils.isEmpty(objectId) ? null : objectId.split("\\.\\.");
if ( parts == null || parts.length < 2) {
// seleciton form // seleciton form
add(new Label("comparison").setVisible(false)); add(new Label("comparison").setVisible(false));
} else { } else {
RevCommit fromCommit; RevCommit fromCommit;
RevCommit toCommit; RevCommit toCommit;


String[] parts = objectId.split("\\.\\.");
if (parts[0].startsWith("refs/") && parts[1].startsWith("refs/")) { if (parts[0].startsWith("refs/") && parts[1].startsWith("refs/")) {
// set the ref models // set the ref models
fromRefId.setObject(parts[0]); fromRefId.setObject(parts[0]);

+ 4
- 0
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java View File

return navLinks; return navLinks;
} }
if( params != null ){
WicketUtils.setCommitIdIf(params);
}
navLinks.add(new PageNavLink("gb.commits", LogPage.class, objectParams)); navLinks.add(new PageNavLink("gb.commits", LogPage.class, objectParams));
navLinks.add(new PageNavLink("gb.tree", TreePage.class, objectParams)); navLinks.add(new PageNavLink("gb.tree", TreePage.class, objectParams));
if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(model) || app().tickets().hasTickets(model))) { if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(model) || app().tickets().hasTickets(model))) {
PageParameters tParams = WicketUtils.newOpenTicketsParameter(getRepositoryName()); PageParameters tParams = WicketUtils.newOpenTicketsParameter(getRepositoryName());
WicketUtils.setCommitIdIf(tParams);
navLinks.add(new PageNavLink("gb.tickets", TicketsPage.class, tParams)); navLinks.add(new PageNavLink("gb.tickets", TicketsPage.class, tParams));
} }
navLinks.add(new PageNavLink("gb.docs", DocsPage.class, objectParams, true)); navLinks.add(new PageNavLink("gb.docs", DocsPage.class, objectParams, true));

Loading…
Cancel
Save