(function() { "use strict"; var show_all = function() { var tr = document.querySelectorAll(".projtable tr"); for (var i = 0, e = tr.length; i !== e; ++i) { tr[i].style.display = "table-row"; } var warn = document.querySelector(".tag-filter-warn"); warn.parentNode.removeChild(warn); }; var show_tag = function(tag) { if (document.querySelector(".tag-filter-warn") !== null) { show_all(); } var tr = document.querySelectorAll(".projtable tr"); for (var i = 0, e = tr.length; i !== e; ++i) { tr[i].style.display = (tr[i].className.split(" ").indexOf("taggedWith-"+tag) === -1) ? "none" : "table-row"; } var div = document.createElement("div"); div.className = "tag-filter-warn"; div.innerHTML = "Filtering by tag. reset"; document.body.appendChild(div); document.querySelector(".tag-filter-warn a").addEventListener('click', function() { show_all(); return false; }); }; var get_show_tag = function(tag) { return function() { show_tag(tag); return false; }; }; var sort_rows = function(cb) { var tr = document.querySelectorAll(".projtable tr"); var items = []; for (var i = 0, e = tr.length; i !== e; ++i) { items.push([i, cb(tr[i])]); } items.sort(function(a, b) { return (a[1] - b[1]); }); for (var i = 0, e = items.length; i !== e; ++i) { var el = tr[items[i][0]]; var parent = el.parentElement; parent.removeChild(el); parent.appendChild(el); } }; var sort_update = function() { var cb; switch(document.getElementById('sortorder').value) { case 'a': default: { cb = function(el) { return el.getAttribute('data-sort-ct'); }; } break; case 'b': { cb = function(el) { return el.getAttribute('data-sort-mt'); } } break; case 'c': { cb = function(el) { return el.getAttribute('data-sort-al'); } } break; }; sort_rows(cb); }; window.addEventListener('load', function() { var taglinks = document.querySelectorAll(".tag-link"); for (var i = 0, e = taglinks.length; i !== e; ++i) { var tag = taglinks[i].getAttribute("data-tag"); taglinks[i].addEventListener('click', get_show_tag(tag)); } var so = document.getElementById('sortorder'); if (so) { so.addEventListener('change', sort_update); sort_update(); } }); })();