mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-04-20 17:56:50 +00:00
Merge pull request #52 from CCC-MF/issue_51
Darstellung und Aufteilung der Konfigurationsseite verbessern
This commit is contained in:
commit
69d796dab4
@ -257,6 +257,10 @@ form.samplecode-input input:focus-visible {
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.userrole-form {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
.userrole-form form {
|
.userrole-form form {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -321,6 +325,15 @@ table {
|
|||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.config-table td:first-child {
|
||||||
|
width: 24em;
|
||||||
|
min-width: fit-content;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.config-table td > button:last-of-type {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
.border > table {
|
.border > table {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border: none;
|
border: none;
|
||||||
@ -618,6 +631,32 @@ input.inline:focus-visible {
|
|||||||
color: var(--bg-red);
|
color: var(--bg-red);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tab {
|
||||||
|
padding: 1em;
|
||||||
|
border: none;
|
||||||
|
border-radius: 3px 3px 0 0;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s;
|
||||||
|
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab:hover,
|
||||||
|
.tab.active {
|
||||||
|
background: var(--table-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabcontent {
|
||||||
|
border: 1px solid var(--table-border);
|
||||||
|
border-radius: 0 .5em .5em .5em;
|
||||||
|
display: none;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabcontent.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
a.reload {
|
a.reload {
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -10,9 +10,16 @@
|
|||||||
<main>
|
<main>
|
||||||
<h1>Konfiguration</h1>
|
<h1>Konfiguration</h1>
|
||||||
|
|
||||||
|
<div class="tabs">
|
||||||
|
<button class="tab active" onclick="selectTab(this, 'common');">Allgemeine Informationen</button>
|
||||||
|
<button class="tab" onclick="selectTab(this, 'security');">Sicherheit</button>
|
||||||
|
<button class="tab" onclick="selectTab(this, 'transformation');">Transformationen</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="common" class="tabcontent active">
|
||||||
<section>
|
<section>
|
||||||
<h2>🔧 Allgemeine Konfiguration</h2>
|
<h2>🔧 Allgemeine Konfiguration</h2>
|
||||||
<table>
|
<table class="config-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
@ -37,17 +44,21 @@
|
|||||||
</table>
|
</table>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section hx-ext="sse" th:sse-connect="@{/configs/events}">
|
||||||
|
<div th:insert="~{configs/connectionAvailable.html}" th:hx-get="@{/configs?connectionAvailable}" hx-trigger="sse:connection-available">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="security" class="tabcontent">
|
||||||
<section th:insert="~{configs/tokens.html}">
|
<section th:insert="~{configs/tokens.html}">
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section th:insert="~{configs/userroles.html}">
|
<section th:insert="~{configs/userroles.html}">
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section hx-ext="sse" th:sse-connect="@{/configs/events}">
|
|
||||||
<div th:insert="~{configs/connectionAvailable.html}" th:hx-get="@{/configs?connectionAvailable}" hx-trigger="sse:connection-available">
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
|
||||||
|
|
||||||
|
<div id="transformation" class="tabcontent">
|
||||||
<section>
|
<section>
|
||||||
<h2><span th:if="${not transformations.isEmpty()}">✅</span><span th:if="${transformations.isEmpty()}">⛔</span> Transformationen</h2>
|
<h2><span th:if="${not transformations.isEmpty()}">✅</span><span th:if="${transformations.isEmpty()}">⛔</span> Transformationen</h2>
|
||||||
|
|
||||||
@ -69,7 +80,7 @@
|
|||||||
Hier sehen Sie eine Übersicht der konfigurierten Transformationen.
|
Hier sehen Sie eine Übersicht der konfigurierten Transformationen.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table>
|
<table class="config-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>JSON-Path</th>
|
<th>JSON-Path</th>
|
||||||
@ -91,9 +102,19 @@
|
|||||||
</table>
|
</table>
|
||||||
</th:block>
|
</th:block>
|
||||||
</section>
|
</section>
|
||||||
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script th:src="@{/scripts.js}"></script>
|
<script th:src="@{/scripts.js}"></script>
|
||||||
<script th:src="@{/webjars/htmx.org/dist/htmx.min.js}"></script>
|
<script th:src="@{/webjars/htmx.org/dist/htmx.min.js}"></script>
|
||||||
<script th:src="@{/webjars/htmx.org/dist/ext/sse.js}"></script>
|
<script th:src="@{/webjars/htmx.org/dist/ext/sse.js}"></script>
|
||||||
|
<script>
|
||||||
|
function selectTab(self, elem) {
|
||||||
|
Array.from(document.getElementsByClassName('tab')).forEach(e => e.className = 'tab');
|
||||||
|
self.className = 'tab active';
|
||||||
|
|
||||||
|
Array.from(document.getElementsByClassName('tabcontent')).forEach(e => e.className = 'tabcontent');
|
||||||
|
document.getElementById(elem).className = 'tabcontent active';
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -7,19 +7,20 @@
|
|||||||
<h2><span>✅</span> Tokens</h2>
|
<h2><span>✅</span> Tokens</h2>
|
||||||
<div class="border">
|
<div class="border">
|
||||||
<div th:if="${tokens.isEmpty()}">Noch keine Tokens vorhanden.</div>
|
<div th:if="${tokens.isEmpty()}">Noch keine Tokens vorhanden.</div>
|
||||||
<table th:if="${not tokens.isEmpty()}">
|
<table th:if="${not tokens.isEmpty()}" class="config-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
<th>Erstellt</th>
|
<th>Erstellt</th>
|
||||||
<th></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr th:each="token : ${tokens}">
|
<tr th:each="token : ${tokens}">
|
||||||
<td>[[ ${token.name} ]]</td>
|
<td>[[ ${token.name} ]]</td>
|
||||||
<td><time th:datetime="${token.createdAt}">[[ ${token.createdAt} ]]</time></td>
|
<td>
|
||||||
<td><button class="btn btn-red" th:hx-delete="@{/configs/tokens/{id}(id=${token.id})}" hx-target="#tokens">Löschen</button></td>
|
<time th:datetime="${token.createdAt}">[[ ${token.createdAt} ]]</time>
|
||||||
|
<button class="btn btn-red" th:hx-delete="@{/configs/tokens/{id}(id=${token.id})}" hx-target="#tokens">Löschen</button>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -7,12 +7,11 @@
|
|||||||
<h2><span>✅</span> Benutzerberechtigungen</h2>
|
<h2><span>✅</span> Benutzerberechtigungen</h2>
|
||||||
<div class="border">
|
<div class="border">
|
||||||
<div th:if="${userRoles.isEmpty()}">Noch keine Benutzerberechtigungen vorhanden.</div>
|
<div th:if="${userRoles.isEmpty()}">Noch keine Benutzerberechtigungen vorhanden.</div>
|
||||||
<table th:if="${not userRoles.isEmpty()}">
|
<table th:if="${not userRoles.isEmpty()}" class="config-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Benutzername</th>
|
<th>Benutzername</th>
|
||||||
<th>Rolle</th>
|
<th>Rolle</th>
|
||||||
<th></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -29,8 +28,6 @@
|
|||||||
<button class="btn btn-blue" th:disabled="${#authorization.authentication.getName() == userRole.username}">Übernehmen</button>
|
<button class="btn btn-blue" th:disabled="${#authorization.authentication.getName() == userRole.username}">Übernehmen</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<button class="btn btn-red" th:hx-delete="@{/configs/userroles/{id}(id=${userRole.id})}" hx-target="#userroles" th:disabled="${#authorization.authentication.getName() == userRole.username}">Löschen</button>
|
<button class="btn btn-red" th:hx-delete="@{/configs/userroles/{id}(id=${userRole.id})}" hx-target="#userroles" th:disabled="${#authorization.authentication.getName() == userRole.username}">Löschen</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user