summaryrefslogtreecommitdiff
path: root/src/fossil.page.ticket.js
blob: 027c81d367e86fee534a82d8d75cb38c53e4eb7f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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' ...