Numérotation de la liste des élèves sur la page 'Carnet de notes'
// ==UserScript==
// @name EcoleDirecte - Carnet de notes
// @namespace Violentmonkey Scripts
// @match https://www.ecoledirecte.com/CarnetDeNotes*
// @version 1.18
// @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 sur la page 'Carnet de notes'
// @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);
}