mirror of
https://github.com/holub/mame
synced 2025-04-27 18:53:05 +03:00
79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
// 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;
|
|
}
|