Greasy Fork is available in English.
Numérotation de la liste des élèves
// ==UserScript== // @name EcoleDirecte Tools // @namespace Violentmonkey Scripts // @match https://*.ecoledirecte.com/* // @version 1.16 // @author OB - Education Nationale / Académie de Bordeaux - FRANCE // @icon https://www.ecoledirecte.com/assets/images/logoEcoleDirecte.png // @grant GM_addStyle // @run-at document-end // @description Numérotation de la liste des élèves // @license MIT // @date 26/04/2023 // ==/UserScript== GM_addStyle(".numbers{background-color: rgb(255, 255, 128);}"); function ConsolePrint(message) { var startTime = new Date(); console.log('[ED-Tools] '+ startTime.toLocaleTimeString() + ' ' + message) ; } ConsolePrint('RUN'); function isNumeric(value) { return /^-?\d+$/.test(value); } function SetStudentsNumbers(classname) { var index = 1; var success = 0; var lastname = ""; ConsolePrint("SetStudentsNumbers search : " + classname); names = document.getElementsByClassName(classname) for (var i = 0; i < names.length; i++) { name = names[i].innerText; if( !isNumeric(name[0]) && name.length != 0 && name != lastname) { ConsolePrint("SetStudentsNumbers IN [" + classname + "] FOUNDED [" + name + "] INDEX " + index); code = names[i].innerHTML.replace(" ",""); names[i].innerHTML = "<span class='numbers'>" + ('0000'+index).slice(-2) + "</span> " + code; lastname = name; index++; success++; } } return(success); } var global_lastname = ""; function SetConseilDeClasse() { /* Ne fonctionne pas (Ajax) SetStudentsNumbers("nom-eleve"); // Conseil de classe : class="nom-eleve selected" */ /* La liste est dans un ul de class "ng-star-inserted" */ var lis = document.getElementsByClassName("nav-stacked") // .getElementsByTagName("li"); for (var i = 0; i < lis.length; ++i) { // do something with items[i], which is a <li> element // A suivre ConsolePrint("nav-stacked ->"+lis[i]); } names = document.getElementsByClassName("nom-eleve"); for (var i = 0; i < names.length; i++) { name = names[i].innerText; if( name.length > 1 && name != global_lastname ) { ConsolePrint("CONSEIL DE CLASSE DE [" + name+"]"); global_lastname = name; } } } function SearchStudentsList() { if ( window.location.href.indexOf("CarnetDeNotes/notes") > -1) { /* CarnetDeNotes = validé */ SetStudentsNumbers("open-eleve"); } else if ( window.location.href.indexOf("CarnetDeNotes/competencesLSU") > -1) { /* Compétences = validé*/ SetStudentsNumbers("nom-eleve cliquable"); } else if ( window.location.href.indexOf("CarnetDeNotes") > -1) { /* Appréciations, Composantes */ SetStudentsNumbers("nom-eleve cliquable"); } else if ( window.location.href.indexOf("ConseilDeClasse") > -1) { /* Conseil de classe */ // SetConseilDeClasse(); } } /* Application */ if (self == top) { /* run only in the top frame. we do our own frame parsing */ ConsolePrint('STARTED'); setInterval(SearchStudentsList, 3000); }