forked from rDrama/rDrama
1
0
Fork 0

rewrite sort_table.js, credit to htbz

master
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) { function sort_table(n) {
shouldSwitch = true; const table = this.event.target.parentElement.parentElement.parentElement
break; const rows = table.rows;
} let items = [];
else if (!desc && x_attribute > y_attribute) { for (let i = 1; i < rows.length; i++) {
shouldSwitch = true; const ele = rows[i];
break; 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);
if (shouldSwitch) { console.log(attr);
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); items.push({ ele, attr });
switching = true; }
switchcount ++; if (sortAscending[n]) {
} items.sort((a, b) => a.attr - b.attr);
} sortAscending[n] = false;
desc = !desc; } 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> </table>
</div> </div>
<script src="/assets/js/sort_table.js?v=244"></script> <script src="{{asset('js/sort_table.js')}}"></script>
{% endblock %} {% endblock %}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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