Fossil SCM
Minor refactoring: unite two similar code fragments using new auxiliary function <code>amendAnchor()</code>.
Commit
f2348f2740949c951cf087f5fa7553fbf87a8aab5cb69efd21435b805cc3437d
Parent
6281f24edb982bd…
1 file changed
+18
-24
+18
-24
| --- src/fossil.page.brlist.js | ||
| +++ src/fossil.page.brlist.js | ||
| @@ -14,10 +14,26 @@ | ||
| 14 | 14 | |
| 15 | 15 | var anchor = document.querySelector("div.submenu > a:first-of-type" ); |
| 16 | 16 | if( !anchor || anchor.innerText != "Timeline" ) return; |
| 17 | 17 | var prefix = anchor.href.toString() + "?ms=regexp&rel&t="; |
| 18 | 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 | +} | |
| 19 | 35 | |
| 20 | 36 | var onChange = function( event ){ |
| 21 | 37 | var cbx = event.target; |
| 22 | 38 | var tr = cbx.parentElement.parentElement; |
| 23 | 39 | var tag = cbx.parentElement.children[0].innerText; |
| @@ -33,22 +49,11 @@ | ||
| 33 | 49 | tr.classList.remove('selected'); |
| 34 | 50 | for( var i = selected.length; --i >= 0 ;) |
| 35 | 51 | if( selected[i] == tag ) |
| 36 | 52 | selected.splice(i,1); |
| 37 | 53 | } |
| 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 ); | |
| 50 | 55 | } |
| 51 | 56 | |
| 52 | 57 | var stags = []; /* initially selected tags, not used above */ |
| 53 | 58 | document.querySelectorAll("div.brlist > table td:first-child > input") |
| 54 | 59 | .forEach( function( cbx ){ |
| @@ -57,19 +62,8 @@ | ||
| 57 | 62 | if( cbx.checked ){ |
| 58 | 63 | stags.push(cbx.parentElement.children[0].innerText); |
| 59 | 64 | cbx.parentElement.parentElement.classList.add('selected'); |
| 60 | 65 | } |
| 61 | 66 | }); |
| 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 ); | |
| 74 | 68 | |
| 75 | 69 | }); // window.addEventListener( 'load' ... |
| 76 | 70 |
| --- 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 |