initial commit
This commit is contained in:
commit
d84861949f
92 files changed
+8425
No files matched your search
@@ -0,0 +1,33 @@
|
||||
ktor:
|
||||
deployment:
|
||||
port: 7770
|
||||
application:
|
||||
modules:
|
||||
- net.keinekekse.app.core.config.HttpKt.configureHttp
|
||||
- net.keinekekse.app.core.config.SerializationKt.configureSerialization
|
||||
- net.keinekekse.app.core.config.StatusPagesKt.configureStatusPages
|
||||
- net.keinekekse.app.core.config.HtmlDslKt.configureHtmlDsl
|
||||
- net.keinekekse.app.core.config.SecurityKt.configureSecurity
|
||||
- net.keinekekse.app.core.config.DatabaseKt.configureCoreDatabase
|
||||
- net.keinekekse.app.core.config.DIKt.configureDependencyInjection
|
||||
- net.keinekekse.app.core.config.RoutingKt.configureRouting
|
||||
- net.keinekekse.app.books.config.DatabaseKt.configureBooksDatabase
|
||||
- net.keinekekse.app.books.config.DIKt.configureBookDependencyInjection
|
||||
- net.keinekekse.app.books.config.RoutingKt.configureRouting
|
||||
|
||||
postgres:
|
||||
# DB-Params werden vom Container als env vars gesetzt
|
||||
host: ${DB_HOST}
|
||||
port: ${DB_PORT}
|
||||
books_schema: ${BOOKS_SCHEMA}
|
||||
books_pwd: ${BOOKS_DB_PASSWORD}
|
||||
kas_schema: ${KAS_SCHEMA}
|
||||
kas_pwd: ${KAS_DB_PASSWORD}
|
||||
|
||||
keycloak:
|
||||
url: "https://kec.keinekekse.net"
|
||||
realm: "app-server-realm"
|
||||
clientId: "pkce-book-app"
|
||||
|
||||
kas:
|
||||
serverUrl: "https://kas.keinekekse.net"
|
||||
@@ -0,0 +1,18 @@
|
||||
<configuration>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<root level="DEBUG">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
<!-- div Schwätzer raushalten -->
|
||||
<logger name="org.eclipse.jetty" level="INFO"/>
|
||||
<logger name="io.netty" level="INFO"/>
|
||||
<logger name="com.zaxxer.hikari" level="INFO"/>
|
||||
<logger name="org.apache.hc" level="INFO"/>
|
||||
|
||||
<logger name="net.keinekekse.app" level="DEBUG"/>
|
||||
<logger name="io.ktor.server.auth.oidc" level="TRACE"/>
|
||||
</configuration>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello Ktor!</h1>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,21 @@
|
||||
function onScanSuccess (decodedText, decodedResult) {
|
||||
console.log(`Gescannter Code: ` + decodedText)
|
||||
|
||||
// Scanner stoppen, sobald ein Code erkannt wurde
|
||||
html5QrcodeScanner.clear()
|
||||
|
||||
// HTMX AJAX-Aufruf auslösen, um Buchdaten vom Backend zu laden:
|
||||
htmx.ajax('GET', '/books/isbnlookup/' + encodeURIComponent(decodedText), {
|
||||
target: '#book-result',
|
||||
swap : 'innerHTML'
|
||||
})
|
||||
}
|
||||
|
||||
function renderScanner () {
|
||||
const html5QrcodeScanner = new Html5QrcodeScanner(
|
||||
'reader',
|
||||
{fps: 10, qrbox: {width: 250, height: 150}},
|
||||
/* verbose= */ false
|
||||
)
|
||||
html5QrcodeScanner.render(onScanSuccess)
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/* Google Material Symbols (die Datei landet beim Build im web root) */
|
||||
@import url("/static/styles/google.css");
|
||||
|
||||
/* Bootstrap Icon - Alternative zu Google, Datei ist etwa halb so groß */
|
||||
/* @import url("/bootstrap-icons.min.css"); */
|
||||
|
||||
/* Tailwind - .css wird beim Build generiert */
|
||||
@import url("/static/styles/tailwind.css");
|
||||
|
||||
/*
|
||||
Fixed Table Header -> THEAD
|
||||
|
||||
zusätzlich passende background-color setzten
|
||||
*/
|
||||
thead.fixed-table-header {
|
||||
position: sticky;
|
||||
inset-block-start: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/*
|
||||
Den lästigen blauen Rand abschalten, muss bei interaktiven Elementen
|
||||
gezielt gesetzt werden (i. A. analog hover).
|
||||
*/
|
||||
@layer utilities {
|
||||
*:focus,
|
||||
*:focus-visible {
|
||||
outline: none;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Material Symbols
|
||||
----------------
|
||||
Ansehen unter: https://fonts.google.com/icons
|
||||
Doku: https://developers.google.com/fonts/docs/material_symbols?hl=de
|
||||
|
||||
> git clone https://github.com/google/material-design-icons
|
||||
> cp material-design-icons/variablefont/*.woff2 .
|
||||
> rm -rf material-design-icons
|
||||
|
||||
MaterialSymbolsOutline*.woff2 nach resources/material-symbols.woff kopieren
|
||||
|
||||
<span class="material-symbols-outlined">symbol</span>
|
||||
bzw.
|
||||
span(classes = "material-symbols-outlined") { +"symbol" }
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Material Symbols Outlined';
|
||||
font-style: normal;
|
||||
src: url(/static/fonts/material-symbols.woff2) format('woff2');
|
||||
}
|
||||
|
||||
.material-symbols-outlined {
|
||||
font-family: 'Material Symbols Outlined';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
}
|
||||
Reference in new issue
Block a user