Skip to content

Commit

Permalink
history: Make more small and readable change history
Browse files Browse the repository at this point in the history
  • Loading branch information
doortts committed Apr 15, 2017
1 parent 97169d5 commit 724c31e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
5 changes: 2 additions & 3 deletions app/assets/stylesheets/less/_page.less
Original file line number Diff line number Diff line change
Expand Up @@ -3919,12 +3919,11 @@ label.issue-item-row {
}
.diff-added {
background-color: #abdd52;
padding: 2px;
padding: 2px 0;
}
.diff-deleted {
background-color: #fda9a6;
text-decoration: line-through;
padding: 2px;
padding: 2px 0;
}
.diff-ellipsis {
color: #bdbdbd;
Expand Down
26 changes: 16 additions & 10 deletions app/controllers/AbstractPostingApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,9 @@ protected static Result editPosting(AbstractPosting original, AbstractPosting po

private static String addToHistory(AbstractPosting original, AbstractPosting posting) {
diff_match_patch dmp = new diff_match_patch();
dmp.Diff_EditCost = 8;
LinkedList<diff_match_patch.Diff> diffs = dmp.diff_main(original.body, posting.body);
dmp.diff_cleanupSemanticLossless(diffs);
dmp.diff_cleanupEfficiency(diffs);

return (getHistoryMadeBy(posting, diffs) + getDiffText(original.body, posting.body) + "\n").replaceAll("\n", "</br>\n");
}
Expand Down Expand Up @@ -178,43 +179,48 @@ private static String getHistoryMadeBy(AbstractPosting posting, LinkedList<diff_
}

private static String getDiffText(String oldValue, String newValue) {
final int EQUAL_TEXT_ELLIPSIS_SIZE = 300;
final int EQUAL_TEXT_ELLIPSIS_SIZE = 100;
diff_match_patch dmp = new diff_match_patch();
dmp.Diff_EditCost = 8;
StringBuilder sb = new StringBuilder();
if (oldValue != null) {
LinkedList<diff_match_patch.Diff> diffs = dmp.diff_main(oldValue, newValue);
dmp.diff_cleanupSemanticLossless(diffs);
dmp.diff_cleanupEfficiency(diffs);
for(Diff diff: diffs){
switch (diff.operation) {
case DELETE:
sb.append("<span class='diff-deleted'>");
sb.append(StringEscapeUtils.escapeHtml4(diff.text).replaceAll("\n", "&nbsp<br/>\n"));
sb.append(StringEscapeUtils.escapeHtml4(diff.text));
sb.append("</span>");
break;
case EQUAL:
int textLength = diff.text.length();
if(textLength > EQUAL_TEXT_ELLIPSIS_SIZE) {
sb.append(StringEscapeUtils.escapeHtml4(diff.text.substring(0, 150)))
.append("<span class='diff-ellipsis'>...\n")
if(!diff.text.substring(0, 50).equals(oldValue.substring(0, 50))) {
sb.append(StringEscapeUtils.escapeHtml4(diff.text.substring(0, 50)));
}
sb.append("<span class='diff-ellipsis'>...\n")
.append("......\n")
.append("......\n")
.append("...</span>")
.append(StringEscapeUtils.escapeHtml4(diff.text.substring(textLength - 150)));
.append("...</span>");
if(!diff.text.substring(textLength - 50).equals(oldValue.substring(oldValue.length() - 50))) {
sb.append(StringEscapeUtils.escapeHtml4(diff.text.substring(textLength - 50)));
}
} else {
sb.append(StringEscapeUtils.escapeHtml4(diff.text));
}
break;
case INSERT:
sb.append("<span class='diff-added'>");
sb.append(StringEscapeUtils.escapeHtml4(diff.text).replaceAll("\n", "&nbsp<br/>\n"));
sb.append(StringEscapeUtils.escapeHtml4(diff.text));
sb.append("</span>");
break;
default:
break;
}
}
}
return sb.toString();
return sb.toString().replaceAll("\n", "&nbsp<br/>\n");
}

public static void attachUploadFilesToPost(Resource resource) {
Expand Down

0 comments on commit 724c31e

Please sign in to comment.