diff options
Diffstat (limited to 'src/fossil.page.ticket.js')
| -rw-r--r-- | src/fossil.page.ticket.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/fossil.page.ticket.js b/src/fossil.page.ticket.js new file mode 100644 index 0000000..027c81d --- /dev/null +++ b/src/fossil.page.ticket.js @@ -0,0 +1,32 @@ +/* + * This script adds a checkbox to reverse the sorting on any body.tkt + * pages which contain a .tktCommentArea element. + */ +window.addEventListener( 'load', function() { + const tgt = document.querySelectorAll('.tktCommentArea'); + if( !tgt ) return; + const F = globalThis.fossil, D = F.dom; + let i = 0; + for(const e of tgt) { + ++i; + const childs = e.querySelectorAll('.tktCommentEntry'); + if( !childs || 1===childs.length ) continue; + const cbReverseKey = 'tktCommentArea:reverse'; + const cbReverse = D.checkbox(); + const cbId = cbReverseKey+':'+i; + cbReverse.setAttribute('id',cbId); + const widget = D.append( + D.div(), + cbReverse, + D.label(cbReverse, " Show newest first? ") + ); + widget.classList.add('newest-first-controls'); + e.parentElement.insertBefore(widget,e); + const cbReverseIt = ()=>{ + e.classList[cbReverse.checked ? 'add' : 'remove']('reverse'); + F.storage.set(cbReverseKey, cbReverse.checked ? 1 : 0); + }; + cbReverse.addEventListener('change', cbReverseIt, true); + cbReverse.checked = !!(+F.storage.get(cbReverseKey, 0)); + }; +}); // window.addEventListener( 'load' ... |
