désactiver tri colonnes de class nosort dans une liste triable

This commit is contained in:
Jean-Christophe Engel 2025-02-22 13:09:46 +01:00
parent 0be13c1c11
commit c893639b9e
3 changed files with 42 additions and 5 deletions

View File

@ -148,9 +148,9 @@
<td>{{$col2}}</td>
<td>{{$op_label}}</td>
<td class="num">{{$amount}}</td>
<td class="num">{{$stock}}</td>
<td class="num">{{$exterieur}}</td>
<td class="num">{{$dispo}}</td>
<td class="num nosort">{{$stock}}</td>
<td class="num nosort">{{$exterieur}}</td>
<td class="num nosort">{{$dispo}}</td>
<td>{{$comment}}</td>
<td class="actions">
{{if $current != "archives"}}
@ -199,7 +199,7 @@
<td>{{$col2}}</td>
<td>{{$op_label}}</td>
<td class="num">{{$amount}}</td>
<td class="num">{{$stock}}</td>
<td class="num nosort">{{$stock}}</td>
<td>{{$comment}}</td>
<td class="actions">
{{:linkbutton
@ -224,3 +224,10 @@
{{/if}}
{{:admin_footer}}
<script type="text/javascript" src="scripts.js"></script>
<script type="text/javascript">
(function () {
disableColumSort(document.querySelector("table[class=list]"));
})();
</script>

View File

@ -124,7 +124,7 @@
<td>{{$cat_name}}</td>
<td class="num">{{$col3}}</td>
<td class="num">{{$col4}}</td>
<td class="num">{{$dispo}}</td>
<td class="num nosort">{{$dispo}}</td>
<td class="actions">
{{if $col4 > 0}}
{{:linkbutton
@ -159,3 +159,10 @@
{{else}}
<p class="block alert">Aucun matériel.</p>
{{/list}}
<script type="text/javascript" src="scripts.js"></script>
<script type="text/javascript">
(function () {
disableColumSort(document.querySelector("table[class=list]"));
})();
</script>

23
scripts.js Normal file
View File

@ -0,0 +1,23 @@
/**
* désactiver le tri des colonnes ayant la classe nosort dans une liste triable
* @param {Node} liste - liste triable
*/
function disableColumSort(liste) {
// chercher la première ligne du corps de la table
let columns = liste.querySelectorAll("tbody > tr > td");
// chercher la ligne de titres
let titles = liste.querySelectorAll("thead > tr > td");
// désactiver le tri
for (let i = 0; i < titles.length; ++i) {
let anchor = titles[i].querySelector("a");
const classAttr = columns[i].getAttribute("class");
if (anchor != null && classAttr != null && classAttr.includes("nosort")) {
anchor.removeAttribute("href");
anchor.removeAttribute("title");
anchor.removeChild(anchor.firstElementChild);
}
}
}