summaryrefslogtreecommitdiff
path: root/elm/UList/Opt.js
blob: 7a80884a6e44a6264eea8cb396fc919ef17a2bfb (plain)
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
33
34
var actualInit = function(init, opt) {
    var app = init(opt);

    app.ports.ulistVNDeleted.subscribe(function(b) {
        var e = document.getElementById('ulist_tr_'+opt.flags.vid);
        e.parentNode.removeChild(e.nextElementSibling);
        e.parentNode.removeChild(e);

        // Have to restripe after deletion :(
        var rows = document.querySelectorAll('.ulist > table > tbody > tr');
        for(var i=0; i<rows.length; i++)
            rows[i].classList.toggle('odd', Math.floor(i/2) % 2 == 0);
    });

    app.ports.ulistNotesChanged.subscribe(function(n) {
        document.getElementById('ulist_notes_'+opt.flags.vid).innerText = n;
    });

    app.ports.ulistRelChanged.subscribe(function(rels) {
        var e = document.getElementById('ulist_relsum_'+opt.flags.vid);
        e.classList.toggle('todo', rels[0] != rels[1]);
        e.classList.toggle('done', rels[1] > 0 && rels[0] == rels[1]);
        e.innerText = rels[0] + '/' + rels[1];
    });
};

// This module is typically hidden, lazily load it only when the module is visible to speed up page load time.
wrap_elm_init('UList.Opt', function(init, opt) {
    var e = document.getElementById('collapse_vid'+opt.flags.vid);
    if(e.checked)
        actualInit(init, opt);
    else
        e.addEventListener('click', function() { actualInit(init, opt) }, { once: true });
});