Skip to content

Commit 977ac7a

Browse files
committed
links suppoert current default rev context from request 'h'
1 parent a13f078 commit 977ac7a

File tree

3 files changed

+33
-17
lines changed

3 files changed

+33
-17
lines changed

src/main/java/com/gitblit/wicket/WicketUtils.java

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.apache.wicket.Component;
3030
import org.apache.wicket.PageParameters;
3131
import org.apache.wicket.Request;
32+
import org.apache.wicket.RequestCycle;
3233
import org.apache.wicket.behavior.AttributeAppender;
3334
import org.apache.wicket.behavior.HeaderContributor;
3435
import org.apache.wicket.behavior.SimpleAttributeModifier;
@@ -449,32 +450,43 @@ public static PageParameters newBlobDiffParameter(String repositoryName,
449450
public static PageParameters newSearchParameter(String repositoryName,
450451
String commitId, String search, Constants.SearchType type) {
451452
Map<String, String> parameterMap = new HashMap<String, String>();
452-
if (StringUtils.isEmpty(commitId)) {
453-
parameterMap.put("r", repositoryName);
454-
parameterMap.put("s", search);
455-
parameterMap.put("st", type.name());
456-
return new PageParameters(parameterMap);
457-
}
453+
setCommitIdIf(commitId, parameterMap);
458454
parameterMap.put("r", repositoryName);
459-
parameterMap.put("h", commitId);
460455
parameterMap.put("s", search);
461456
parameterMap.put("st", type.name());
462457
return new PageParameters(parameterMap);
463458
}
464459

460+
public static void setCommitIdIf(String commitId, Map<String, String> parameterMap) {
461+
if (StringUtils.isEmpty(commitId)) {
462+
final String branch = getRequestParameter("h");
463+
if (!StringUtils.isEmpty(branch)) {
464+
parameterMap.put("h", branch);
465+
}
466+
}else{
467+
parameterMap.put("h", commitId);
468+
}
469+
}
470+
471+
protected static String getRequestParameter(final String key) {
472+
final HttpServletRequest req = ((WebRequest)RequestCycle.get().getRequest()).getHttpServletRequest();
473+
final String branch = req == null ? null : req.getParameter(key);
474+
return branch;
475+
}
476+
public static void setCommitIdIf(final PageParameters params) {
477+
if( params.get("h") == null ){
478+
final String branch = getRequestParameter("h");
479+
if (!StringUtils.isEmpty(branch)) {
480+
params.put("h", branch);
481+
}
482+
}
483+
}
465484
public static PageParameters newSearchParameter(String repositoryName,
466485
String commitId, String search, Constants.SearchType type,
467486
int pageNumber) {
468487
Map<String, String> parameterMap = new HashMap<String, String>();
469-
if (StringUtils.isEmpty(commitId)) {
470-
parameterMap.put("r", repositoryName);
471-
parameterMap.put("s", search);
472-
parameterMap.put("st", type.name());
473-
parameterMap.put("pg", String.valueOf(pageNumber));
474-
return new PageParameters(parameterMap);
475-
}
488+
setCommitIdIf(commitId, parameterMap);
476489
parameterMap.put("r", repositoryName);
477-
parameterMap.put("h", commitId);
478490
parameterMap.put("s", search);
479491
parameterMap.put("st", type.name());
480492
parameterMap.put("pg", String.valueOf(pageNumber));

src/main/java/com/gitblit/wicket/pages/ComparePage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ public ComparePage(PageParameters params) {
7878
Repository r = getRepository();
7979
RepositoryModel repository = getRepositoryModel();
8080

81-
if (StringUtils.isEmpty(objectId)) {
81+
String[] parts = StringUtils.isEmpty(objectId) ? null : objectId.split("\\.\\.");
82+
if ( parts == null || parts.length < 2) {
8283
// seleciton form
8384
add(new Label("comparison").setVisible(false));
8485
} else {
@@ -89,7 +90,6 @@ public ComparePage(PageParameters params) {
8990
RevCommit fromCommit;
9091
RevCommit toCommit;
9192

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

src/main/java/com/gitblit/wicket/pages/RepositoryPage.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,14 @@ private List<NavLink> registerNavLinks() {
229229
return navLinks;
230230
}
231231

232+
if( params != null ){
233+
WicketUtils.setCommitIdIf(params);
234+
}
232235
navLinks.add(new PageNavLink("gb.commits", LogPage.class, objectParams));
233236
navLinks.add(new PageNavLink("gb.tree", TreePage.class, objectParams));
234237
if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(model) || app().tickets().hasTickets(model))) {
235238
PageParameters tParams = WicketUtils.newOpenTicketsParameter(getRepositoryName());
239+
WicketUtils.setCommitIdIf(tParams);
236240
navLinks.add(new PageNavLink("gb.tickets", TicketsPage.class, tParams));
237241
}
238242
navLinks.add(new PageNavLink("gb.docs", DocsPage.class, objectParams, true));

0 commit comments

Comments
 (0)