rewrite sort_table.js, credit to htbz

remotes/1693045480750635534/spooky-22
Aevann1 2022-09-03 20:24:26 +02:00
parent 5aaeb93b35
commit 3e75309821
9 changed files with 33 additions and 48 deletions

View File

@ -1,42 +1,26 @@
let desc = true;
let sortAscending = {};
function sort_table(n) {
let rows, i, x, y, shouldSwitch, x_attribute, y_attribute, switchcount = 0;
const table = this.event.target.parentElement.parentElement.parentElement
let switching = true;
while (switching) {
switching = false;
rows = table.rows;
for (i = 1; i < (rows.length - 1); i++) {
shouldSwitch = false;
let x = rows[i].getElementsByTagName("TD")[n];
let y = rows[i + 1].getElementsByTagName("TD")[n];
const x_child = x.getElementsByTagName('a')[0]
if (typeof x_child != 'undefined') x = x_child
const y_child = y.getElementsByTagName('a')[0]
if (typeof y_child != 'undefined') y = y_child
if (x.dataset.time) {
x_attribute = parseInt(x.dataset.time)
y_attribute = parseInt(y.dataset.time)
}
else {
x_attribute = parseInt(x.innerHTML)
y_attribute = parseInt(y.innerHTML)
}
if (desc && x_attribute < y_attribute) {
shouldSwitch = true;
break;
}
else if (!desc && x_attribute > y_attribute) {
shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
switchcount ++;
}
}
desc = !desc;
}
const table = this.event.target.parentElement.parentElement.parentElement
const rows = table.rows;
let items = [];
for (let i = 1; i < rows.length; i++) {
const ele = rows[i];
let x = rows[i].getElementsByTagName("TD")[n];
x = x.getElementsByTagName('a')[0] || x;
const attr = x.dataset.time ? parseInt(x.dataset.time) : parseInt(x.innerHTML);
console.log(attr);
items.push({ ele, attr });
}
if (sortAscending[n]) {
items.sort((a, b) => a.attr - b.attr);
sortAscending[n] = false;
} else {
items.sort((a, b) => b.attr - a.attr);
sortAscending[n] = true;
}
for (let i = items.length - 1; i--;) {
items[i].ele.parentNode.insertBefore(items[i].ele, items[i + 1].ele);
}
}

View File

@ -29,6 +29,6 @@
</table>
</div>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endblock %}

View File

@ -39,6 +39,6 @@
</table>
</div>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endblock %}

View File

@ -90,5 +90,5 @@
</pre>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endblock %}

View File

@ -41,7 +41,7 @@
</table>
</div>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endif %}

View File

@ -80,5 +80,5 @@
</pre>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endblock %}

View File

@ -26,6 +26,6 @@
</table>
</div>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endblock %}

View File

@ -32,6 +32,7 @@ set CACHE_VER = {
'js/userpage.js': 244,
'js/userpage_v.js': 245,
'js/lozad.js': 260,
'js/sort_table.js': 245,
}
-%}

View File

@ -81,7 +81,7 @@
</table>
</div>
<script src="/assets/js/sort_table.js?v=244"></script>
<script src="{{asset('js/sort_table.js')}}"></script>
{% endif %}