Compare commits
No commits in common. "mpabi" and "dev" have entirely different histories.
|
@ -32,11 +32,4 @@ button {
|
||||||
}
|
}
|
||||||
.active {
|
.active {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
padding: 5px;
|
|
||||||
background-color: #f2f2f2;
|
|
||||||
|
|
||||||
}
|
}
|
19
index.html
19
index.html
|
@ -64,18 +64,10 @@
|
||||||
<button onclick="changeDay(-1)">Poprzedni Dzień</button>
|
<button onclick="changeDay(-1)">Poprzedni Dzień</button>
|
||||||
<button onclick="changeDay(1)">Następny Dzień</button>
|
<button onclick="changeDay(1)">Następny Dzień</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="select-class">
|
|
||||||
<p>Wybierz klase:</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th rowSpan="2"><select class="select-class" id="select-class">
|
<th rowSpan="2">Uczeń</th>
|
||||||
<option value="">Klasa 1</option>
|
|
||||||
<option value="">Klasa 2</option>
|
|
||||||
<option value="">Klasa 3</option>
|
|
||||||
</select></th>
|
|
||||||
<th colspan="3">Frekwencja</th>
|
<th colspan="3">Frekwencja</th>
|
||||||
<th colspan="4">Olimpiady</th>
|
<th colspan="4">Olimpiady</th>
|
||||||
<th colspan="2">Konkursy Szkolne</th>
|
<th colspan="2">Konkursy Szkolne</th>
|
||||||
|
@ -115,17 +107,10 @@
|
||||||
<div id="stats"></div>
|
<div id="stats"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer style="margin: 20px">
|
|
||||||
K. Michalak
|
|
||||||
</br>
|
|
||||||
F. Kowalski
|
|
||||||
</br>
|
|
||||||
Led and Authored by M. Pabiszczak
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="module" src="js/script.js"></script>
|
<script type="module" src="js/script.js"></script>
|
||||||
|
<script type="module" src="js/app.js"></script>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
45
js/app.js
45
js/app.js
|
@ -0,0 +1,45 @@
|
||||||
|
// Funkcja do wczytania pliku JSON
|
||||||
|
async function fetchJSONFile(filePath) {
|
||||||
|
try {
|
||||||
|
const response = await fetch(filePath);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP error! Status: ${response.status}`);
|
||||||
|
}
|
||||||
|
return await response.json();
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error fetching JSON file:", error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funkcja do wczytania pliku class.json
|
||||||
|
async function loadClasses() {
|
||||||
|
const classFilePath = '/data/class.json';
|
||||||
|
const classes = await fetchJSONFile(classFilePath);
|
||||||
|
|
||||||
|
if (classes) {
|
||||||
|
console.log('Classes loaded:', classes);
|
||||||
|
|
||||||
|
// Iterowanie po wszystkich klasach i wczytywanie plików z danymi uczniów
|
||||||
|
for (const classInfo of classes) {
|
||||||
|
const studentsFilePath = '/data/'+ classInfo.file_path;
|
||||||
|
const studentsData = await fetchJSONFile(studentsFilePath);
|
||||||
|
|
||||||
|
if (studentsData) {
|
||||||
|
console.log(`Students loaded for class ${classInfo.class}:`, studentsData);
|
||||||
|
// Tutaj możesz przechowywać dane lub je przetwarzać według potrzeb
|
||||||
|
processClassData(classInfo, studentsData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funkcja do przetwarzania danych o klasach i uczniach
|
||||||
|
function processClassData(classInfo, studentsData) {
|
||||||
|
console.log(`Class: ${classInfo.class}, Group: ${classInfo.group}, Students Count: ${classInfo.student_count}`);
|
||||||
|
console.log('Student Data:', studentsData);
|
||||||
|
|
||||||
|
// Możesz tutaj np. wyświetlić dane w interfejsie lub przeprowadzić dodatkowe operacje
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uruchomienie wczytywania klas
|
||||||
|
loadClasses();
|
102
js/script.js
102
js/script.js
|
@ -1,85 +1,3 @@
|
||||||
//Funkcja do sprawdzania ktora klasa jest wybrana w SELECT
|
|
||||||
|
|
||||||
function selected_class() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Funkcja do wczytania pliku JSON
|
|
||||||
async function fetchJSONFile(filePath) {
|
|
||||||
try {
|
|
||||||
const response = await fetch(filePath);
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`HTTP error! Status: ${response.status}`);
|
|
||||||
}
|
|
||||||
return await response.json();
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error fetching JSON file:", error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Funkcja do wczytania pliku class.json
|
|
||||||
async function loadClasses() {
|
|
||||||
const classFilePath = '/data/class.json';
|
|
||||||
const classes = await fetchJSONFile(classFilePath);
|
|
||||||
|
|
||||||
if (classes) {
|
|
||||||
console.log('Classes loaded:', classes);
|
|
||||||
|
|
||||||
var section_HTML = ""
|
|
||||||
|
|
||||||
// Iterowanie po wszystkich klasach i wczytywanie plików z danymi uczniów
|
|
||||||
for (const classInfo of classes) {
|
|
||||||
const studentsFilePath = '/data/'+ classInfo.file_path;
|
|
||||||
const studentsData = await fetchJSONFile(studentsFilePath);
|
|
||||||
|
|
||||||
// Wczytywanie klas do elementu select w html
|
|
||||||
|
|
||||||
const section_by_id = document.getElementById("select-class")
|
|
||||||
|
|
||||||
if (!section_HTML.includes(classInfo.class)) {
|
|
||||||
const section_option = "<option>" + "Klasa: " + classInfo.class + "</option>"
|
|
||||||
section_HTML += section_option;
|
|
||||||
console.log("DODANO KLASE ", classInfo.class, " DO SELECT")
|
|
||||||
section_by_id.innerHTML = section_HTML
|
|
||||||
}
|
|
||||||
|
|
||||||
if (studentsData) {
|
|
||||||
console.log(`Students loaded for class ${classInfo.class}:`, studentsData);
|
|
||||||
// Tutaj możesz przechowywać dane lub je przetwarzać według potrzeb
|
|
||||||
processClassData(classInfo, studentsData);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function loadCriteria () {
|
|
||||||
const criteriaFilePath = '/data/criteria.json';
|
|
||||||
const criteria = await fetchJSONFile(criteriaFilePath);
|
|
||||||
|
|
||||||
console.log ("break")
|
|
||||||
}
|
|
||||||
|
|
||||||
const classData = []
|
|
||||||
|
|
||||||
// Funkcja do przetwarzania danych o klasach i uczniach
|
|
||||||
function processClassData(classInfo, studentsData) {
|
|
||||||
console.log(`Class: ${classInfo.class}, Group: ${classInfo.group}, Students Count: ${classInfo.student_count}`);
|
|
||||||
console.log('Student Data:', studentsData);
|
|
||||||
classData.push(studentsData)
|
|
||||||
// Możesz tutaj np. wyświetlić dane w interfejsie lub przeprowadzić dodatkowe operacje
|
|
||||||
}
|
|
||||||
|
|
||||||
// Uruchomienie wczytywania klas
|
|
||||||
loadClasses();
|
|
||||||
loadCriteria();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
let currentDay = 0;
|
let currentDay = 0;
|
||||||
const baseDate = new Date();
|
const baseDate = new Date();
|
||||||
const studentsData = [
|
const studentsData = [
|
||||||
|
@ -101,33 +19,13 @@ function showTab(tabName) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function changeClass() {
|
|
||||||
await loadClasses()
|
|
||||||
let classesNames = []
|
|
||||||
for (const classInfo of classData) {
|
|
||||||
console.log(classInfo)
|
|
||||||
classesNames.push(classInfo.header.class + "-" + classInfo.header.group)
|
|
||||||
}
|
|
||||||
console.log("lol")
|
|
||||||
console.log(classesNames)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function generateTable() {
|
function generateTable() {
|
||||||
changeClass()
|
|
||||||
const table = document.getElementById('student-table');
|
const table = document.getElementById('student-table');
|
||||||
table.innerHTML = '';
|
table.innerHTML = '';
|
||||||
|
|
||||||
//xd
|
|
||||||
|
|
||||||
studentsData.forEach(student => {
|
studentsData.forEach(student => {
|
||||||
const row = document.createElement('tr');
|
const row = document.createElement('tr');
|
||||||
row.innerHTML = `
|
row.innerHTML = `
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<td>${student.name}</td>
|
<td>${student.name}</td>
|
||||||
<td><input type="checkbox" id="frekwencja-${student.name.replace(' ', '-')}" onchange="calculateStats()"></td>
|
<td><input type="checkbox" id="frekwencja-${student.name.replace(' ', '-')}" onchange="calculateStats()"></td>
|
||||||
<td><input type="checkbox" id="brak-godzin-${student.name.replace(' ', '-')}" onchange="calculateStats()"></td>
|
<td><input type="checkbox" id="brak-godzin-${student.name.replace(' ', '-')}" onchange="calculateStats()"></td>
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
a4dd89352b730d2ef7a3eff72ab98dbc2b7e8d6b
|
|
Loading…
Reference in New Issue