source: frontend/web3-eDnevnik_Frontend/src/pages/KlasenRakovoditel_Pages/Klasen_ViewSlusaniPredmeti/Klasen_ViewSlusaniPredmeti.jsx

Last change on this file was 81cdf2d, checked in by Nikola Janev <nikolajanev57@…>, 9 days ago

initial commit

  • Property mode set to 100644
File size: 5.3 KB
Line 
1import NavbarKlasen from "../../../components/navbarKlasen/NavbarKlasen";
2import styles from "./Klasen_ViewSlusaniPredmetiStyles.module.css";
3
4import React, { useState, useEffect } from "react";
5import axios from "axios";
6import { useParams, useNavigate, Link } from "react-router-dom";
7const Klasen_ViewSlusaniPredmeti = () => {
8 const { classId } = useParams();
9 const navigate = useNavigate();
10 const [aktivniPredmeti, setAktivniPredmeti] = useState(null);
11 const [neaktivniPredmeti, setNeaktivniPredmeti] = useState(null);
12 const [classDetails, setClassDetails] = useState(null);
13 const [loading, setLoading] = useState(true);
14
15 const fetchAllData = async () => {
16 try {
17 setLoading(true);
18 const [resClass, resPredmeti] = await Promise.all([
19 axios.get(`http://localhost:8080/api/klas/${classId}`, {
20 withCredentials: true,
21 }),
22 axios.get(`http://localhost:8080/api/klas/${classId}/predmeti`, {
23 withCredentials: true,
24 }),
25 ]);
26 setClassDetails(resClass.data);
27 setAktivniPredmeti(resPredmeti.data.filter((s) => s.active));
28 setNeaktivniPredmeti(resPredmeti.data.filter((s) => !s.active));
29 } catch (err) {
30 console.log(err);
31 } finally {
32 setLoading(false);
33 }
34 };
35
36 useEffect(() => {
37 if (classId) fetchAllData();
38 }, [classId]);
39
40 if (loading)
41 return (
42 <div>
43 <NavbarKlasen />
44 <div>
45 <h2>Вчитување на Предметите план...</h2>
46 </div>
47 </div>
48 );
49
50 return (
51 <>
52 <div className="m-0 p-0">
53 <header>
54 <NavbarKlasen />
55 <nav
56 className="container-fluid text-white h-25 d-flex justify-content-center text-center p-3"
57 style={{ backgroundColor: "#147176" }}
58 >
59 <Link
60 className="text-white text-decoration-none m-2 fw-bold fs-md"
61 to={"/dashboard"}
62 >
63 Соопштенија
64 </Link>
65 <Link
66 to={`/klasenRakovoditelDashboard/${classId}/weeklyPlan`}
67 className="text-white text-decoration-none m-2 fw-bold"
68 >
69 Види неделни активности
70 </Link>
71 <Link
72 to={`/klasenRakovoditelDashboard/${classId}/raspored`}
73 className="text-white text-decoration-none m-2 fw-bold"
74 >
75 Види распоред
76 </Link>
77 <Link
78 to={`/klasenRakovoditelDashboard/${classId}/students`}
79 className="text-white text-decoration-none m-2 fw-bold"
80 >
81 Студенти
82 </Link>
83 <Link
84 to={`/klasenRakovoditelDashboard/${classId}/subjects`}
85 className="text-white text-decoration-none m-2 fw-bold"
86 >
87 Види слушани предмети
88 </Link>
89 </nav>
90 <div style={{ backgroundColor: "#D8D8D8" }}>
91 <h1 className="m-0">
92 Слушани предмети за класот {classDetails?.oddelenie}-
93 {classDetails?.paralelka}
94 </h1>
95 </div>
96 </header>
97 <main style={{ backgroundColor: "#D8D8D8" }} className="m-0">
98 <div className="container-fluid">
99 <div className="row">
100 <div className="col">
101 <h2>Активни предмети</h2>
102 {aktivniPredmeti.length > 0 ? (
103 <table className="table table-striped">
104 <thead>
105 <tr>
106 <th>Име</th>
107 <th>Фонд часови</th>
108 <th>Активен ?</th>
109 </tr>
110 </thead>
111 <tbody>
112 {aktivniPredmeti.map((p) => (
113 <tr key={p.id}>
114 <td>{p.ime}</td>
115 <td>{p.fond_casovi}</td>
116 <td>Да</td>
117 </tr>
118 ))}
119 </tbody>
120 </table>
121 ) : (
122 <p>Нема активни предмети во овој клас</p>
123 )}
124 </div>
125 <div className="col">
126 <h2>Неактивни предмети</h2>
127 {neaktivniPredmeti > 0 ? (
128 <table>
129 <thead>
130 <tr>
131 <th>Име</th>
132 <th>Фонд часови</th>
133 <th>Активен ?</th>
134 </tr>
135 </thead>
136 <tbody>
137 {neaktivniPredmeti.map((p) => (
138 <tr key={p.id}>
139 <td>{p.ime}</td>
140 <td>{p.fond_casovi}</td>
141 <td>Не</td>
142 </tr>
143 ))}
144 </tbody>
145 </table>
146 ) : (
147 <p>Нема неактивни предмети во овој клас</p>
148 )}
149 </div>
150 </div>
151 </div>
152 </main>
153 </div>
154 </>
155 );
156};
157
158export default Klasen_ViewSlusaniPredmeti;
Note: See TracBrowser for help on using the repository browser.