Skip to content

Commit 7e6ce2a

Browse files
committed
feat: Mise à jour de l'utilisation des notes en surbrillance
1 parent b55911b commit 7e6ce2a

File tree

3 files changed

+51
-6
lines changed

3 files changed

+51
-6
lines changed

src/css/fix.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,15 @@ header > div.header-info > div.card-header-actions {
7474
.topbar-btn {
7575
border-radius: 0 !important;
7676
}
77+
78+
.new-note-checkbox {
79+
margin-right: 1rem !important;
80+
width: 1.3rem !important;
81+
height: 1.3rem !important;
82+
}
83+
84+
a.disabled {
85+
pointer-events: none !important;
86+
cursor: not-allowed !important;
87+
opacity: 0.4 !important;
88+
}

src/functions.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,7 @@ export function createRow(grade, isAverage, isNew = false) {
726726
if (content === null) {
727727
if (isNew) {
728728
const checkbox = document.createElement('input');
729+
checkbox.classList.add('new-note-checkbox');
729730
checkbox.type = 'checkbox';
730731
checkbox.id = 'note-' + grade.id;
731732
checkbox.value = grade.id;
@@ -846,9 +847,10 @@ export function createCardHead() {
846847
console.info("[Better IUT RCC] Création de l'entête du tableau...");
847848

848849
const head = document.createElement('div');
849-
head.classList.add('card-header');
850850
head.style.display = 'flex';
851851
head.style.justifyContent = 'space-between';
852+
head.style.alignItems = 'center';
853+
head.style.gap = '10px';
852854

853855
const card = document.querySelector("#mainContent > div:first-child > div:nth-child(4) > div > header");
854856
card.append(head);
@@ -859,6 +861,7 @@ export function createCardHead() {
859861
/**
860862
* Fonction pour ajouter un bouton de réinitialisation.
861863
*
864+
* @param {HTMLDivElement} head - Entête du tableau.
862865
* @returns {HTMLButtonElement} - Élément de bouton HTML créé.
863866
*/
864867
export function addResetButton(head) {
@@ -871,10 +874,29 @@ export function addResetButton(head) {
871874
/**
872875
* Fonction pour ajouter un bouton de sauvegarde.
873876
*
877+
* @param {Array} checkboxes - Tableau d'éléments de case à cocher.
878+
* @param {HTMLDivElement} head - Entête du tableau.
874879
* @returns {HTMLButtonElement} - Élément de bouton HTML créé.
875880
*/
876-
export function addSaveButton(head) {
877-
let button = createButton('Sauvegarder les notes connues', 'pink', 'save')
881+
export function addSaveButton(head, checkboxes) {
882+
let button = createButton("Sauvegarder les notes connues", "pink", "save")
883+
if (checkboxes.length === 0) {
884+
button = createButton("Sauvegarder les notes connues", "gray", "save")
885+
button.classList.add('disabled');
886+
}
887+
888+
head.prepend(button)
889+
return button;
890+
}
891+
892+
/**
893+
* Fonction pour ajouter un bouton d'information.
894+
*
895+
* @param {HTMLDivElement} head - Entête du tableau.
896+
* @returns {HTMLButtonElement} - Élément de bouton HTML créé.
897+
*/
898+
export function addInformationButton(head) {
899+
let button = createButton('Notes en surbrillance', 'info', 'square-check')
878900
head.prepend(button)
879901

880902
return button;

src/main.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
21
import 'apexcharts/dist/apexcharts.css';
32
import './css/fix.css'
43

5-
import { addButtons, cleanCards, createBilanCard, generateHtml, updateTopBar, createCardHead, orderCards, fetchAllSortedGrades, recreateTable, updateMenu, addSearchBar, addSaveButton, addResetButton, addAvisNotification, addUpdateNotification } from "./functions";
4+
import { addButtons, cleanCards, createBilanCard, generateHtml, updateTopBar, createCardHead, orderCards, fetchAllSortedGrades, recreateTable, updateMenu, addSearchBar, addSaveButton, addResetButton, addAvisNotification, addUpdateNotification, addInformationButton } from "./functions";
65
import { applyTheme } from './theme.js';
76
import { Utils } from './utils.js';
87
import { Average } from './average.js';
@@ -95,6 +94,8 @@ console.info(`[Better IUT RCC] Thème actif : ${activeTheme}`);
9594

9695
const tableHead = createCardHead();
9796

97+
const checkboxes = document.querySelectorAll("tr.new-note input[type='checkbox']");
98+
9899
addResetButton(tableHead).addEventListener('click', async (e) => {
99100
console.warn("[Better IUT RCC] Réinitialisation des notes déjà connues !");
100101

@@ -103,7 +104,7 @@ console.info(`[Better IUT RCC] Thème actif : ${activeTheme}`);
103104
location.reload();
104105
});
105106

106-
addSaveButton(tableHead).addEventListener('click', (e) => {
107+
addSaveButton(tableHead, checkboxes).addEventListener('click', (e) => {
107108
console.info("[Better IUT RCC] Sauvegarde des notes déjà connues !");
108109

109110
e.preventDefault();
@@ -161,6 +162,16 @@ console.info(`[Better IUT RCC] Thème actif : ${activeTheme}`);
161162
});
162163
});
163164

165+
if (checkboxes.length > 0) {
166+
addInformationButton(tableHead).addEventListener('click', (e) => {
167+
e.preventDefault();
168+
169+
alert("Certaines notes sont actuellement en surbrillance. Cela signifie que vous disposez de nouvelles notes que vous n'avez pas encore sauvegardées. Pour les sauvegarder, cochez les cases correspondantes et cliquez sur le bouton \"Sauvegarder\".\n\nSi vous ne cochez aucune case, toutes les notes seront sauvegardées.");
170+
171+
console.info("[Better IUT RCC] Informations concernant la surbrillance affichées !");
172+
});
173+
}
174+
164175
console.info("[Better IUT RCC] Vérification des paramètres de notification...");
165176
browser.storage.local.get('hideAvisNotification').then((result) => {
166177
console.info(`[Better IUT RCC] Paramètre de notification : ${result.hideAvisNotification}`);

0 commit comments

Comments
 (0)