diff options
Diffstat (limited to 'docs/release/scripts/minimaws/lib/assets/common.js')
-rw-r--r-- | docs/release/scripts/minimaws/lib/assets/common.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/docs/release/scripts/minimaws/lib/assets/common.js b/docs/release/scripts/minimaws/lib/assets/common.js new file mode 100644 index 00000000000..79200217ddb --- /dev/null +++ b/docs/release/scripts/minimaws/lib/assets/common.js @@ -0,0 +1,78 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb + +function sort_table(tbl, col, dir, numeric) +{ + var tbody = tbl.tBodies[0]; + var trows = Array.prototype.slice.call(tbody.rows, 0).sort( + function (x, y) + { + if (numeric) + return dir * (parseInt(x.cells[col].textContent) - parseInt(y.cells[col].textContent)); + else + return dir * x.cells[col].textContent.localeCompare(y.cells[col].textContent); + }) + trows.forEach(function (row) { tbody.appendChild(row); }); +} + + +function make_table_sortable(tbl) +{ + var headers = tbl.tHead.rows[0].cells; + for (var i = 0; i < headers.length; i++) + { + (function (col) + { + var dir = 1; + var sorticon = document.createElement('img'); + sorticon.setAttribute('src', assetsurl + '/sortind.png'); + sorticon.style.cssFloat = 'right'; + sorticon.style.marginLeft = '0.5em'; + headers[col].appendChild(sorticon); + headers[col].addEventListener( + 'click', + function (event) + { + var imgsrc = sorticon.getAttribute('src'); + imgsrc = imgsrc.substr(imgsrc.lastIndexOf('/') + 1); + if (imgsrc != 'sortind.png') + dir = -dir; + if (dir < 0) + sorticon.setAttribute('src', assetsurl + '/sortdesc.png'); + else + sorticon.setAttribute('src', assetsurl + '/sortasc.png'); + for (var i = 0; i < headers.length; i++) + { + if (i != col) + headers[i].lastChild.setAttribute('src', assetsurl + '/sortind.png'); + } + sort_table(tbl, col, dir, headers[col].getAttribute('class') == 'numeric'); + }); + }(i)); + } +} + + +function make_restore_default_handler(popup, index) +{ + return function (event) + { + if (popup.selectedIndex != index) + { + popup.selectedIndex = index; + popup.dispatchEvent(new Event('change')); + } + } +} + + +function make_restore_default_button(title, id, popup, index) +{ + var btn = document.createElement('button'); + btn.setAttribute('id', id); + btn.setAttribute('type', 'button'); + btn.disabled = popup.selectedIndex == index; + btn.textContent = title; + btn.onclick = make_restore_default_handler(popup, index); + return btn; +} |