forked from rDrama/rDrama
rewrite sort_table.js, credit to htbz
parent
5aaeb93b35
commit
3e75309821
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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 %}
|
||||||
|
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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 %}
|
||||||
|
|
||||||
|
|
|
@ -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 %}
|
||||||
|
|
|
@ -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 %}
|
|
@ -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,
|
||||||
}
|
}
|
||||||
-%}
|
-%}
|
||||||
|
|
||||||
|
|
|
@ -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 %}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue