Skip to content

Commit 3454819

Browse files
committed
Update to annotate scrollbar position of revision mark text
1 parent f1db5c9 commit 3454819

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

public/css/index.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,20 @@ body {
9595
.CodeMirror-sizer {
9696
margin-bottom: 0px !important;
9797
}
98+
.CodeMirror-insert-match {
99+
background: lawngreen;
100+
border: 1px solid limegreen;
101+
-moz-box-sizing: border-box;
102+
box-sizing: border-box;
103+
opacity: .5;
104+
}
105+
.CodeMirror-delete-match {
106+
background: indianred;
107+
border: 1px solid darkred;
108+
-moz-box-sizing: border-box;
109+
box-sizing: border-box;
110+
opacity: .5;
111+
}
98112
.ui-content {
99113
height: 100%;
100114
margin-left: 0;

public/js/index.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1493,6 +1493,10 @@ ui.toolbar.beta.slide.attr("href", noteurl + "/slide");
14931493
//modal actions
14941494
var revisions = [];
14951495
var revisionViewer = null;
1496+
var revisionInsert = [];
1497+
var revisionDelete = [];
1498+
var revisionInsertAnnotation = null;
1499+
var revisionDeleteAnnotation = null;
14961500
var revisionList = ui.modal.revision.find('.ui-revision-list');
14971501
var revision = null;
14981502
var revisionTime = null;
@@ -1559,6 +1563,8 @@ function selectRevision(time) {
15591563
var content = revision.content;
15601564
revisionViewer.setValue(content);
15611565
revisionViewer.scrollTo(null, lastScrollInfo.top);
1566+
revisionInsert = [];
1567+
revisionDelete = [];
15621568
// mark the text which have been insert or delete
15631569
if (revision.patch.length > 0) {
15641570
var bias = 0;
@@ -1576,6 +1582,10 @@ function selectRevision(time) {
15761582
case 1: // insert
15771583
var prePos = revisionViewer.posFromIndex(currIndex);
15781584
var postPos = revisionViewer.posFromIndex(currIndex + diff[1].length);
1585+
revisionInsert.push({
1586+
from: prePos,
1587+
to: postPos
1588+
});
15791589
revisionViewer.markText(prePos, postPos, {
15801590
css: 'background-color: rgba(230,255,230,0.7); text-decoration: underline;'
15811591
});
@@ -1585,6 +1595,10 @@ function selectRevision(time) {
15851595
var prePos = revisionViewer.posFromIndex(currIndex);
15861596
revisionViewer.replaceRange(diff[1], prePos);
15871597
var postPos = revisionViewer.posFromIndex(currIndex + diff[1].length);
1598+
revisionDelete.push({
1599+
from: prePos,
1600+
to: postPos
1601+
});
15881602
revisionViewer.markText(prePos, postPos, {
15891603
css: 'background-color: rgba(255,230,230,0.7); text-decoration: line-through;'
15901604
});
@@ -1595,6 +1609,8 @@ function selectRevision(time) {
15951609
}
15961610
}
15971611
}
1612+
revisionInsertAnnotation.update(revisionInsert);
1613+
revisionDeleteAnnotation.update(revisionDelete);
15981614
})
15991615
.error(function(err) {
16001616

@@ -1620,6 +1636,8 @@ function initRevisionViewer() {
16201636
autoRefresh: true,
16211637
scrollbarStyle: 'overlay'
16221638
});
1639+
revisionInsertAnnotation = revisionViewer.annotateScrollbar({ className:"CodeMirror-insert-match" });
1640+
revisionDeleteAnnotation = revisionViewer.annotateScrollbar({ className:"CodeMirror-delete-match" });
16231641
}
16241642
$('#revisionModalDownload').click(function () {
16251643
if (!revision) return;

0 commit comments

Comments
 (0)