Compare commits

...

3 Commits

Author SHA1 Message Date
15c2bd6a1b Merge remote-tracking branch 'origin/development' 2025-05-09 21:46:03 +00:00
b481ffeacc fix admin nav 2025-05-09 21:41:15 +00:00
b3160b82c1 update style 2025-05-09 23:11:19 +02:00
6 changed files with 98 additions and 84 deletions

View File

@ -24,7 +24,6 @@ body {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 10px 20px; padding: 10px 20px;
/* width: 100%; */
} }
.site-header img.logo { .site-header img.logo {
height: 50px; height: 50px;
@ -34,9 +33,7 @@ body {
font-size: 1.5em; font-size: 1.5em;
margin: 0; margin: 0;
} }
.container {
padding: 20px;
}
.wrapper { .wrapper {
display: grid; display: grid;
grid-template-rows: auto 1fr auto; grid-template-rows: auto 1fr auto;
@ -44,9 +41,10 @@ body {
padding-bottom: 200px; padding-bottom: 200px;
} }
.container { .container {
max-width: 1200px;
width: 90%; width: 90%;
max-width: 900px;
margin: 0 auto; margin: 0 auto;
padding: 20px 0;
} }
.container a { .container a {
@ -54,29 +52,35 @@ body {
} }
.container-fluid { .container-fluid {
height: 100%; padding: 20px;
display: flex;
flex-direction: column;
} }
/* Breadcrumb Styles */ /* Breadcrumb Styles */
.breadcrumb {
margin-bottom: 15px;
font-size: 22px;
}
.breadcrumb a { .breadcrumb a {
font-size: 19px;
text-decoration: none; text-decoration: none;
color: var(--main-text-color); color: var(--main-text-color);
margin-right: 5px;
} }
.breadcrumb span { .breadcrumb span {
font-size: 19px;
color: #ccc; color: #ccc;
margin-left: 5px;
margin-right: 5px; margin-right: 5px;
margin-bottom: 10px;
} }
.separator::before { /* Admin Nav Styles */
content: "\A"; /* Inserts a line break */ .admin-nav {
white-space: pre; /* Ensures the newline is honored */ color: #ccc;
border: 1px solid #ccc;
padding: 10px;
background-color: #979797;
}
.admin-nav a {
color: #ccc;
text-decoration: none;
padding: 5px 0;
} }
/* List Styles */ /* List Styles */

View File

@ -1,39 +1,44 @@
<!doctype html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta property="og:title" content="{{ title_long }}" /> <title>{{ title_short }}</title>
<meta property="og:description" content="... uns aber, die wir gerettet werden, ist es eine Gotteskraft." />
<meta property="og:image" content="/icon/logo-200x200.png" />
<title>{{ title_short }}</title> <meta property="og:title" content="{{ title_long }}" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta property="og:description" content="... uns aber, die wir gerettet werden, ist es eine Gotteskraft." />
<meta name="description" content="... uns aber, die wir gerettet werden, ist es eine Gotteskraft."> <meta property="og:image" content="/icon/logo-200x200.png" />
<meta name="author" content="{{ title_short }}">
<link rel="icon" href="/icon/logo-192x192.png" type="image/png" sizes="192x192">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<!-- Web App Manifest --> <meta name="description" content="... uns aber, die wir gerettet werden, ist es eine Gotteskraft.">
<link rel="manifest" href="{{ url_for('static', filename='manifest.json') }}"> <meta name="author" content="{{ title_short }}">
<link rel="icon" href="/icon/logo-192x192.png" type="image/png" sizes="192x192">
<!-- Android Theme Color -->
<meta name="theme-color" content="#000">
<!-- Apple-specific tags -->
<link rel="touch-icon" href="{{ url_for('static', filename='icons/icon-192x192.png') }}">
<meta name="mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-status-bar-style" content="default">
<meta name="mobile-web-app-title" content="Gottesdienste">
<!-- Your CSS -->
<link rel="stylesheet" href="{{ url_for('static', filename='theme.css') }}"> <!-- Web App Manifest -->
<link rel="stylesheet" href="{{ url_for('static', filename='app.css') }}"> <link rel="manifest" href="{{ url_for('static', filename='manifest.json') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='gallery.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='audioplayer.css') }}"> <!-- Android Theme Color -->
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> <meta name="theme-color" content="#000">
<script> const admin_enabled = {{ admin_enabled | tojson | safe }}; </script>
</head> <!-- Apple-specific tags -->
<link rel="touch-icon" href="{{ url_for('static', filename='icons/icon-192x192.png') }}">
<meta name="mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-status-bar-style" content="default">
<meta name="mobile-web-app-title" content="Gottesdienste">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css" rel="stylesheet">
<!-- Your CSS -->
<link rel="stylesheet" href="{{ url_for('static', filename='theme.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='app.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='gallery.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='audioplayer.css') }}">
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script> const admin_enabled = {{ admin_enabled | tojson | safe }}; </script>
</head>
<body> <body>
<script src="{{ url_for('static', filename='functions.js') }}"></script> <script src="{{ url_for('static', filename='functions.js') }}"></script>
<header class="site-header"> <header class="site-header">
@ -44,14 +49,14 @@
</header> </header>
<div class="wrapper"> <div class="wrapper">
{% if admin_enabled %} {% if admin_enabled %}
<div style="color: #ccc; border: 1px solid #ccc; padding: 10px; background-color: #979797;"> <div class="admin-nav">
<a href="{{ url_for('mylinks') }}" class="btn" style="color: #ccc; text-decoration: none;">Meine Links</a> <a href="{{ url_for('mylinks') }}">Meine Links</a>
<span> | </span> <span> | </span>
<a href="{{ url_for('connections') }}" class="btn" style="color: #ccc; text-decoration: none;">Verbindungen</a> <a href="{{ url_for('connections') }}">Verbindungen</a>
<span> | </span> <span> | </span>
<a href="{{ url_for('dashboard') }}" class="btn" style="color: #ccc; text-decoration: none;">Auswertung</a> <a href="{{ url_for('dashboard') }}">Auswertung</a>
<span> | </span> <span> | </span>
<a href="{{ url_for('folder_secret_config_editor') }}" class="btn" style="color: #ccc; text-decoration: none;" id="edit-folder-config" >Ordnerkonfiguration</a> <a href="{{ url_for('folder_secret_config_editor') }}" id="edit-folder-config" >Ordnerkonfiguration</a>
</div> </div>
{% endif %} {% endif %}
<div class="container"> <div class="container">

View File

@ -1,11 +1,23 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html>
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>{% block title %}Meine Links{% endblock %}</title> <title>{% block title %}Meine Links{% endblock %}</title>
<!-- Android Theme Color -->
<meta name="theme-color" content="#000">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='theme.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='theme.css') }}">
@ -22,20 +34,19 @@
</header> </header>
<div class="wrapper"> <div class="wrapper">
<!-- Navigation Bar --> <!-- Navigation Bar -->
<div style="margin-bottom: 10px; background-color:rgb(187, 187, 187); padding: 5px; "> <div class="admin-nav">
<span> </span> <a href="{{ url_for('index') }}">App</a>
<a href="{{ url_for('index') }}" class="btn btn-sm">App</a> <span> | </span>
<span class="btn btn-sm">|</span> <a href="{{ url_for('mylinks') }}">Meine Links</a>
<a href="{{ url_for('mylinks') }}" class="btn btn-sm">Meine Links</a> <span> | </span>
<span class="btn btn-sm">|</span> <a href="{{ url_for('connections') }}">Verbindungen</a>
<a href="{{ url_for('connections') }}" class="btn btn-sm">Verbindungen</a> <span> | </span>
<span class="btn btn-sm">|</span> <a href="{{ url_for('dashboard') }}">Auswertung-Downloads</a>
<a href="{{ url_for('dashboard') }}" class="btn btn-sm">Auswertung-Downloads</a> <span> | </span>
<span class="btn btn-sm">|</span> <a href="{{ url_for('songs_dashboard') }}">Auswertung-Wiederholungen</a>
<a href="{{ url_for('songs_dashboard') }}" class="btn btn-sm">Auswertung-Wiederholungen</a>
{% if admin_enabled %} {% if admin_enabled %}
<span class="btn btn-sm">|</span> <span> | </span>
<a href="{{ url_for('folder_secret_config_editor') }}" class="btn btn-sm" id="edit-folder-config">Ordnerkonfiguration</a> <a href="{{ url_for('folder_secret_config_editor') }}" id="edit-folder-config">Ordnerkonfiguration</a>
{% endif %} {% endif %}
</div> </div>

View File

@ -8,7 +8,7 @@
{% block content %} {% block content %}
<!-- Main Container --> <!-- Main Container -->
<div class="container-fluid px-4"> <div class="container">
<h2>Auswertung-Downloads</h2> <h2>Auswertung-Downloads</h2>
<!-- Dropdown Controls --> <!-- Dropdown Controls -->
<div class="mb-4 d-flex flex-wrap gap-2"> <div class="mb-4 d-flex flex-wrap gap-2">

View File

@ -178,11 +178,11 @@
const actions = document.createElement('div'); const actions = document.createElement('div');
if (!isEdit) { if (!isEdit) {
const openLink = document.createElement('a'); const openButton = document.createElement('button');
openLink.className = 'btn btn-secondary btn-sm me-2'; openButton.className = 'btn btn-secondary btn-sm me-2';
openLink.href = `/?secret=${rec.secret}`; openButton.onclick = () => window.open(`/?secret=${rec.secret}`, '_self');
openLink.textContent = 'Link öffnen'; openButton.textContent = 'Link öffnen';
actions.appendChild(openLink); actions.appendChild(openButton);
} }
const delBtn = document.createElement('button'); const delBtn = document.createElement('button');

View File

@ -6,7 +6,7 @@
{# pagespecific content #} {# pagespecific content #}
{% block content %} {% block content %}
<div class="container-fluid"> <div class="container">
<h2>Übersicht deiner gültigen Links</h2> <h2>Übersicht deiner gültigen Links</h2>
<div class="row"> <div class="row">
{% if valid_secrets %} {% if valid_secrets %}
@ -21,11 +21,8 @@
<p class="card-text"> <p class="card-text">
<small class="text-muted">Gültig bis: {{ secret_valid_to[secret] }}</small> <small class="text-muted">Gültig bis: {{ secret_valid_to[secret] }}</small>
</p> </p>
<a href="{{ secret_url[secret] }}" class="btn btn-secondary btn-sm" style="text-decoration: none;">Link öffnen</a> <button class="btn btn-secondary btn-sm" onclick="window.open('{{ secret_url[secret] }}', '_self')">Link öffnen</button>
<button class="btn btn-secondary btn-sm" <button class="btn btn-secondary btn-sm" onclick="toClipboard('{{ secret_url[secret] }}')">Link kopieren</button>
onclick="toClipboard('{{ secret_url[secret] }}')">
Link kopieren
</button>
<br> <br>
<form method="post" action="{{ url_for('remove_secret') }}" class="mt-3"> <form method="post" action="{{ url_for('remove_secret') }}" class="mt-3">
<input type="hidden" name="secret" value="{{ secret }}"> <input type="hidden" name="secret" value="{{ secret }}">
@ -61,11 +58,8 @@
<p class="card-text"> <p class="card-text">
<small class="text-muted">Gültig bis: {{ token_valid_to[token] }}</small> <small class="text-muted">Gültig bis: {{ token_valid_to[token] }}</small>
</p> </p>
<a href="{{ token_url[token] }}" class="btn btn-secondary btn-sm">Link öffnen</a> <button class="btn btn-secondary btn-sm" onclick="window.open('{{ token_url[token] }}', '_self')">Link öffnen</button>
<button class="btn btn-secondary btn-sm" <button class="btn btn-secondary btn-sm" onclick="toClipboard('{{ token_url[token] }}')">Link kopieren</button>
onclick="toClipboard('{{ token_url[token] }}')">
Link kopieren
</button>
<br> <br>
<form method="post" action="{{ url_for('remove_token') }}" class="mt-3"> <form method="post" action="{{ url_for('remove_token') }}" class="mt-3">
<input type="hidden" name="token" value="{{ token }}"> <input type="hidden" name="token" value="{{ token }}">