Skip to content

Commit d618bb3

Browse files
committed
Partial work on the rendez-vous system
1 parent 8772429 commit d618bb3

File tree

9 files changed

+244
-48
lines changed

9 files changed

+244
-48
lines changed

src/app.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import WAP from "./WAP";
1313
import Sprint from "./models/sprint";
1414
import PartsController from "./controllers/partsController";
1515
import Part from "./models/part";
16-
import RDVController from "./controllers/rdvController";
1716
import PLDController from "./controllers/pldController";
1817
import CardsController from "./controllers/cardsController";
1918
import { authUser, checkDefaultPassword } from "./middlewares/auth";
@@ -22,6 +21,7 @@ import Config from "./models/config";
2221
import ConfigController from "./controllers/configController";
2322
import { setupMailTransporter } from "./mails";
2423
import { checkMaintenance } from "./middlewares/maintenance";
24+
import RendezVousController from "./controllers/rendezVousController";
2525

2626
const app = express();
2727
const wap = new WAP();
@@ -92,7 +92,7 @@ const controllers : IController[] = [
9292
new UserController(),
9393
new SprintController(),
9494
new PartsController(),
95-
new RDVController(),
95+
new RendezVousController(),
9696
new PLDController(),
9797
new CardsController(),
9898
new MycardsController(),

src/controllers/rdvController.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import IController from "./controller";
2+
import express, {Request, Response} from "express";
3+
import { authUser } from "../middlewares/auth";
4+
5+
class RendezVousController implements IController {
6+
public path = "/rendezVous";
7+
public router = express.Router();
8+
9+
constructor() {
10+
this.initializeRoutes();
11+
}
12+
13+
private initializeRoutes() {
14+
this.router.get("/", authUser, this.rendezVous);
15+
}
16+
17+
private rendezVous = (req: Request, res: Response) => {
18+
return res.render("rendezVous/rendezVous", {
19+
currentPage: '/rendezVous',
20+
wap: req.wap,
21+
user: req.user,
22+
})
23+
}
24+
}
25+
26+
export default RendezVousController;

views/partials/navbar.ejs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@
1818
<a class="nav-link <%= currentPage === '/mycards' ? 'active' : '' %>" <%= currentPage === '/mycards' ? 'aira-current="page"' : '' %> href="/mycards">My Cards</a>
1919
</li>
2020
<li class="nav-item">
21-
<div class="tooltip-wrapper" data-toogle="tooltip" data-placement="bootom" title="Not done yet.">
22-
<a class="nav-link disabled <%= currentPage === '/rdv' ? 'active' : '' %>" <%= currentPage === '/rdv' ? 'aira-current="page"' : '' %> href="/rdv">Rendez-vous</a>
23-
</div>
21+
<a class="nav-link <%= currentPage === '/rendezvous' ? 'active' : '' %>" <%= currentPage === '/rrendezvousdv' ? 'aira-current="page"' : '' %> href="/rendezVous">Rendez-vous</a>
2422
</li>
2523
<% } %>
2624
<% if (user.role == "EDITOR" || user.role == "ADMIN") { %>

views/partials/rendezVous.ejs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<div class="row mb-5">
2+
<div class="col">
3+
<div class="card">
4+
<div class="card-header d-flex">
5+
<div>
6+
<h4>Réunion passée du 22/02/2023</h4>
7+
</div>
8+
<% if (isAdmin) { %>
9+
<div class="ms-auto">
10+
<a class="btn btn-warning ms-auto ps-4 pe-4">Edit</a>
11+
</div>
12+
<% } %>
13+
</div>
14+
<div class="card-body">
15+
<ul class="list-group list-group-flush">
16+
<li class="list-group-item">
17+
<h5 class="card-title">Ordre du jour</h5>
18+
<p class="card-text">Lorem ipsum dolor sit amet</p>
19+
</li>
20+
<% if (isAdmin && !isPublished) { %>
21+
<button class="mt-3 btn btn-secondary"type="button" data-bs-toggle="collapse" data-bs-target="#reunion1" aria-expanded="false" aria-controls="reunion1">
22+
Show non-published informations
23+
</button>
24+
<div class="collapse" id="reunion1">
25+
<% } %>
26+
<% if (isAdmin || isPublished) { %>
27+
<li class="list-group-item">
28+
<h5 class="card-title">Compte rendu</h5>
29+
<p class="card-text">Lorem ipsum dolor sit amet</p>
30+
</li>
31+
<li class="list-group-item">
32+
<h5 class="card-title">Présences</h5>
33+
<div class="presence-undefined">Name</div>
34+
<div class="presence-absent">Name</div>
35+
<div class="presence-present">Name</div>
36+
</li>
37+
<% } %>
38+
<% if (isAdmin && !isPublished) { %>
39+
</div>
40+
<% } %>
41+
</ul>
42+
</div>
43+
</div>
44+
</div>
45+
</div>

views/rdv/rdv.ejs

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="robots" content="noindex, nofollow">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
8+
<title>WAP - Create Rendez-Vous</title>
9+
</head>
10+
<body>
11+
<div class="row mb-5 text-center">
12+
<h1>Création de Rendez-Vous</h1>
13+
</div>
14+
<div class="row mb-5">
15+
<form>
16+
<div class="mb-3 form-group">
17+
<label for="date" class="form-label">Date</label>
18+
<input type="datetime-local" class="form-control" id="date" name="date">
19+
</div>
20+
<div class="mb-3 form-group">
21+
<label for="agenda" class="form-label">Ordre du jour</label>
22+
<textarea class="form-control" id="agenda" name="agenda"></textarea>
23+
</div>
24+
<div class="mb-3 form-group">
25+
<div class="form-check">
26+
<input class="form-check-input" type="checkbox" value="" id="passed" name="passed" disabled checked>
27+
<label class="form-check-label" for="passed">Le rendez-vous est visible par les utilisateurs <span style="color: var(--bs-danger);">(attention: ne peux pas être décoché)</span></label>
28+
</div>
29+
</div>
30+
<button type="submit" class="btn btn-success">Créer</button>
31+
</form>
32+
</div>
33+
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
34+
</body>
35+
</html>
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="robots" content="noindex, nofollow">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
8+
<title>WAP - Edit Rendez-Vous</title>
9+
</head>
10+
<body>
11+
<div class="row mb-5 text-center">
12+
<h1>Édition du Rendez-Vous du: 18/01/2022</h1>
13+
</div>
14+
<div class="row mb-5">
15+
<form>
16+
<div class="mb-3 form-group">
17+
<label for="date" class="form-label">Date</label>
18+
<input type="datetime-local" class="form-control" id="date" name="date">
19+
</div>
20+
<div class="mb-3 form-group">
21+
<label for="agenda" class="form-label">Ordre du jour</label>
22+
<textarea class="form-control" id="agenda" name="agenda"></textarea>
23+
</div>
24+
<div class="mb-3 form-group">
25+
<label for="report" class="form-label">Compte rendu</label>
26+
<textarea class="form-control" id="report" name="report"></textarea>
27+
</div>
28+
<div class="mb-3 form-group">
29+
<div class="form-check">
30+
<input class="form-check-input" type="checkbox" value="" id="passed" name="passed" disabled checked>
31+
<label class="form-check-label" for="passed">Le rendez-vous est visible par les utilisateurs <span style="color: var(--bs-danger);">(attention: ne peux pas être décoché)</span></label>
32+
</div>
33+
</div>
34+
<div class="mb-3 form-group">
35+
<div class="form-check">
36+
<input class="form-check-input" type="checkbox" value="" id="passed" name="passed">
37+
<label class="form-check-label" for="passed">Le rendez-vous est passé <span style="color: var(--bs-danger);">(attention: ne peux pas être décoché)</span></label>
38+
</div>
39+
</div>
40+
<div class="mb-3 form-group">
41+
<table class="table table-striped">
42+
<thead>
43+
<tr>
44+
<th scope="col">Nom</th>
45+
<th scope="col">N/A</th>
46+
<th scope="col">Présent</th>
47+
<th scope="col">Absent</th>
48+
</tr>
49+
</thead>
50+
<tbody>
51+
<tr>
52+
<th scope="row">Name</th>
53+
<td><input class="form-check-input" type="radio" name="1" id="1" value="na" checked></td>
54+
<td><input class="form-check-input" type="radio" name="1" id="1" value="present"></td>
55+
<td><input class="form-check-input" type="radio" name="1" id="1" value="absent"></td>
56+
</tr>
57+
</tbody>
58+
</table>
59+
</div>
60+
<button type="submit" class="btn btn-success">Sauvegarder</button>
61+
</form>
62+
</div>
63+
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
64+
</body>
65+
</html>

views/rendezVous/rendezVous.ejs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="robots" content="noindex, nofollow">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
8+
<title>WAP - Rendez-Vous</title>
9+
<style>
10+
.presence-undefined {
11+
display: inline-block;
12+
border: 1px gray solid;
13+
padding: 5px;
14+
background-color: lightgray;
15+
font-size: 1.4vh;
16+
margin-right: 2mm;
17+
margin-bottom: 2mm;
18+
}
19+
.presence-absent {
20+
display: inline-block;
21+
border: 1px var(--bs-danger) solid;
22+
padding: 5px;
23+
background-color: lightcoral;
24+
font-size: 1.4vh;
25+
margin-right: 2mm;
26+
margin-bottom: 2mm;
27+
}
28+
.presence-present {
29+
display: inline-block;
30+
border: 1px var(--bs-success) solid;
31+
padding: 5px;
32+
background-color: lightgreen;
33+
font-size: 1.4vh;
34+
margin-right: 2mm;
35+
margin-bottom: 2mm;
36+
}
37+
.presence-absent::after {
38+
content: '- Absent(e)';
39+
display: inline-block;
40+
margin-left: 2mm;
41+
}
42+
.presence-present::after {
43+
content: '- Présent(e)';
44+
display: inline-block;
45+
margin-left: 2mm;
46+
}
47+
.presence-undefined::after {
48+
content: '- N/A';
49+
display: inline-block;
50+
margin-left: 2mm;
51+
}
52+
</style>
53+
</head>
54+
<body>
55+
<%- include("../partials/navbar.ejs") %>
56+
<div class="container-xxl bd-gutter flex-wrap flex-lg-nowrap p-5">
57+
<div class="row mb-5 text-center">
58+
<h1>Rendez-Vous</h1>
59+
</div>
60+
<div class="row mb-5">
61+
<a type="button" class="btn btn-outline-success" href="/rendezVous/create">Create a Rendez-Vous</a>
62+
</div>
63+
<%- include("../partials/rendezVous.ejs", { isAdmin: true, isPublished: true}) %>
64+
<%- include("../partials/rendezVous.ejs", { isAdmin: true, isPublished: false}) %>
65+
<%- include("../partials/rendezVous.ejs", { isAdmin: false, isPublished: true}) %>
66+
<%- include("../partials/rendezVous.ejs", { isAdmin: false, isPublished: false}) %>
67+
</div>
68+
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
69+
</body>
70+
</html>

0 commit comments

Comments
 (0)