Skip to content
Snippets Groups Projects
Commit 2106a37d authored by Timur Oberhuber's avatar Timur Oberhuber :speech_balloon:
Browse files

Merge branch 'dev' into 136-add-filters-to-all-applications-declarations-pages

parents 62b342d2 78d018a7
1 merge request!314WAITING FOR OTTO - feat: :sparkles: Add filters to all applications/declarations pages
Pipeline #1019936 failed
Showing
with 230 additions and 71 deletions
......@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* Added filtering by academic periods. @toberhuber
* Added filtering by status, date modified, and course for all applications/declarations. @toberhuber
* Added search for all applications/declarations. @toberhuber
- Aria labels to all buttons/links used as buttons. @toberhuber
- Show salary scale on search people page @dsavvidi
### Changed
......@@ -32,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
### Fixed
- Made all text dynamic instead of hard-coded. @toberhuber
- Exporting contract requests now has batches. @rwbackx
- Toggling state now saved on Job Offers Page for Students @dsavvidi
- Retracting a contract request gave a constraint violation exception @dsavvidi
......
......@@ -26,21 +26,19 @@
<body>
<div>
<!-- <div>-->
<!-- <h1 style="color: #00a6d6; font-size: 2em" th:text="#{general.app_name}"></h1>-->
<!-- </div>-->
<div style="width: 100%; background-color: #00a8db">
<a th:href="#{general.app_url}" style="text-decoration: none">
<img
th:src="|#{general.app_url}/img/tudelft_logo.png|"
style="height: 40px; padding-left: 0.2em" />
<span style="color: white; font-size: 40px">| TAM</span>
<span
style="color: white; font-size: 40px"
th:text="#{email.applicationName}"></span>
</a>
</div>
<div>
<div style="padding: 0.5em 0">
<!-- <h2 th:text="#{email.application.offered.title(${position})}"></h2>-->
<p th:text="#{email.greeting(${name})}"></p>
<p
th:text="#{email.application.offered.message(${position}, ${course}, ${year})}"></p>
......
......@@ -26,21 +26,19 @@
<body>
<div>
<!-- <div>-->
<!-- <h1 style="color: #00a6d6; font-size: 2em" th:text="#{general.app_name}"></h1>-->
<!-- </div>-->
<div style="width: 100%; background-color: #00a8db">
<a th:href="#{general.app_url}" style="text-decoration: none">
<img
th:src="|#{general.app_url}/img/tudelft_logo.png|"
style="height: 40px; padding-left: 0.2em" />
<span style="color: white; font-size: 40px">| TAM</span>
<span
style="color: white; font-size: 40px"
th:text="#{email.applicationName}"></span>
</a>
</div>
<div>
<div style="padding: 0.5em 0">
<!-- <h2 th:text="#{email.application.rejected.title}"></h2>-->
<p th:text="#{email.greeting(${name})}"></p>
<br />
<p
......
......@@ -26,21 +26,19 @@
<body>
<div>
<!-- <div>-->
<!-- <h1 style="color: #00a6d6; font-size: 2em" th:text="#{general.app_name}"></h1>-->
<!-- </div>-->
<div style="width: 100%; background-color: #00a8db">
<a th:href="#{general.app_url}" style="text-decoration: none">
<img
th:src="|#{general.app_url}/img/tudelft_logo.png|"
style="height: 40px; padding-left: 0.2em" />
<span style="color: white; font-size: 40px">| TAM</span>
<span
style="color: white; font-size: 40px"
th:text="#{email.applicationName}"></span>
</a>
</div>
<div>
<div style="padding: 0.5em 0">
<!-- <h2 th:text="#{email.application.submitted.title}"></h2>-->
<p th:text="#{email.greeting(${name})}"></p>
<p
th:text="#{email.application.submitted.message(${position}, ${course}, ${year})}"></p>
......
......@@ -26,21 +26,19 @@
<body>
<div>
<!-- <div>-->
<!-- <h1 style="color: #00a6d6; font-size: 2em" th:text="#{general.app_name}"></h1>-->
<!-- </div>-->
<div style="width: 100%; background-color: #00a8db">
<a th:href="#{general.app_url}" style="text-decoration: none">
<img
th:src="|#{general.app_url}/img/tudelft_logo.png|"
style="height: 40px; padding-left: 0.2em" />
<span style="color: white; font-size: 40px">| TAM</span>
<span
style="color: white; font-size: 40px"
th:text="#{email.applicationName}"></span>
</a>
</div>
<div>
<div style="padding: 0.5em 0">
<!-- <h2 th:text="#{email.declaration.approved.title}"></h2>-->
<p th:text="#{email.greeting(${name})}"></p>
<p
th:text="#{email.declaration.approved.message(${hours}, ${extraWork}, ${course}, ${year})}"></p>
......
......@@ -26,21 +26,19 @@
<body>
<div>
<!-- <div>-->
<!-- <h1 style="color: #00a6d6; font-size: 2em" th:text="#{general.app_name}"></h1>-->
<!-- </div>-->
<div style="width: 100%; background-color: #00a8db">
<a th:href="#{general.app_url}" style="text-decoration: none">
<img
th:src="|#{general.app_url}/img/tudelft_logo.png|"
style="height: 40px; padding-left: 0.2em" />
<span style="color: white; font-size: 40px">| TAM</span>
<span
style="color: white; font-size: 40px"
th:text="#{email.applicationName}"></span>
</a>
</div>
<div>
<div style="padding: 0.5em 0">
<!-- <h2 th:text="#{email.declaration.rejected.title}"></h2>-->
<p th:text="#{email.greeting(${name})}"></p>
<p
th:text="#{email.declaration.rejected.message(${hours}, ${extraWork}, ${course}, ${year})}"></p>
......
This diff is collapsed.
......@@ -189,10 +189,12 @@
<button
type="submit"
class="button"
th:aria-label="#{jobOffer.export.FlexDelft}"
th:text="#{jobOffer.export.FlexDelft}"></button>
<a
class="button"
data-style="outlined"
th:aria-label="#{jobOffer.export}"
th:href="@{/application/export}"
th:text="#{jobOffer.export}"></a>
</div>
......
......@@ -46,12 +46,14 @@
id="offers-tab"
role="tab"
aria-selected="false"
th:aria-label="#{jobOffer.many}"
th:href="@{/job-offer/open}"
th:text="#{jobOffer.many}"></a>
<a
id="applications-tab"
role="tab"
aria-selected="true"
th:aria-label="#{application.my}"
th:href="@{/application/my}"
th:text="#{application.my}"></a>
</div>
......@@ -61,11 +63,14 @@
<input
name="q"
class="search_field"
aria-label="Search course, status, or position"
th:aria-label="#{application.search.ariaLabel}"
type="search"
th:value="${param.q}"
th:placeholder="#{application.search}" />
<button type="submit" class="fa-solid fa-search"></button>
<button
type="submit"
class="fa-solid fa-search"
th:aria-label="#{general.search}"></button>
</form>
</div>
......@@ -99,12 +104,14 @@
class="button p-min"
data-style="outlined"
th:data-dialog="|view-hiring-message-overlay-${app.jobOfferId}|"
th:aria-label="#{jobOffer.hiringMessage.view}"
th:text="#{jobOffer.hiringMessage.view}"></button>
<button
th:if="${status == 'REJECTED_BY_TEACHER' && !(offer.rejectMessage == null || offer.rejectMessage.isEmpty())}"
class="button p-min"
data-style="outlined"
th:data-dialog="|view-reject-message-overlay-${app.jobOfferId}|"
th:aria-label="#{jobOffer.rejectMessage.view}"
th:text="#{jobOffer.rejectMessage.view}"></button>
<form
th:id="${'acceptForm' + app.jobOfferId}"
......@@ -121,6 +128,7 @@
type="submit"
class="button p-min"
data-type="accept"
th:aria-label="#{jobOffer.accept}"
th:text="#{jobOffer.accept}"></button>
</form>
<div th:unless="${app.status.handled()}">
......@@ -128,6 +136,7 @@
type="submit"
class="button p-min"
data-type="error"
th:aria-label="#{|${(status == 'OFFERED') ? 'jobOffer.reject' : 'jobOffer.retract'}|}"
th:text="#{|${(status == 'OFFERED') ? 'jobOffer.reject' : 'jobOffer.retract'}|}"
th:data-dialog="|confirm-retract-my-app-page-${app.jobOfferId}-overlay|"></button>
<div
......
......@@ -41,6 +41,7 @@
type="button"
class="button p-less"
data-cancel
th:aria-label="#{general.close}"
th:text="#{general.close}"></button>
</div>
</div>
......
......@@ -30,7 +30,7 @@
</header>
<div class="content-wrapper">
<div class="content">
<main layout:fragment="content">Content goes here.</main>
<main layout:fragment="content" th:text="#{general.loadingPlaceholder}"></main>
</div>
</div>
<footer class="footer-wrapper">
......
......@@ -44,12 +44,14 @@
type="button"
class="button p-less"
data-style="outlined"
th:aria-label="#{general.cancel}"
th:text="#{general.cancel}"
data-cancel></button>
<button
type="submit"
class="button p-less"
data-type="error"
th:aria-label="#{general.yes}"
th:text="#{general.yes}"
th:form="|remove-training-type-${type.getId()}-form|"></button>
</div>
......
......@@ -53,11 +53,13 @@
type="button"
class="button p-less"
data-style="outlined"
th:aria-label="#{general.cancel}"
th:text="#{general.cancel}"
data-cancel></button>
<button
type="submit"
class="button p-less"
th:aria-label="#{general.submit}"
th:text="#{general.submit}"></button>
</div>
</form>
......
......@@ -44,6 +44,7 @@
type="submit"
class="button"
th:form="patch-form"
th:aria-label="#{general.saveChanges}"
th:text="#{general.saveChanges}"></button>
</div>
......@@ -241,7 +242,10 @@
class="textfield" />
</div>
<div class="flex vertical gap-5 align-start">
<h3 id="advertise-to" class="font-400">Advertise to</h3>
<h3
id="advertise-to"
class="font-400"
th:text="#{coordinator.defaults.advertiseTo}"></h3>
<div
id="add-ad-div"
class="flex gap-3"
......@@ -262,6 +266,7 @@
id="add-ad"
class="button p-less"
data-style="outlined"
th:aria-label="#{general.add}"
th:text="#{general.add}"
disabled></button>
</div>
......@@ -272,6 +277,7 @@
class="button p-min"
data-style="outlined"
disabled
th:aria-label="#{general.remove}"
th:text="#{general.remove}"></button>
</li>
<li th:each="program : ${advertised}" class="flex align-center gap-5 p-3">
......@@ -280,6 +286,7 @@
class="button p-min"
data-style="outlined"
data-type="error"
th:aria-label="#{general.remove}"
th:text="#{general.remove}"
th:data-remove-ad="${program.id}"></button>
</li>
......
......@@ -57,11 +57,13 @@
type="button"
class="button p-less"
data-style="outlined"
th:aria-label="#{general.cancel}"
th:text="#{general.cancel}"
data-cancel></button>
<button
type="submit"
class="button p-less"
th:aria-label="#{general.save}"
th:text="#{general.save}"
th:form="|edit-training-type-${type.getId()}-form|"></button>
</div>
......
......@@ -35,11 +35,14 @@
<form class="search">
<input
name="q"
aria-label="Coordinator Program Search"
th:aria-label="#{coordinator.search.ariaLabel}"
type="search"
th:value="${param.q}"
th:placeholder="#{coordinator.search}" />
<button class="fa-solid fa-search" type="submit"></button>
<button
class="fa-solid fa-search"
type="submit"
th:aria-label="#{general.search}"></button>
</form>
</div>
......@@ -55,17 +58,20 @@
class="button grow"
data-style="outlined"
th:href="@{|/coordinator/training/${program.id}|}"
th:aria-label="|#{general.manage} #{training.name.long}|"
th:text="|#{general.manage} #{training.name.long}|"></a>
<a
class="button grow"
data-style="outlined"
th:href="@{|/coordinator/defaults/${program.id}|}"
th:aria-label="|#{general.manage} #{coordinator.defaults}|"
th:text="|#{general.manage} #{coordinator.defaults}|"></a>
<button
th:if="${@authorisationService.canEditCoordinatorsForProgram(program.id)}"
class="button grow"
data-style="outlined"
th:data-dialog="|edit-coordinators-${program.id}-overlay|"
th:aria-label="|#{general.manage} #{coordinators}|"
th:text="|#{general.manage} #{coordinators}|"></button>
</div>
<th:block th:replace="~{coordinator/manage_coordinators :: overlay}"></th:block>
......
......@@ -48,9 +48,14 @@
class="button p-less"
data-type="error"
data-style="outlined"
th:aria-label="#{general.cancel}"
th:text="#{general.cancel}"
data-cancel></button>
<button type="submit" class="button p-less" th:text="#{general.edit}"></button>
<button
type="submit"
class="button p-less"
th:text="#{general.edit}"
th:aria-label="#{general.edit}"></button>
</div>
</form>
</dialog>
......
......@@ -36,14 +36,14 @@
<div class="banner" data-type="error" th:each="err : ${importErrors}">
<span class="banner__icon fa-solid fa-circle-exclamation"></span>
<p
th:text="|Error(s) at line ${err.key}: ${#strings.listJoin(err.value.![message], ',')}|"></p>
th:text="|#{training.import.error} ${err.key}: ${#strings.listJoin(err.value.![message], ',')}|"></p>
</div>
</th:block>
<th:block th:if="${importWarnings != null && !importWarnings.isEmpty()}">
<div class="banner" data-type="warning" th:each="warning : ${importWarnings}">
<span class="banner__icon fa-solid fa-warning"></span>
<p
th:text="|Warning(s) at line ${warning.key}: ${#strings.listJoin(warning.value.![message], ',')}|"></p>
th:text="|#{training.import.warning} ${warning.key}: ${#strings.listJoin(warning.value.![message], ',')}|"></p>
</div>
</th:block>
<th:block th:if="${successfulImportSize != null && successfulImportSize > 0}">
......@@ -57,11 +57,13 @@
<div class="flex gap-3 | sm:grid sm:col-2">
<button
class="button"
th:aria-label="#{training.import}"
th:text="#{training.import}"
data-dialog="import-training-overlay"></button>
<button
class="button"
th:aria-label="#{training.import.csv}"
th:text="#{training.import.csv}"
data-dialog="import-training-csv-overlay"></button>
</div>
......@@ -73,6 +75,7 @@
<div class="flex justify-end">
<button
class="button p-min"
th:aria-label="#{training.create}"
th:text="#{training.type.create}"
data-dialog="create-training-type-overlay"></button>
</div>
......@@ -86,12 +89,14 @@
class="button p-min"
data-style="outlined"
th:data-dialog="|edit-training-type-${type.getId()}-overlay|"
th:aria-label="#{general.edit}"
th:text="#{general.edit}"></button>
<button
class="button p-min"
data-style="outlined"
data-type="error"
th:data-dialog="|remove-training-type-${type.getId()}-overlay|"
th:aria-label="#{general.remove}"
th:text="#{general.remove}"></button>
</div>
</td>
......
......@@ -203,6 +203,7 @@
class="link"
target="_blank"
th:href="@{|/profile/${dec.getPerson().getId()}|}"
th:aria-label="#{general.viewPerson.ariaLabel(${@personCacheManager.getOrThrow(dec.getPerson().getId()).displayName})}"
th:text="${@personCacheManager.getOrThrow(dec.getPerson().getId()).displayName}"></a>
</td>
<td
......@@ -217,6 +218,7 @@
class="button p-min"
data-style="outlined"
th:data-dialog="|view-declaration-reason-overlay-${dec.id}|"
th:aria-label="#{extraWork.reason.view}"
th:text="#{extraWork.reason.view}"></a>
</td>
<td th:text="#{|status.extraWork.${#strings.toLowerCase(dec.status)}|}"></td>
......
......@@ -37,6 +37,7 @@
<button
type="button"
class="button p-less"
th:aria-label="#{general.close}"
th:text="#{general.close}"
data-cancel></button>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment