initial
This commit is contained in:
25
src/main/resources/application.properties
Normal file
25
src/main/resources/application.properties
Normal file
@@ -0,0 +1,25 @@
|
||||
# database credentials from defined config file
|
||||
spring.config.import = /etc/BiCO.properties
|
||||
|
||||
# define overwriteable arguments
|
||||
spring.datasource.driver-class-name = ${db.class:org.postgresql.Driver}
|
||||
spring.datasource.url = ${db.url}
|
||||
spring.datasource.username = ${db.username}
|
||||
spring.datasource.password = ${db.password}
|
||||
|
||||
server.servlet.context-path = ${my.context-path:/BiCO}
|
||||
|
||||
# security
|
||||
spring.security.oauth2.client.registration.keycloak.client-id = ${keycloak.client-id}
|
||||
spring.security.oauth2.client.registration.keycloak.scope = openid
|
||||
spring.security.oauth2.client.registration.keycloak.authorization-grant-type = authorization_code
|
||||
spring.security.oauth2.client.registration.keycloak.redirect-uri = ${keycloak.redirect-uri}
|
||||
spring.security.oauth2.client.provider.keycloak.issuer-uri = ${keycloak.issuer-uri}
|
||||
spring.security.oauth2.client.provider.keycloak.authorization-uri = ${keycloak.openid-url}/auth
|
||||
spring.security.oauth2.client.provider.keycloak.token-uri = ${keycloak.openid-url}/token
|
||||
spring.security.oauth2.client.provider.keycloak.user-info-uri = ${keycloak.openid-url}/userinfo
|
||||
spring.security.oauth2.client.provider.keycloak.jwk-set-uri = ${keycloak.openid-url}/certs
|
||||
spring.security.oauth2.client.provider.keycloak.user-name-attribute = preferred_username
|
||||
|
||||
# for development only
|
||||
server.port = 8081
|
||||
16
src/main/resources/static/css/style.css
Normal file
16
src/main/resources/static/css/style.css
Normal file
@@ -0,0 +1,16 @@
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #abc;
|
||||
}
|
||||
|
||||
[data-bs-theme=dark] body {
|
||||
background-color: rgb(36, 31, 49);
|
||||
}
|
||||
|
||||
.borderdist {
|
||||
margin: 8px;
|
||||
}
|
||||
23
src/main/resources/static/js/dataTables.de.js
Normal file
23
src/main/resources/static/js/dataTables.de.js
Normal file
@@ -0,0 +1,23 @@
|
||||
var locale_de = {
|
||||
"sEmptyTable": "Keine Daten in der Tabelle vorhanden",
|
||||
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
|
||||
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
|
||||
"sInfoPostFix": "",
|
||||
"sInfoThousands": ".",
|
||||
"sLengthMenu": "_MENU_ Einträge anzeigen",
|
||||
"sLoadingRecords": "Wird geladen...",
|
||||
"sProcessing": "Bitte warten...",
|
||||
"sSearch": "Suchen",
|
||||
"sZeroRecords": "Keine Einträge vorhanden.",
|
||||
"oPaginate": {
|
||||
"sFirst": "Erste",
|
||||
"sPrevious": "Zurück",
|
||||
"sNext": "Nächste",
|
||||
"sLast": "Letzte"
|
||||
},
|
||||
"oAria": {
|
||||
"sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren",
|
||||
"sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren"
|
||||
}
|
||||
};
|
||||
5
src/main/resources/static/js/stylehelp.js
Normal file
5
src/main/resources/static/js/stylehelp.js
Normal file
@@ -0,0 +1,5 @@
|
||||
toggleDarkMode = function() {
|
||||
var oldValue = $("html").attr("data-bs-theme");
|
||||
var newValue = oldValue == "dark" ? "light" : "dark";
|
||||
$("html").attr("data-bs-theme", newValue);
|
||||
}
|
||||
46
src/main/resources/templates/sheet.html
Normal file
46
src/main/resources/templates/sheet.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
||||
<head>
|
||||
<title>Camp Organizer 2</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
<th:block layout:fragment="content">
|
||||
<div class="borderdist">
|
||||
<table id="table" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Kürzel</th>
|
||||
<th>Quelle</th>
|
||||
<th>Thema</th>
|
||||
<th>Unterthema</th>
|
||||
<th>Tag-Anmerkungen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="s : ${list}">
|
||||
<td th:text="${#temporals.format(s.slotDay, 'yyyy-MM-dd')}"></td>
|
||||
<td th:text="${s.abbreviation}"></td>
|
||||
<td th:text="${s.sourceName}"></td>
|
||||
<td th:text="${s.theme}"></td>
|
||||
<td th:text="${s.subtheme}"></td>
|
||||
<td th:text="${s.slotNotes}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#table").DataTable({
|
||||
"columnDefs" : [ {
|
||||
"targets" : 0,
|
||||
"type" : "date-eu"
|
||||
} ],
|
||||
"language" : locale_de
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</th:block>
|
||||
</body>
|
||||
</html>
|
||||
41
src/main/resources/templates/template.html
Normal file
41
src/main/resources/templates/template.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security" data-bs-theme="dark">
|
||||
<head>
|
||||
<title>Camp Organizer 2</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/bootstrap/5.3.1/css/bootstrap.min.css}" />
|
||||
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/bootstrap-icons/1.10.5/font/bootstrap-icons.css}" />
|
||||
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/webjars/datatables/1.13.5/css/jquery.dataTables.min.css}" />
|
||||
<link th:rel="stylesheet" type="text/css" media="all" th:href="@{/css/style.css}" />
|
||||
<script th:src="@{/webjars/bootstrap/5.3.1/js/bootstrap.bundle.min.js}"></script>
|
||||
<script th:src="@{/webjars/jquery/3.7.1/jquery.min.js}"></script>
|
||||
<script th:src="@{/webjars/datatables/1.13.5/js/jquery.dataTables.min.js}"></script>
|
||||
<script th:src="@{/js/dataTables.de.js}"></script>
|
||||
<script th:src="@{/js/stylehelp.js}"></script>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar sticky-top navbar-expand-lg headerlayout">
|
||||
<button class="navbar-toggler" style="margin-right: 40px" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent" style="margin-right: 20px">
|
||||
<ul class="navbar-nav mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a class="btn btn-outline-secondary" th:href="@{/}">Startseite</a></li>
|
||||
<li class="nav-item"><a class="btn btn-outline-secondary" th:href="@{/sheet}">Übersicht</a></li>
|
||||
</ul>
|
||||
<ul layout:fragment="header"></ul>
|
||||
<ul class="nav navbar-nav ms-auto">
|
||||
<li class="nav-item">
|
||||
<a href="https://gitlab.com/jottyfan/bico/-/issues" class="btn btn-outline-secondary" target="_blank" th:text="${'v' + @manifestBean.getVersion()}"></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="#" class="btn btn-outline-secondary" onclick="toggleDarkMode()"><i class="bi bi-moon"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<div layout:fragment="content">content</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user