source: frontend/web3-eDnevnik_Frontend/src/pages/PredmetenNastavnikPages/PredmetenNastavnik_ViewSlusaniPredmeti/PredmetenNastavnik_ViewSlusaniPredmeti.jsx

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

initial commit

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