first steps for a project management module

This commit is contained in:
Jörg Henke
2026-01-14 18:29:19 +01:00
parent 71f22ca16e
commit cb8de9b119
15 changed files with 461 additions and 13 deletions

View File

@@ -242,15 +242,20 @@ body {
.version {
font-size: small;
color: black;
color: gray;
position: absolute;
padding-top: 36px;
padding-left: 22px;
z-index: 0;
}
[data-bs-theme="dark"] .version {
color: white;
.dbversion {
font-size: small;
color: gray;
position: absolute;
top: 2px;
padding-left: 22px;
z-index: 0;
}
.fc-content {
@@ -494,3 +499,8 @@ body {
.boldy {
font-weight: bolder;
}
.dashboardcard {
width: 312px !important;
margin: 24px !important;
}

View File

@@ -26,6 +26,7 @@
<body>
<nav class="navbar navbar-expand-lg static-top">
<div class="container-fluid" style="width: 98%">
<div class="dbversion" th:text="${@manifestBean.getDbVersion()}"></div>
<i class="fa fa-calendar-alt"></i> <a class="navbar-brand" style="margin-left: 8px; z-index: 1" th:href="@{/}">Timetrack</a><br />
<div class="version" th:text="${@manifestBean.getVersion()}"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive"
@@ -41,6 +42,7 @@
<li><a class="dropdown-item" th:href="@{/contact/list}">Kontakte</a></li>
<li><a class="dropdown-item" th:href="@{/note/list}">Notizen</a></li>
<li><a class="dropdown-item" th:href="@{/calendar}">Kalender</a></li>
<li><a class="dropdown-item" th:href="@{/projectmanagement}">Projekte</a></li>
<li><hr /></li>
<li><a class="dropdown-item" th:href="@{/logout}">[[${currentUser}]] abmelden</a></li>
</ul></li>

View File

@@ -0,0 +1,30 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security" layout:decorate="~{layout/main.html}">
<head>
<title>Projektmanagement</title>
</head>
<body>
<font layout:fragment="title">Projekte</font>
<ul layout:fragment="menu">
<li class="nav-item" sec:authorize="hasRole('timetrack_user')">
<a class="nav-link btn btn-success btn-white-text" th:href="@{/projectmanagement/project/add}">Neues Projekt anlegen</a>
</li>
</ul>
<main layout:fragment="content">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-4 col-lg-2 card dashboardcard" th:each="p : ${projects}">
<div class="card-header" th:text="${p.name}"></div>
<div class="card-body">
<div th:each="w : ${p.workpackages}">
<a th:href="@{/projectmanagement/workpackage/{id}(id=${w.pkWorkpackage})}" th:text="${w.name}"></a>
</div>
<a th:href="@{/projectmanagement/project/{id}/addWorkpackage(id=${p.pkProject})}" class="btn btn-outline-secondary">Workpackage anlegen</a>
</div>
<div class="card-footer" th:text="${p.description}"></div>
</div>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security" layout:decorate="~{layout/main.html}">
<head>
<title>Projektmanagement</title>
</head>
<body>
<font layout:fragment="title">Projekt</font>
<ul layout:fragment="menu">
<li class="nav-item" sec:authorize="hasRole('timetrack_user')">
<a class="nav-link btn btn-success btn-white-text" th:href="@{/projectmanagement}">abbrechen</a>
</li>
</ul>
<main layout:fragment="content">
<div class="container">
TODO: Maske zum Anlegen eines neuen Projektes
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security" layout:decorate="~{layout/main.html}">
<head>
<title>Projektmanagement</title>
</head>
<body>
<font layout:fragment="title">Workpackage</font>
<ul layout:fragment="menu">
<li class="nav-item" sec:authorize="hasRole('timetrack_user')">
<a class="nav-link btn btn-success btn-white-text" th:href="@{/projectmanagement}">abbrechen</a>
</li>
</ul>
<main layout:fragment="content">
<div class="container">
<div th:unless="${bean.pkWorkpackage}">
TODO: Maske zum Anlegen eines neuen Workpackages für Projekt <span th:text="${bean.fkProject}"></span>
</div>
<div th:if="${bean.pkWorkpackage}">
<div class="container m-2">
<div class="row g-2">
<div class="col-2">ID</div>
<div class="col-10"><span class="form-control" th:text="${bean.pkWorkpackage}"></span></div>
<div class="col-2">Name</div>
<div class="col-10"><span class="form-control" th:text="${bean.name}"></span></div>
</div>
</div>
TODO: Maske zum Bearbeiten eines bestehenden Workpackages
</div>
</div>
</main>
</body>
</html>

View File

@@ -10,7 +10,7 @@
<ul layout:fragment="menu">
</ul>
<main layout:fragment="content">
<div class="card" style="width: 312px; margin: 24px">
<div class="card dashboardcard">
<div class="card-header"><a class="btn btn-seondary btn-bordered btn-secondaryhover" style="width: 100%"
th:href="@{/done/list}">heutige Arbeitszeiten</a></div>
<div class="card-body">