summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2015-03-07 11:52:14 -0500
committerJames Moger <james.moger@gitblit.com>2015-03-07 11:52:14 -0500
commit5d59b9ba3206894198a24807690fba00844c98f7 (patch)
tree414273eb96ec5721b9c232bcc3f26375ed6651dd /src/main
parentdd661a1091b2a59af513fc846293b6530e73f613 (diff)
downloadgitblit-5d59b9ba3206894198a24807690fba00844c98f7.tar.gz
gitblit-5d59b9ba3206894198a24807690fba00844c98f7.zip
Add links to commit diff and blob diff pages to toggle whitespace setting
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/gitblit/utils/DiffUtils.java20
-rw-r--r--src/main/java/com/gitblit/wicket/GitBlitWebApp.properties4
-rw-r--r--src/main/java/com/gitblit/wicket/WicketUtils.java25
-rw-r--r--src/main/java/com/gitblit/wicket/pages/BlobDiffPage.html2
-rw-r--r--src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java3
-rw-r--r--src/main/java/com/gitblit/wicket/pages/CommitDiffPage.html2
-rw-r--r--src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java9
7 files changed, 52 insertions, 13 deletions
diff --git a/src/main/java/com/gitblit/utils/DiffUtils.java b/src/main/java/com/gitblit/utils/DiffUtils.java
index 458a4651..09b8f801 100644
--- a/src/main/java/com/gitblit/utils/DiffUtils.java
+++ b/src/main/java/com/gitblit/utils/DiffUtils.java
@@ -92,11 +92,11 @@ public class DiffUtils {
* Enumeration for the diff comparator types.
*/
public static enum DiffComparator {
- DEFAULT(RawTextComparator.DEFAULT),
- WS_IGNORE_ALL(RawTextComparator.WS_IGNORE_ALL),
- WS_IGNORE_LEADING(RawTextComparator.WS_IGNORE_LEADING),
- WS_IGNORE_TRAILING(RawTextComparator.WS_IGNORE_TRAILING),
- WS_IGNORE_CHANGE(RawTextComparator.WS_IGNORE_CHANGE);
+ SHOW_WHITESPACE(RawTextComparator.DEFAULT),
+ IGNORE_WHITESPACE(RawTextComparator.WS_IGNORE_ALL),
+ IGNORE_LEADING(RawTextComparator.WS_IGNORE_LEADING),
+ IGNORE_TRAILING(RawTextComparator.WS_IGNORE_TRAILING),
+ IGNORE_CHANGES(RawTextComparator.WS_IGNORE_CHANGE);
public final RawTextComparator textComparator;
@@ -104,6 +104,14 @@ public class DiffUtils {
this.textComparator = textComparator;
}
+ public DiffComparator getOpposite() {
+ return this == SHOW_WHITESPACE ? IGNORE_WHITESPACE : SHOW_WHITESPACE;
+ }
+
+ public String getTranslationKey() {
+ return "gb." + name().toLowerCase();
+ }
+
public static DiffComparator forName(String name) {
for (DiffComparator type : values()) {
if (type.name().equalsIgnoreCase(name)) {
@@ -371,7 +379,7 @@ public class DiffUtils {
break;
}
df.setRepository(repository);
- df.setDiffComparator((comparator == null ? DiffComparator.DEFAULT : comparator).textComparator);
+ df.setDiffComparator((comparator == null ? DiffComparator.SHOW_WHITESPACE : comparator).textComparator);
df.setDetectRenames(true);
RevTree commitTree = commit.getTree();
diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties b/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties
index 10b318dc..d0374200 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.properties
@@ -761,4 +761,6 @@ gb.opacityAdjust = Adjust opacity
gb.blinkComparator = Blink comparator
gb.imgdiffSubtract = Subtract (black = identical)
gb.deleteRepositoryHeader = Delete Repository
-gb.deleteRepositoryDescription = Deleted repositories will be unrecoverable. \ No newline at end of file
+gb.deleteRepositoryDescription = Deleted repositories will be unrecoverable.
+gb.show_whitespace = show whitespace
+gb.ignore_whitespace = ignore whitespace \ No newline at end of file
diff --git a/src/main/java/com/gitblit/wicket/WicketUtils.java b/src/main/java/com/gitblit/wicket/WicketUtils.java
index 0684be30..0d48e2be 100644
--- a/src/main/java/com/gitblit/wicket/WicketUtils.java
+++ b/src/main/java/com/gitblit/wicket/WicketUtils.java
@@ -331,6 +331,31 @@ public class WicketUtils {
return new PageParameters(parameterMap);
}
+ public static PageParameters newDiffParameter(String repositoryName,
+ String objectId, DiffComparator diffComparator) {
+ Map<String, String> parameterMap = new HashMap<String, String>();
+ if (StringUtils.isEmpty(objectId)) {
+ return newRepositoryParameter(repositoryName);
+ }
+ parameterMap.put("r", repositoryName);
+ parameterMap.put("h", objectId);
+ parameterMap.put("w", "" + diffComparator.ordinal());
+ return new PageParameters(parameterMap);
+ }
+
+ public static PageParameters newDiffParameter(String repositoryName,
+ String objectId, DiffComparator diffComparator, String blobPath) {
+ Map<String, String> parameterMap = new HashMap<String, String>();
+ if (StringUtils.isEmpty(objectId)) {
+ return newRepositoryParameter(repositoryName);
+ }
+ parameterMap.put("r", repositoryName);
+ parameterMap.put("h", objectId);
+ parameterMap.put("w", "" + diffComparator.ordinal());
+ parameterMap.put("f", blobPath);
+ return new PageParameters(parameterMap);
+ }
+
public static PageParameters newRangeParameter(String repositoryName,
String startRange, String endRange) {
Map<String, String> parameterMap = new HashMap<String, String>();
diff --git a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.html b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.html
index c6336429..d218436e 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.html
+++ b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.html
@@ -9,7 +9,7 @@
<!-- blob nav links -->
<div class="page_nav2">
- <a wicket:id="blameLink"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a>
+ <a wicket:id="blameLink"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a> | <a wicket:id="whitespaceLink"></a>
</div>
<!-- commit header -->
diff --git a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
index bf84fad9..187e4600 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
@@ -33,6 +33,7 @@ import com.gitblit.wicket.CacheControl;
import com.gitblit.wicket.CacheControl.LastModified;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
+import com.gitblit.wicket.panels.LinkPanel;
import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
@CacheControl(LastModified.BOOT)
@@ -80,6 +81,8 @@ public class BlobDiffPage extends RepositoryPage {
WicketUtils.newObjectParameter(repositoryName, objectId)));
add(new BookmarkablePageLink<Void>("commitDiffLink", CommitDiffPage.class,
WicketUtils.newObjectParameter(repositoryName, objectId)));
+ add(new LinkPanel("whitespaceLink", null, getString(diffComparator.getOpposite().getTranslationKey()),
+ BlobDiffPage.class, WicketUtils.newDiffParameter(repositoryName, objectId, diffComparator.getOpposite(), blobPath)));
// diff page links
add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.html b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.html
index 2c35a28c..2e0d57ce 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.html
+++ b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.html
@@ -9,7 +9,7 @@
<!-- commitdiff nav links -->
<div class="page_nav2">
- <wicket:message key="gb.parent"></wicket:message>: <span wicket:id="parentLink">[parent link]</span> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a>
+ <wicket:message key="gb.parent"></wicket:message>: <span wicket:id="parentLink">[parent link]</span> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="whitespaceLink"></a>
</div>
<!-- commit header -->
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
index 2ec829ee..95580ed1 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
@@ -57,9 +57,9 @@ public class CommitDiffPage extends RepositoryPage {
public CommitDiffPage(PageParameters params) {
super(params);
- Repository r = getRepository();
-
- RevCommit commit = getCommit();
+ final Repository r = getRepository();
+ final RevCommit commit = getCommit();
+ final DiffComparator diffComparator = WicketUtils.getDiffComparator(params);
List<String> parents = new ArrayList<String>();
if (commit.getParentCount() > 0) {
@@ -79,6 +79,8 @@ public class CommitDiffPage extends RepositoryPage {
WicketUtils.newObjectParameter(repositoryName, objectId)));
add(new BookmarkablePageLink<Void>("commitLink", CommitPage.class,
WicketUtils.newObjectParameter(repositoryName, objectId)));
+ add(new LinkPanel("whitespaceLink", null, getString(diffComparator.getOpposite().getTranslationKey()),
+ CommitDiffPage.class, WicketUtils.newDiffParameter(repositoryName, objectId, diffComparator.getOpposite())));
add(new CommitHeaderPanel("commitHeader", repositoryName, commit));
@@ -86,7 +88,6 @@ public class CommitDiffPage extends RepositoryPage {
final ImageDiffHandler handler = new ImageDiffHandler(this, repositoryName,
parents.isEmpty() ? null : parents.get(0), commit.getName(), imageExtensions);
- final DiffComparator diffComparator = WicketUtils.getDiffComparator(params);
final DiffOutput diff = DiffUtils.getCommitDiff(r, commit, diffComparator, DiffOutputType.HTML, handler);
if (handler.getImgDiffCount() > 0) {
addBottomScript("scripts/imgdiff.js"); // Tiny support script for image diffs