Fossil SCM

Minor refactoring: unite two similar code fragments using new auxiliary function <code>amendAnchor()</code>.

george 2021-04-22 01:09 brlist-timeline
Commit f2348f2740949c951cf087f5fa7553fbf87a8aab5cb69efd21435b805cc3437d
1 file changed +18 -24
--- src/fossil.page.brlist.js
+++ src/fossil.page.brlist.js
@@ -14,10 +14,26 @@
1414
1515
var anchor = document.querySelector("div.submenu > a:first-of-type" );
1616
if( !anchor || anchor.innerText != "Timeline" ) return;
1717
var prefix = anchor.href.toString() + "?ms=regexp&rel&t=";
1818
anchor.classList.add('timeline-link');
19
+
20
+var amendAnchor = function( selected ){
21
+ if( selected.length == 0 ){
22
+ anchor.classList.remove('selected');
23
+ anchor.href = prefix;
24
+ return;
25
+ }
26
+ re = selected.join("|");
27
+ try{re = encodeURIComponent(re);}
28
+ catch{console.log("encodeURIComponent() failed for ",re);}
29
+ anchor.href = prefix + re;
30
+ anchor.innerHTML = "View " + selected.length +
31
+ ( selected.length > 1 ? " branches" : " branch" );
32
+ anchor.classList.add('selected');
33
+ // console.log("Link:",anchor.href);
34
+}
1935
2036
var onChange = function( event ){
2137
var cbx = event.target;
2238
var tr = cbx.parentElement.parentElement;
2339
var tag = cbx.parentElement.children[0].innerText;
@@ -33,22 +49,11 @@
3349
tr.classList.remove('selected');
3450
for( var i = selected.length; --i >= 0 ;)
3551
if( selected[i] == tag )
3652
selected.splice(i,1);
3753
}
38
- if( selected.length >= 1 )
39
- anchor.classList.add('selected');
40
- else
41
- anchor.classList.remove('selected');
42
-
43
- re = selected.join("|");
44
- try{re = encodeURIComponent(re);}
45
- catch{console.log("encodeURIComponent() failed for ",re);}
46
- anchor.href = prefix + re;
47
- anchor.innerHTML = "View " + selected.length +
48
- ( selected.length > 1 ? " branches" : " branch" );
49
- // console.log("Link:",anchor.href);
54
+ amendAnchor( selected );
5055
}
5156
5257
var stags = []; /* initially selected tags, not used above */
5358
document.querySelectorAll("div.brlist > table td:first-child > input")
5459
.forEach( function( cbx ){
@@ -57,19 +62,8 @@
5762
if( cbx.checked ){
5863
stags.push(cbx.parentElement.children[0].innerText);
5964
cbx.parentElement.parentElement.classList.add('selected');
6065
}
6166
});
62
-
63
-if( stags.length != 0 ){
64
- var re = stags.join("|");
65
- try{re = encodeURIComponent(re);}
66
- catch{console.log("encodeURIComponent() failed for ",re);}
67
- anchor.href = prefix + re;
68
- if( stags.length >= 1 ) {
69
- anchor.innerHTML = "View " + stags.length +
70
- ( stags.length > 1 ? " branches" : " branch" );
71
- anchor.classList.add('selected');
72
- }
73
-}
67
+amendAnchor( stags );
7468
7569
}); // window.addEventListener( 'load' ...
7670
--- src/fossil.page.brlist.js
+++ src/fossil.page.brlist.js
@@ -14,10 +14,26 @@
14
15 var anchor = document.querySelector("div.submenu > a:first-of-type" );
16 if( !anchor || anchor.innerText != "Timeline" ) return;
17 var prefix = anchor.href.toString() + "?ms=regexp&rel&t=";
18 anchor.classList.add('timeline-link');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
20 var onChange = function( event ){
21 var cbx = event.target;
22 var tr = cbx.parentElement.parentElement;
23 var tag = cbx.parentElement.children[0].innerText;
@@ -33,22 +49,11 @@
33 tr.classList.remove('selected');
34 for( var i = selected.length; --i >= 0 ;)
35 if( selected[i] == tag )
36 selected.splice(i,1);
37 }
38 if( selected.length >= 1 )
39 anchor.classList.add('selected');
40 else
41 anchor.classList.remove('selected');
42
43 re = selected.join("|");
44 try{re = encodeURIComponent(re);}
45 catch{console.log("encodeURIComponent() failed for ",re);}
46 anchor.href = prefix + re;
47 anchor.innerHTML = "View " + selected.length +
48 ( selected.length > 1 ? " branches" : " branch" );
49 // console.log("Link:",anchor.href);
50 }
51
52 var stags = []; /* initially selected tags, not used above */
53 document.querySelectorAll("div.brlist > table td:first-child > input")
54 .forEach( function( cbx ){
@@ -57,19 +62,8 @@
57 if( cbx.checked ){
58 stags.push(cbx.parentElement.children[0].innerText);
59 cbx.parentElement.parentElement.classList.add('selected');
60 }
61 });
62
63 if( stags.length != 0 ){
64 var re = stags.join("|");
65 try{re = encodeURIComponent(re);}
66 catch{console.log("encodeURIComponent() failed for ",re);}
67 anchor.href = prefix + re;
68 if( stags.length >= 1 ) {
69 anchor.innerHTML = "View " + stags.length +
70 ( stags.length > 1 ? " branches" : " branch" );
71 anchor.classList.add('selected');
72 }
73 }
74
75 }); // window.addEventListener( 'load' ...
76
--- src/fossil.page.brlist.js
+++ src/fossil.page.brlist.js
@@ -14,10 +14,26 @@
14
15 var anchor = document.querySelector("div.submenu > a:first-of-type" );
16 if( !anchor || anchor.innerText != "Timeline" ) return;
17 var prefix = anchor.href.toString() + "?ms=regexp&rel&t=";
18 anchor.classList.add('timeline-link');
19
20 var amendAnchor = function( selected ){
21 if( selected.length == 0 ){
22 anchor.classList.remove('selected');
23 anchor.href = prefix;
24 return;
25 }
26 re = selected.join("|");
27 try{re = encodeURIComponent(re);}
28 catch{console.log("encodeURIComponent() failed for ",re);}
29 anchor.href = prefix + re;
30 anchor.innerHTML = "View " + selected.length +
31 ( selected.length > 1 ? " branches" : " branch" );
32 anchor.classList.add('selected');
33 // console.log("Link:",anchor.href);
34 }
35
36 var onChange = function( event ){
37 var cbx = event.target;
38 var tr = cbx.parentElement.parentElement;
39 var tag = cbx.parentElement.children[0].innerText;
@@ -33,22 +49,11 @@
49 tr.classList.remove('selected');
50 for( var i = selected.length; --i >= 0 ;)
51 if( selected[i] == tag )
52 selected.splice(i,1);
53 }
54 amendAnchor( selected );
 
 
 
 
 
 
 
 
 
 
 
55 }
56
57 var stags = []; /* initially selected tags, not used above */
58 document.querySelectorAll("div.brlist > table td:first-child > input")
59 .forEach( function( cbx ){
@@ -57,19 +62,8 @@
62 if( cbx.checked ){
63 stags.push(cbx.parentElement.children[0].innerText);
64 cbx.parentElement.parentElement.classList.add('selected');
65 }
66 });
67 amendAnchor( stags );
 
 
 
 
 
 
 
 
 
 
 
68
69 }); // window.addEventListener( 'load' ...
70

Keyboard Shortcuts

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