Fossil SCM

Modernized sbsdiff.js a tiny bit, adapted it to optionally be callable multiple times via fossil.page.tweakSbsDiffs(), and activate that when fileedit's sbs diff is refreshed.

stephan 2020-05-15 04:40 fileedit-ajaxify
Commit dd46579617c5c46db856e49aca14cfe3f67d6e3fb442bc45304013ae743b0a62
--- src/fileedit.c
+++ src/fileedit.c
@@ -2106,10 +2106,11 @@
21062106
}
21072107
21082108
blob_reset(&err);
21092109
CheckinMiniInfo_cleanup(&cimi);
21102110
style_emit_script_fossil_bootstrap(0);
2111
+ append_diff_javascript(1);
21112112
style_emit_script_fetch(0);
21122113
style_emit_script_tabs(0)/*also emits fossil.dom*/;
21132114
style_emit_script_confirmer(0);
21142115
style_emit_script_builtin(0, "fossil.page.fileedit.js");
21152116
if(blob_size(&endScript)>0){
21162117
--- src/fileedit.c
+++ src/fileedit.c
@@ -2106,10 +2106,11 @@
2106 }
2107
2108 blob_reset(&err);
2109 CheckinMiniInfo_cleanup(&cimi);
2110 style_emit_script_fossil_bootstrap(0);
 
2111 style_emit_script_fetch(0);
2112 style_emit_script_tabs(0)/*also emits fossil.dom*/;
2113 style_emit_script_confirmer(0);
2114 style_emit_script_builtin(0, "fossil.page.fileedit.js");
2115 if(blob_size(&endScript)>0){
2116
--- src/fileedit.c
+++ src/fileedit.c
@@ -2106,10 +2106,11 @@
2106 }
2107
2108 blob_reset(&err);
2109 CheckinMiniInfo_cleanup(&cimi);
2110 style_emit_script_fossil_bootstrap(0);
2111 append_diff_javascript(1);
2112 style_emit_script_fetch(0);
2113 style_emit_script_tabs(0)/*also emits fossil.dom*/;
2114 style_emit_script_confirmer(0);
2115 style_emit_script_builtin(0, "fossil.page.fileedit.js");
2116 if(blob_size(&endScript)>0){
2117
--- src/fossil.page.fileedit.js
+++ src/fossil.page.fileedit.js
@@ -683,10 +683,11 @@
683683
"<div>Diff <code>[",
684684
self.finfo.checkin,
685685
"]</code> &rarr; Local Edits</div>",
686686
c||'No changes.'
687687
].join('');
688
+ if(sbs) P.tweakSbsDiffs();
688689
F.message('Updated diff.');
689690
self.tabs.switchToTab(self.e.tabs.diff);
690691
}
691692
});
692693
return this;
693694
--- src/fossil.page.fileedit.js
+++ src/fossil.page.fileedit.js
@@ -683,10 +683,11 @@
683 "<div>Diff <code>[",
684 self.finfo.checkin,
685 "]</code> &rarr; Local Edits</div>",
686 c||'No changes.'
687 ].join('');
 
688 F.message('Updated diff.');
689 self.tabs.switchToTab(self.e.tabs.diff);
690 }
691 });
692 return this;
693
--- src/fossil.page.fileedit.js
+++ src/fossil.page.fileedit.js
@@ -683,10 +683,11 @@
683 "<div>Diff <code>[",
684 self.finfo.checkin,
685 "]</code> &rarr; Local Edits</div>",
686 c||'No changes.'
687 ].join('');
688 if(sbs) P.tweakSbsDiffs();
689 F.message('Updated diff.');
690 self.tabs.switchToTab(self.e.tabs.diff);
691 }
692 });
693 return this;
694
+8 -5
--- src/sbsdiff.js
+++ src/sbsdiff.js
@@ -6,11 +6,12 @@
66
var SCROLL_LEN = 25;
77
function initSbsDiff(diff){
88
var txtCols = diff.querySelectorAll('.difftxtcol');
99
var txtPres = diff.querySelectorAll('.difftxtcol pre');
1010
var width = Math.max(txtPres[0].scrollWidth, txtPres[1].scrollWidth);
11
- for(var i=0; i<2; i++){
11
+ var i;
12
+ for(i=0; i<2; i++){
1213
txtPres[i].style.width = width + 'px';
1314
txtCols[i].onscroll = function(e){
1415
txtCols[0].scrollLeft = txtCols[1].scrollLeft = this.scrollLeft;
1516
};
1617
}
@@ -21,10 +22,12 @@
2122
if( !len ) return;
2223
txtCols[0].scrollLeft += len;
2324
return false;
2425
};
2526
}
26
- var diffs = document.querySelectorAll('.sbsdiffcols');
27
- for(var i=0; i<diffs.length; i++){
28
- initSbsDiff(diffs[i]);
27
+ document.querySelectorAll('.sbsdiffcols').forEach(initSbsDiff);
28
+ if(window.fossil && fossil.page){
29
+ fossil.page.tweakSbsDiffs = function(){
30
+ document.querySelectorAll('.sbsdiffcols').forEach(initSbsDiff);
31
+ };
2932
}
30
-}())
33
+})();
3134
--- src/sbsdiff.js
+++ src/sbsdiff.js
@@ -6,11 +6,12 @@
6 var SCROLL_LEN = 25;
7 function initSbsDiff(diff){
8 var txtCols = diff.querySelectorAll('.difftxtcol');
9 var txtPres = diff.querySelectorAll('.difftxtcol pre');
10 var width = Math.max(txtPres[0].scrollWidth, txtPres[1].scrollWidth);
11 for(var i=0; i<2; i++){
 
12 txtPres[i].style.width = width + 'px';
13 txtCols[i].onscroll = function(e){
14 txtCols[0].scrollLeft = txtCols[1].scrollLeft = this.scrollLeft;
15 };
16 }
@@ -21,10 +22,12 @@
21 if( !len ) return;
22 txtCols[0].scrollLeft += len;
23 return false;
24 };
25 }
26 var diffs = document.querySelectorAll('.sbsdiffcols');
27 for(var i=0; i<diffs.length; i++){
28 initSbsDiff(diffs[i]);
 
 
29 }
30 }())
31
--- src/sbsdiff.js
+++ src/sbsdiff.js
@@ -6,11 +6,12 @@
6 var SCROLL_LEN = 25;
7 function initSbsDiff(diff){
8 var txtCols = diff.querySelectorAll('.difftxtcol');
9 var txtPres = diff.querySelectorAll('.difftxtcol pre');
10 var width = Math.max(txtPres[0].scrollWidth, txtPres[1].scrollWidth);
11 var i;
12 for(i=0; i<2; i++){
13 txtPres[i].style.width = width + 'px';
14 txtCols[i].onscroll = function(e){
15 txtCols[0].scrollLeft = txtCols[1].scrollLeft = this.scrollLeft;
16 };
17 }
@@ -21,10 +22,12 @@
22 if( !len ) return;
23 txtCols[0].scrollLeft += len;
24 return false;
25 };
26 }
27 document.querySelectorAll('.sbsdiffcols').forEach(initSbsDiff);
28 if(window.fossil && fossil.page){
29 fossil.page.tweakSbsDiffs = function(){
30 document.querySelectorAll('.sbsdiffcols').forEach(initSbsDiff);
31 };
32 }
33 })();
34

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button