From 2619e8e91766927ae8d6ca57abee054567e59ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Twoje=20Imi=C4=99=20Nazwisko?= Date: Fri, 18 Oct 2024 06:01:25 -0400 Subject: [PATCH] load categories from json --- index.html | 2 +- js/script.js | 72 ++++++++++++++++++++++++++++------------------------ 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/index.html b/index.html index c96e590..4c7913a 100644 --- a/index.html +++ b/index.html @@ -126,7 +126,7 @@ -
+
diff --git a/js/script.js b/js/script.js index 7daeaee..c080565 100644 --- a/js/script.js +++ b/js/script.js @@ -1,35 +1,3 @@ -// Definicja kategorii i ich kryteriów -const categories = { - frekwencja: [ - { name: "Frekwencja 95-100%", id: "frekwencja" }, - { name: "Brak godzin nieusprawiedliwionych", id: "brak_godzin" }, - { name: "Minimum 85% frekwencja", id: "min_85" } - ], - olimpiady: [ - { name: "Etap szkolny", id: "etap_szkolny" }, - { name: "Etap rejonowy", id: "etap_rejonowy" }, - { name: "Etap wojewódzki", id: "etap_wojewodzki" }, - { name: "Etap ogólnopolski", id: "etap_ogolnopolski" } - ], - konkursy: [ - { name: "Udział w konkursach", id: "udzial_konkurs" }, - { name: "Wyróżnienie w konkursie", id: "wyroznienie_konkurs" } - ], - reprezentacja: [ - { name: "Reprezentacja indywidualna", id: "reprezentacja_indywidualna" }, - { name: "Reprezentacja zespołowa", id: "reprezentacja_zespolowa" }, - { name: "Udział w zawodach", id: "udzial_zawody" } - ], - aktywnosc: [ - { name: "Organizacja imprez", id: "organizacja_imprez" }, - { name: "Funkcje w klasie", id: "funkcja_klasa" }, - { name: "Uroczystości okolicznościowe", id: "uroczystosci" }, - { name: "Udział w poczcie sztandarowej", id: "poczta_sztandar" }, - { name: "Pomoc nauczycielowi", id: "pomoc_nauczyciel" }, - { name: "Wolontariat", id: "wolontariat" } - ] -}; - // Zmienne globalne let currentCategory = 'frekwencja'; let currentClass = ''; @@ -120,6 +88,27 @@ async function loadStudents(classFilePath) { } } +async function getCategoriesWithCriteria() { + const criteriaFilePath = '/data/criteria.json'; + const criteria = await fetchJSONFile(criteriaFilePath); + let categoriesWithCriteria = {} + + criteria.categories.forEach(category => { + let criteriaForCategory = [] + criteria.criteria.forEach(criteria => { + if(category.criteria_ids.includes(criteria.id)) { + console.log(`!!! ${category.name} posiada ${criteria.name}`) + criteriaForCategory.push({name: criteria.name, id: criteria.id}) + } + }) + categoriesWithCriteria[category.id] = criteriaForCategory + }) + + return categoriesWithCriteria + + +} + // Funkcja do wczytania pliku criteria.json async function loadCriteria() { const criteriaFilePath = '/data/criteria.json'; @@ -127,7 +116,11 @@ async function loadCriteria() { console.log("Załadowane kryteria:", criteria); + // + // LADOWANIE ROL + // const roles = criteria.roles; + const selectroleByid = document.getElementById("select-role"); let selectroleHTML = ""; // Zainicjalizuj pusty string na HTML @@ -138,6 +131,17 @@ async function loadCriteria() { // Wstawienie HTML do elementu select selectroleByid.innerHTML = selectroleHTML; + + // category-buttons-box + const categoriesCriteria = criteria.categories; + const categoryButtonsBox = document.getElementById("category-buttons-box"); + let categoryButtonHTML = "" + categoriesCriteria.forEach(category => { + // categoryButtonHTML += ``; + categoryButtonHTML += `` + }) + + categoryButtonsBox.innerHTML = categoryButtonHTML; } @@ -301,7 +305,7 @@ function getGrade(points) { } // Funkcja do generowania tabeli uczniów na podstawie wybranej kategorii -function generateTable(category) { +async function generateTable(category) { const table = document.getElementById('student-table'); const thead = table.querySelector('thead tr'); const tbody = table.querySelector('tbody'); @@ -316,6 +320,8 @@ function generateTable(category) { thead.appendChild(thName); // Pobierz kolumny dla wybranej kategorii + const categories = await getCategoriesWithCriteria() + console.log("łot:", categories) const categoryColumns = categories[category]; // Dodaj nagłówki dla kryteriów w kategorii