Skip to content
Snippets Groups Projects
Commit 2373add3 authored by BADRI Rym's avatar BADRI Rym
Browse files

Add images, icons, and class files for job management application

parent 88501004
No related branches found
No related tags found
No related merge requests found
Showing
with 584 additions and 0 deletions
function getLoginForm (){
fetch('login').then(function (response) {
return response.text();
}).then(function (html) {
console.log(html)
document.getElementById("error_panel_p").innerHTML += html;
}).catch(function (err) {
console.warn('Something went wrong while getting the login form.', err);
});
}
<div th:replace="~{/includes/head :: fhead}"> </div>
<div th:replace="~{/includes/header :: fheader}"> </div>
<!-- <div class="row justify-content-center"> -->
<div id="central_div" >
<h1>Applications management panel</h1>
<div class="widget_bar">
<div class="widget col-xs-12 col-sm-6 col-md-4 col-lg-3" >
<div class="widget_title col-12">
<p>List of applications</p>
</div>
<div class="widget_button col-12">
<a href="listapplications">
<img th:src="@{/img/list.png}" alt="List of applications submitted"/>
</a>
</div>
<div class="widget_info col-12">
<p>
<!-- <span th:if="${nb_applications}">
<span th:if="${nb_applications} > 1">applications</span>
<span th:if="${nb_applications} < 2">application</span>
registered
</span> -->
</p>
</div>
</div><!-- end widget 1-->
<!-- <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 widget">
<div class="widget_title col-12">
<p>Apply</p>
</div>
<div class="widget_button col-12">
<a href="addapplication">
<img th:src="@{/img/addL.png}" alt="Reference a new company"/>
</a>
</div>
<div class="widget_info col-12"></div>
</div>-->
<!-- end widget 2 -->
</div>
</div>
<!-- </div> -->
<div th:replace="~{/includes/footer :: ffooter}"> </div>
<!DOCTYPE html>
<html th:fragment="layout (title, content)" xmlns:th="http://www.thymeleaf.org" data-bs-theme="auto">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet">
<link th:href="@{/css/gyj_imt.css}" rel="stylesheet">
<link th:href="@{/css/bootstrap-icons.min.css}" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script th:src="@{/js/bootstrap.bundle.min.js}"></script>
<script th:src="@{/js/gyj_imt.js}"></script>
<script src="http://localhost:35729/livereload.js"></script>
<link rel="icon" th:href="@{/img/favicon-32x32.png}" sizes="32x32" type="image/png">
<title th:replace="${title}">IMT Atlantique: Get Your Job</title>
</head>
<body>
<nav th:insert="~{/baseTemplate/nav :: fheader}" />
<main class="container">
<th:block th:replace="${content}">
Empty Page
</th:block>
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Confirmation of deletion</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p class="alert alert-danger">Are you sure you want to <span id="delRecord"> </span> ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<a href="" class="btn btn-danger" id="delRef">Delete</a>
</div>
</div>
</div>
</div>
</main>
<footer class="mt-4" th:replace="~{/baseTemplate/footer:: footer}" />
</body>
</html>
\ No newline at end of file
<footer th:fragment="ffooter">
<div id="footer_div" class="row">
<div class="col">
IMT Atlantique - FIP
</div>
<div class="col bs-light-text-emphasis">
&copy; 2025 Tous droits réservés
</div>
</div>
<div id="error_panel">
<p class="alert-link" id="error_panel_p"></p>
</div>
</footer>
\ No newline at end of file
<div th:fragment="fhead">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link th:href = "@{/css/bootstrap.min.css}" rel="stylesheet">
<link th:href = "@{/css/gyj_imt.css}" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script th:src="@{/js/bootstrap.min.js}"></script>
<script th:src="@{/js/gyj_imt.js}"></script>
<script src="http://localhost:35729/livereload.js"></script>
<link rel="icon" th:href="@{/img/favicon-32x32.png}" sizes="32x32" type="image/png">
<title>IMT Atlantique: Get Your Job</title>
</head>
<body>
</div>
\ No newline at end of file
//header.html
<div th:fragment="fheader">
<div id="header_div" class="row h-10">
<div class="col-2 align-self-start">
<img th:src="@{/img/logo_imt.png}" />
</div>
<div class="col-6 align-self-center"></div>
<div class="col-2 align-self-end">
<p th:if="${#ctx.session.uid} != null">
<i class="bi bi-" style="font-size: 2rem; color: white;" th:title="${#ctx.session.usertype}"
th:attrappend="class=${#ctx.session.usertype=='company'?'buildings':'person'}"></i>
<span th:text="${#ctx.session.user.mail}" class="tiny_text" />
</p>
</div>
<div class="col-2 align-self-end">
<th:block th:if="${#ctx.session.uid} != null">
<a th:if="${#ctx.session.hasMessages == true}" th:href="@{/messages}" title="access to your message"><i
class="bi bi-envelope-at" style="font-size: 2rem; color: white;"></i></a>
<a href="/logout" title="logout from the webapp"><i class="bi bi-box-arrow-in-up"
style="font-size: 2rem; color: white;"></i></a>
</th:block>
<a th:if="${#ctx.session.uid} == null" title="Click to login" href="/login">
<i class="bi bi-box-arrow-in-down" style="font-size: 2rem; color: white;"
title="login to access your data"></i>
</a>
</div>
</div>
<nav class="navbar navbar-expand-md navbar-light">
<div class="container-fluid">
<a class="navbar-brand" href="/">Home</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" th:href="@{/companies}">Companies</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/">Jobs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/">Candidates </a>
</li>
<li class="nav-item">
<a class="nav-link" href="/">Applications</a>
</li>
<li class="nav-item">
<a class="nav-link" th:href="@{/qualificationLevels}">Qualification levels</a>
</li>
<li class="nav-item">
<a class="nav-link" th:href="@{/sectors}">Sectors</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:fragment="article(subcontent)"
th:replace="~{/baseTemplate/base :: layout(~{::title},~{::section})}">
<title>Companies</title>
<section>
<header>
<h1>Companies Management</h1>
</header>
<th:block th:insert="${subcontent}">
</th:block>
</section>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{/company/companyBase :: article(~{::article})}">
<article>
<header>
<h2>Company entry form</h2>
</header>
<!-- (${action}=='create')@{/companies/create}: @{/companies/${company.id}/edit}
"@{{action}==create? /companies/create : /companies/{id}/edit(id=${company.id},action=${action})}"
@{${action}=='create1'? /companies/create : /companies/{id}/edit(id=${company.id})}
-->
<form th:action="@{''}" method="post">
<fieldset class="mb-3">
<label for="nameid" class="form-label">Name</label>:
<input type="text" id="nameid" class="form-control" name="denomination" autofocus="autofocus"
th:value="${company.denomination}" required />
</fieldset>
<fieldset class="mb-3">
<label for="descid" class="form-label">Description</label>:
<input type="text" id="descid" class="form-control" name="description" th:value="${company.description}"
required />
</fieldset>
<fieldset class="mb-3">
<label for="cityid" class="form-label">City</label>:
<input type="text" id="cityid" class="form-control" name="city" th:value="${company.city}" required />
</fieldset>
<button type="submit" class="btn btn-primary" th:title="${action}"><i class="bi bi-floppy"></i></button>
<button type="reset" class="btn btn-secondary" value="Reset" title="reset"><i class="bi bi-eraser-fill"></i></button>
<a th:href="@{/companies}" class="btn btn-danger" title="go back"><i class="bi bi-x-square"></i></a>
</form>
<aside th:if="${#lists.size(company.joboffers)} > 0">
<h2>List of associated job offers</h2>
<table class="table table-striped">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Title</th>
<th scope="col">Task</th>
<th scope="col">Publication date</th>
<th scope="col">Qualification leve</th>
<th scope="col">Sectors</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr th:each="job : ${company.joboffers}">
<th scope="row" th:text="${job.id}" />
<td th:text="${job.title}" />
<td th:text="${job.taskdescription}" />
<td th:text="${job.publicationdate}" />
<td th:text="${job.qualificationlevel.label}" />
<td><span th:each="sec : ${job.sectors}"><span th:text="${sec.label}"></span> </span></td>
<td><a th:href="@{'modoffer?oid='+${job.id}}"><img th:src="@{/img/zoom.png}"
alt="Job offer modification" /></a></td>
</tr>
</tbody>
</table>
</aside>
</article>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{/company/companyBase :: article(~{::article})}">
<article>
<p th:if="${#lists.size(companieslist)} == 0">No company registered yet.</p>
<table class="table table-striped" th:if="${#lists.size(companieslist)} > 0">
<caption>List of companies (<span th:text="${companieslist.size}"></span>)</caption>
<thead>
<tr>
<th scope="col">Denomination</th>
<th scope="col">Description</th>
<th scope="col">City</th>
<th scope="col">Nb. of offers</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
<tr th:each="comp : ${companieslist}">
<td th:text="${comp.denomination}" />
<td th:text="${comp.description}" />
<td th:text="${comp.city}" />
<td th:text="${comp.joboffers.size()}" />
<td>
<a th:href="@{companies/}+${comp.id}" alt="Company details" title="view details" class="btn btn-large btn-secondary">
<i class="bi bi-eye"></i>
</a>
<a th:href="@{companies/{companyId}/edit(companyId=${comp.id})}" class="btn btn-large btn-success" alt="Edit" title="edit company">
<i class="bi bi-pencil"></i>
</a>
<a th:href="@{companies/{companyId}/delete(companyId=${comp.id})}" class="btn btn-large btn-danger delBtn"
alt="Delete" title="delete company " data-id="@{companies/{companyId}/delete(companyId=${comp.id})}" th:attrappend="title=${' ' + comp.denomination}">
<i class="bi bi-trash"></i>
</a>
</td>
</tr>
</tbody>
</table>
<footer>
<a th:href="@{companies/create}" class="btn btn-large btn-primary" title="add new company">
<i class="bi bi-plus"></i>
</a>
</footer>
</article>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{/company/companyBase :: article(~{::article})}">
<article>
<header>
<h2>Company details</h2>
</header>
<form>
<fieldset class="mb-3">
<label for="nameid" class="form-label">Name</label>:
<input type="text" id="nameid" class="form-control" name="denomination" autofocus="autofocus"
th:value="${company.denomination}" readonly />
</fieldset>
<fieldset class="mb-3">
<label for="descid" class="form-label">Description</label>:
<input type="text" id="descid" class="form-control" name="description" th:value="${company.description}"
readonly />
</fieldset>
<fieldset class="mb-3">
<label for="cityid" class="form-label">City</label>:
<input type="text" id="cityid" class="form-control" name="city" th:value="${company.city}" readonly />
</fieldset>
</form>
<aside th:if="${#lists.size(company.joboffers)} > 0">
<h2>List of associated job offers</h2>
<table class="table table-striped">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Title</th>
<th scope="col">Task</th>
<th scope="col">Publication date</th>
<th scope="col">Qualification level</th>
<th scope="col">Sectors</th>
</tr>
</thead>
<tbody>
<tr th:each="job : ${company.joboffers}">
<th scope="row" th:text="${job.id}" />
<td th:text="${job.title}" />
<td th:text="${job.taskdescription}" />
<td th:text="${job.publicationdate}" />
<td th:text="${job.qualificationlevel.label}" />
<td><span th:each="sec : ${job.sectors}"><span th:text="${sec.label}"></span> </span></td>
</tr>
</tbody>
</table>
</aside>
<footer>
<a th:href="@{/companies/{companyId}/edit(companyId=${company.id})}" class="btn btn-large btn-primary"
title="Unlock to update"><i class="bi bi-pencil"></i></a>
<a th:href="@{/companies}" class="btn btn-secondary" title="go back"><i class="bi bi-list-columns"></i></a>
</footer>
</article>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace ="~{/baseTemplate/base :: layout(~{::title},~{::article})}">
<title>GetYourJob</title>
<article class="row justify-content-center text-danger">
<header class="col-2">
<h1>Erreur</h1>
</header>
<p class="col" th:text="${errormessage}"></p>
</article>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{/baseTemplate/base :: layout(~{::title},~{::section})}">
<title>GetYourJob</title>
<section class="px-4 py-5" id="custom-cards">
<header>
<h1 class="pb-2 border-bottom">GetYourJob</h1>
</header>
<div class="row row-cols-1 row-cols-lg-3 align-items-stretch g-4 py-5">
<article class="col">
<a th:href="@{/companies}"
class="nav-link card card-cover h-100 overflow-hidden text-white bg-dark rounded-5 shadow-lg"
style="background-image: url('/img/companies.jpg'); background-size: cover;">
<div class="d-flex flex-column h-100 p-5 pb-3 text-white text-shadow-1">
<h2 class="pt-5 mt-5 mb-4 display-6 lh-1 fw-bold">Companies</h2>
<ul class="d-flex list-unstyled mt-auto bg-dark p-2 ">
<li class="me-auto">
<i class="bi bi-buildings " style="font-size: 2rem; color: white;"></i>
</li>
<li class="d-flex align-items-center m-2">
<small th:text="${countCompanies}"></small>&nbsp;
<small th:text="${countCompanies} > 1? 'companies':'company'"></small>
<small>&nbsp;registered</small>
</li>
</ul>
</div>
</a>
</article>
<article class="col">
<a th:href="@{/candidates}"
class="nav-link card card-cover h-100 overflow-hidden text-white bg-dark rounded-5 shadow-lg"
style="background-image: url('/img/candidates.jpg'); background-size: cover;">
<div class="d-flex flex-column h-100 p-5 pb-3 text-white text-shadow-1">
<h2 class="pt-5 mt-5 mb-4 display-6 lh-1 fw-bold">Candidates</h2>
<ul class="d-flex list-unstyled mt-auto bg-dark p-2 ">
<li class="me-auto">
<i class="bi bi-file-person" style="font-size: 2rem; color: white;"></i>
</li>
<li class="d-flex align-items-center m-2">
<small th:text="${countCandidates}"></small>&nbsp;
<small th:text="${countCandidates} > 1? 'candidates': 'candidate'"></small>
<small>&nbsp;registered</small>
</li>
</ul>
</div>
</a>
</article>
</div>
</section>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:fragment="article(subcontent)"
th:replace="~{/baseTemplate/base :: layout(~{},~{::section})}">
<section class="modal modal-sheet position-static d-block bg-body-secondary p-4 py-md-5" tabindex="-1">
<div class="modal-dialog" role="document">
<div class="modal-content rounded-4 shadow">
<header class="modal-header p-5 pb-4 border-bottom-0">
<h1 class="fw-bold mb-0 fs-2">Sign in</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
</button>
</header>
<article class="modal-body p-5 pt-0">
<small class="text-secondary">Log in by entering your email address and password.</small>
<form action="login" method="post">
<fieldset class="mb-3 form-floating">
<input type="email" id="uid" class="form-control rounded-3" name="mail" autofocus="autofocus" required
placeholder="name@domain.com" />
<label for="uid">Email address</label>
</fieldset>
<fieldset class="mb-3 form-floating">
<input type="password" id="idpwd" class="form-control rounded-3" name="password" placeholder="your password"
required />
<label for="idpwd">Password</label>
</fieldset>
<input type="submit" value="Sign in" class="w-100 mb-2 btn btn-lg rounded-3 btn-primary" />
</form>
<!-- check if an error is returned in the model-->
<p th:if="${error}" th:text="${error}">
</p>
</article>
<footer class="modal-body p-5 pt-0">
<hr class="my-4">
<a th:href="@{/companies/create}" class="btn w-100 mb-2 btn btn-lg rounded-3 btn-secondary">Sign up as company</a>
<a th:href="@{/candidates/create}" class="btn w-100 mb-2 btn btn-lg rounded-3 btn-secondary">Sign up as candidate</a>
<small class="text-secondary">By clicking Sign up, you agree to the terms of use.</small>
</footer>
</div>
</div>
</section>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{/baseTemplate/base :: layout(~{::title},~{::section})}">
<title>Qualification Level</title>
<section>
<header>
<h1>List of qualification levels</h1>
</header>
<article>
<!-- <a href="javascript:history.back()"><img th:src="@{/img/back.png}" alt="Back"/></a> -->
<p th:if="${#lists.size(qualificationlevellist)} == 0">No qualification level defined yet.</p>
<th:block th:if="${#lists.size(qualificationlevellist)} > 0">
<table class="table table-striped">
<caption>List of qualification levels</caption>
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Label</th>
</tr>
</thead>
<tbody>
<tr th:each="ql : ${qualificationlevellist}">
<th scope="row" th:text="${ql.id}" />
<td th:text="${ql.label}" />
<!-- <td th:if="${#ctx.session.uid} != null AND ${#ctx.session.logintype} == 'adm'" class="nav-item active">
<a th:href="@{/deletequalificationlevel/{id}(id=${ql.id})}">
<img th:src="@{img/minus.png}" alt="Delete this sector" class="minilogo"/>
</a>
</td> -->
</tr>
</tbody>
</table>
</th:block>
<!-- <div th:if="${#ctx.session.uid} != null AND ${#ctx.session.logintype} == 'adm'" class="row h-10">
<form action="/addqualificationlevel" method="get" class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
<label for="labelql">Label</label>
<input type="text" id="labelql" name="labelql" autofocus="autofocus" minlength="3" required/> <br />
<input type="submit" value="Add" />
</form>
</form>
</div> -->
</article>
</section>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:replace="~{/baseTemplate/base :: layout(~{::title},~{::section})}">
<title>Sectors</title>
<section>
<header>
<h1>List of sectors</h1>
</header>
<article>
<p th:if="${#lists.size(sectorlist)} == 0">No sector defined yet.</p>
<th:block th:if="${#lists.size(sectorlist)} > 0">
<table class="table table-striped">
<caption>List of sectors</caption>
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Label</th>
</tr>
</thead>
<tbody>
<tr th:each="sec : ${sectorlist}">
<th scope="row" th:text="${sec.id}" />
<td th:text="${sec.label}" />
<td th:if="${#ctx.session.uid} != null AND ${#ctx.session.logintype} == 'adm'"
class="nav-item active">
<a th:href="@{/deletesector/{id}(id=${sec.id})}">
<img th:src="@{img/minus.png}" alt="Delete this sector" class="minilogo" />
</a>
</td>
</tr>
</tbody>
</table>
</th:block>
<aside th:if="${#ctx.session.uid} != null AND ${#ctx.session.logintype} == 'adm'" class="row h-10">
<form action="/addsector" method="get" class="col-xs-12 col-sm-6 col-md-4 col-lg-2">
<fieldset>
<label for="labelsector">Label</label>
<input type="text" id="labelsector" name="labelsector" autofocus="autofocus" minlength="3"
required />
</fieldset>
<input type="submit" value="Add" />
</form>
</aside>
</article>
</section>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment