mirror of
https://github.com/kevinveenbirkenbach/homepage.veen.world.git
synced 2025-01-15 19:23:58 +01:00
Optimized modals
This commit is contained in:
parent
d59cc73470
commit
9455f40079
114
app/config.yaml
114
app/config.yaml
@ -122,25 +122,25 @@ navigation:
|
|||||||
description: Read my microblogs
|
description: Read my microblogs
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-mastodon
|
class: fa-brands fa-mastodon
|
||||||
href: https://microblog.veen.world/@kevinveenbirkenbach
|
url: https://microblog.veen.world/@kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Pictures
|
- name: Pictures
|
||||||
description: View my photo gallery
|
description: View my photo gallery
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-camera
|
class: fa-solid fa-camera
|
||||||
href: https://picture.veen.world/kevinveenbirkenbach
|
url: https://picture.veen.world/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Videos
|
- name: Videos
|
||||||
description: Watch my videos
|
description: Watch my videos
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-video
|
class: fa-solid fa-video
|
||||||
href: https://video.veen.world/a/kevinveenbirkenbach
|
url: https://video.veen.world/a/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Blog
|
- name: Blog
|
||||||
description: Read my blog
|
description: Read my blog
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-blog
|
class: fa-solid fa-blog
|
||||||
href: https://blog.veen.world
|
url: https://blog.veen.world
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Code
|
- name: Code
|
||||||
icon:
|
icon:
|
||||||
@ -151,64 +151,68 @@ navigation:
|
|||||||
description: View my GitHub profile
|
description: View my GitHub profile
|
||||||
icon:
|
icon:
|
||||||
class: bi bi-github
|
class: bi bi-github
|
||||||
href: https://github.com/kevinveenbirkenbach
|
url: https://github.com/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Gitea
|
- name: Gitea
|
||||||
description: Explore my code repositories
|
description: Explore my code repositories
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-code
|
class: fa-solid fa-code
|
||||||
href: https://git.veen.world/kevinveenbirkenbach
|
url: https://git.veen.world/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Contact
|
- name: Contact
|
||||||
description: Get in touch
|
description: Get in touch
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-envelope
|
class: fa-solid fa-envelope
|
||||||
href:
|
|
||||||
subitems:
|
subitems:
|
||||||
- name: Email
|
- name: Email
|
||||||
description: Send me an email
|
description: Send me an email
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-envelope
|
class: fa-solid fa-envelope
|
||||||
href: kevin@veen.world
|
url: mailto:kevin@veen.world
|
||||||
href_praefix: mailto
|
identifier: kevin@veen.world
|
||||||
subitems: []
|
|
||||||
- name: Matrix
|
- name: Matrix
|
||||||
description: Chat with me on Matrix
|
description: Chat with me on Matrix
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-cubes
|
class: fa-solid fa-cubes
|
||||||
popup: true
|
identifier: "@kevinveenbirkenbach:veen.world"
|
||||||
address: "@kevinveenbirkenbach:veen.world"
|
|
||||||
- name: Mobile
|
- name: Mobile
|
||||||
description: Call me
|
description: Call me
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-phone
|
class: fa-solid fa-phone
|
||||||
href: "+491781798023"
|
url: "tel:+491781798023"
|
||||||
href_praefix: tel
|
identifier: "+491781798023"
|
||||||
subitems: []
|
- name: Encrypted Email (PGP)
|
||||||
- name: PGP
|
|
||||||
description: Access my PGP key
|
description: Access my PGP key
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-key
|
class: fa-solid fa-key
|
||||||
href: https://s.veen.world/pgp
|
url: https://s.veen.world/pgp
|
||||||
subitems: []
|
|
||||||
- name: Signal
|
- name: Signal
|
||||||
description: Message me on Signal
|
description: Message me on Signal
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-signal-messenger
|
class: fa-brands fa-signal-messenger
|
||||||
popup: true
|
identifier: "+491781798023"
|
||||||
href: "+491781798023"
|
warning: Signal is not hosted by me!
|
||||||
subitems: []
|
alternatives:
|
||||||
|
link: navigation.header.contact.matrix
|
||||||
- name: Telegram
|
- name: Telegram
|
||||||
description: Message me on Telegram
|
description: Message me on Telegram
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-telegram
|
class: fa-brands fa-telegram
|
||||||
target: _blank
|
target: _blank
|
||||||
href: https://t.me/kevinveenbirkenbach
|
url: https://t.me/kevinveenbirkenbach
|
||||||
|
identifier: kevinveenbirkenbach
|
||||||
|
warning: Telegram is not hosted by me!
|
||||||
|
alternatives:
|
||||||
|
link: navigation.header.contact.matrix
|
||||||
- name: WhatsApp
|
- name: WhatsApp
|
||||||
description: Chat with me on WhatsApp
|
description: Chat with me on WhatsApp
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-whatsapp
|
class: fa-brands fa-whatsapp
|
||||||
href: https://wa.me/491781798023
|
url: https://wa.me/491781798023
|
||||||
|
identifier: "+491781798023"
|
||||||
|
warning: Whatsapp is not hosted by me!
|
||||||
|
alternatives:
|
||||||
|
link: navigation.header.contact.matrix
|
||||||
footer:
|
footer:
|
||||||
- name: External Accounts
|
- name: External Accounts
|
||||||
description: Me on other plattforms
|
description: Me on other plattforms
|
||||||
@ -219,18 +223,18 @@ navigation:
|
|||||||
description: Social and developer networks
|
description: Social and developer networks
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-meta
|
class: fa-brands fa-meta
|
||||||
href:
|
url:
|
||||||
subitems:
|
subitems:
|
||||||
- name: Instagram
|
- name: Instagram
|
||||||
description: Follow me on Instagram
|
description: Follow me on Instagram
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-instagram
|
class: fa-brands fa-instagram
|
||||||
href: https://www.instagram.com/kevinveenbirkenbach/
|
url: https://www.instagram.com/kevinveenbirkenbach/
|
||||||
- name: Facebook
|
- name: Facebook
|
||||||
description: Like my Facebook page
|
description: Like my Facebook page
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-facebook
|
class: fa-brands fa-facebook
|
||||||
href: https://www.facebook.com/kevinveenbirkenbach
|
url: https://www.facebook.com/kevinveenbirkenbach
|
||||||
- name: Communication
|
- name: Communication
|
||||||
description: Social and developer networks
|
description: Social and developer networks
|
||||||
icon:
|
icon:
|
||||||
@ -247,49 +251,49 @@ navigation:
|
|||||||
description: Visit my XING profile
|
description: Visit my XING profile
|
||||||
icon:
|
icon:
|
||||||
class: bi bi-building
|
class: bi bi-building
|
||||||
href: https://www.xing.com/profile/Kevin_VeenBirkenbach
|
url: https://www.xing.com/profile/Kevin_VeenBirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: LinkedIn
|
- name: LinkedIn
|
||||||
description: Connect on LinkedIn
|
description: Connect on LinkedIn
|
||||||
icon:
|
icon:
|
||||||
class: bi bi-linkedin
|
class: bi bi-linkedin
|
||||||
href: https://www.linkedin.com/in/kevinveenbirkenbach
|
url: https://www.linkedin.com/in/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Sports
|
- name: Sports
|
||||||
description: My sport activities
|
description: My sport activities
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-running
|
class: fa-solid fa-running
|
||||||
href:
|
url:
|
||||||
subitems:
|
subitems:
|
||||||
- name: Garmin
|
- name: Garmin
|
||||||
description: My Garmin activities
|
description: My Garmin activities
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-person-running
|
class: fa-solid fa-person-running
|
||||||
href: https://s.veen.world/garmin
|
url: https://s.veen.world/garmin
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Eversports
|
- name: Eversports
|
||||||
description: My Eversports sessions
|
description: My Eversports sessions
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-dumbbell
|
class: fa-solid fa-dumbbell
|
||||||
href: https://s.veen.world/eversports
|
url: https://s.veen.world/eversports
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Duolingo
|
- name: Duolingo
|
||||||
description: Learn with me on Duolingo
|
description: Learn with me on Duolingo
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-language
|
class: fa-solid fa-language
|
||||||
href: https://www.duolingo.com/profile/kevinbirkenbach
|
url: https://www.duolingo.com/profile/kevinbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Spotify
|
- name: Spotify
|
||||||
description: Listen to my playlists
|
description: Listen to my playlists
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-spotify
|
class: fa-brands fa-spotify
|
||||||
href: https://open.spotify.com/user/31vebfzbjf3p7oualis76qfpr5ty
|
url: https://open.spotify.com/user/31vebfzbjf3p7oualis76qfpr5ty
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Patreon
|
- name: Patreon
|
||||||
description: Support me on Patreon
|
description: Support me on Patreon
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-patreon
|
class: fa-brands fa-patreon
|
||||||
href: https://patreon.com/kevinveenbirkenbach
|
url: https://patreon.com/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Community
|
- name: Community
|
||||||
description: My presence in the Fediverse
|
description: My presence in the Fediverse
|
||||||
@ -300,123 +304,123 @@ navigation:
|
|||||||
description: Join the discussion
|
description: Join the discussion
|
||||||
icon:
|
icon:
|
||||||
class: fa-brands fa-discourse
|
class: fa-brands fa-discourse
|
||||||
href: https://forum.veen.world/u/kevinveenbirkenbach
|
url: https://forum.veen.world/u/kevinveenbirkenbach
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Newsletter
|
- name: Newsletter
|
||||||
description: Subscribe to my newsletter
|
description: Subscribe to my newsletter
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-envelope-open-text
|
class: fa-solid fa-envelope-open-text
|
||||||
href: https://newsletter.veen.world/subscription/form
|
url: https://newsletter.veen.world/subscription/form
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Work Hub
|
- name: Work Hub
|
||||||
description: Curated collection of self hosted tools for work, organization, and
|
description: Curated collection of self hosted tools for work, organization, and
|
||||||
learning.
|
learning.
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-toolbox
|
class: fa-solid fa-toolbox
|
||||||
href:
|
url:
|
||||||
subitems:
|
subitems:
|
||||||
- name: Open Project
|
- name: Open Project
|
||||||
description: Explore my projects
|
description: Explore my projects
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-chart-line
|
class: fa-solid fa-chart-line
|
||||||
href: https://project.veen.world/
|
url: https://project.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Taiga
|
- name: Taiga
|
||||||
description: View my Kanban board
|
description: View my Kanban board
|
||||||
icon:
|
icon:
|
||||||
class: bi bi-clipboard2-check-fill
|
class: bi bi-clipboard2-check-fill
|
||||||
href: https://kanban.veen.world/
|
url: https://kanban.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Matomo
|
- name: Matomo
|
||||||
description: Analyze with Matomo
|
description: Analyze with Matomo
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-chart-simple
|
class: fa-solid fa-chart-simple
|
||||||
href: https://matomo.veen.world/
|
url: https://matomo.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Baserow
|
- name: Baserow
|
||||||
description: Organize with Baserow
|
description: Organize with Baserow
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-table
|
class: fa-solid fa-table
|
||||||
href: https://baserow.veen.world/
|
url: https://baserow.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Elements
|
- name: Elements
|
||||||
description: Chat with me
|
description: Chat with me
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-comment
|
class: fa-solid fa-comment
|
||||||
href: https://element.veen.world/
|
url: https://element.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Big Blue Button
|
- name: Big Blue Button
|
||||||
description: Join live events
|
description: Join live events
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-video
|
class: fa-solid fa-video
|
||||||
href: https://meet.veen.world/
|
url: https://meet.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Mailu
|
- name: Mailu
|
||||||
description: Send me a mail
|
description: Send me a mail
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-envelope
|
class: fa-solid fa-envelope
|
||||||
href: https://mail.veen.world/
|
url: https://mail.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Moodel
|
- name: Moodel
|
||||||
description: Learn with my academy
|
description: Learn with my academy
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-graduation-cap
|
class: fa-solid fa-graduation-cap
|
||||||
href: https://academy.veen.world/
|
url: https://academy.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Yourls
|
- name: Yourls
|
||||||
description: Find my curated links
|
description: Find my curated links
|
||||||
icon:
|
icon:
|
||||||
class: bi bi-link
|
class: bi bi-link
|
||||||
href: https://s.veen.world/admin/
|
url: https://s.veen.world/admin/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Nextcloud
|
- name: Nextcloud
|
||||||
description: Access my cloud storage
|
description: Access my cloud storage
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-cloud
|
class: fa-solid fa-cloud
|
||||||
href: https://cloud.veen.world/
|
url: https://cloud.veen.world/
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Logbooks
|
- name: Logbooks
|
||||||
description: My activity logs
|
description: My activity logs
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-book
|
class: fa-solid fa-book
|
||||||
href:
|
url:
|
||||||
subitems:
|
subitems:
|
||||||
- name: Skydiver
|
- name: Skydiver
|
||||||
description: View my skydiving logs
|
description: View my skydiving logs
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-parachute-box
|
class: fa-solid fa-parachute-box
|
||||||
href: https://s.veen.world/skydiverlog
|
url: https://s.veen.world/skydiverlog
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Skipper
|
- name: Skipper
|
||||||
description: See my sailing records
|
description: See my sailing records
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-sailboat
|
class: fa-solid fa-sailboat
|
||||||
href: https://s.veen.world/meilenbuch
|
url: https://s.veen.world/meilenbuch
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Diver
|
- name: Diver
|
||||||
description: Check my diving logs
|
description: Check my diving logs
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-fish
|
class: fa-solid fa-fish
|
||||||
href: https://s.veen.world/diverlog
|
url: https://s.veen.world/diverlog
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Pilot
|
- name: Pilot
|
||||||
description: Review my flight logs
|
description: Review my flight logs
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-plane
|
class: fa-solid fa-plane
|
||||||
href: https://s.veen.world/pilotlog
|
url: https://s.veen.world/pilotlog
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Nature
|
- name: Nature
|
||||||
description: Explore my nature logs
|
description: Explore my nature logs
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-tree
|
class: fa-solid fa-tree
|
||||||
href: https://s.veen.world/naturejournal
|
url: https://s.veen.world/naturejournal
|
||||||
- name: Vita
|
- name: Vita
|
||||||
description: View my CV and professional background
|
description: View my CV and professional background
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-file-lines
|
class: fa-solid fa-file-lines
|
||||||
href: https://s.veen.world/lebenslauf
|
url: https://s.veen.world/lebenslauf
|
||||||
subitems: []
|
subitems: []
|
||||||
- name: Imprint
|
- name: Imprint
|
||||||
icon:
|
icon:
|
||||||
class: fa-solid fa-scale-balanced
|
class: fa-solid fa-scale-balanced
|
||||||
href: https://s.veen.world/imprint
|
url: https://s.veen.world/imprint
|
||||||
|
@ -2,7 +2,7 @@ function openDynamicPopup(subitem) {
|
|||||||
// Set modal title and content
|
// Set modal title and content
|
||||||
document.getElementById('dynamicModalLabel').innerText = subitem.description;
|
document.getElementById('dynamicModalLabel').innerText = subitem.description;
|
||||||
const modalContent = document.getElementById('dynamicModalContent');
|
const modalContent = document.getElementById('dynamicModalContent');
|
||||||
modalContent.value = subitem.address;
|
modalContent.value = subitem.identifier;
|
||||||
|
|
||||||
// Add copy functionality
|
// Add copy functionality
|
||||||
document.getElementById('dynamicCopyButton').addEventListener('click', function () {
|
document.getElementById('dynamicCopyButton').addEventListener('click', function () {
|
@ -38,7 +38,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- Include modal -->
|
<!-- Include modal -->
|
||||||
{% include "moduls/modal.html.j2" %}
|
{% include "moduls/modal.html.j2" %}
|
||||||
<script src="{{ url_for('static', filename='js/dynamic-modal.js') }}"></script>
|
<script src="{{ url_for('static', filename='js/modal.js') }}"></script>
|
||||||
<script src="{{ url_for('static', filename='js/submenus.js') }}"></script>
|
<script src="{{ url_for('static', filename='js/submenus.js') }}"></script>
|
||||||
<script src="{{ url_for('static', filename='js/tooltip.js') }}"></script>
|
<script src="{{ url_for('static', filename='js/tooltip.js') }}"></script>
|
||||||
</body>
|
</body>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
{{ render_subitems(subitem.subitems) }}
|
{{ render_subitems(subitem.subitems) }}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% elif subitem.popup %}
|
{% elif subitem.identifier %}
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item" onclick='openDynamicPopup({{ subitem|tojson|safe }})' data-bs-toggle="tooltip" title="{{ subitem.description }}">
|
<a class="dropdown-item" onclick='openDynamicPopup({{ subitem|tojson|safe }})' data-bs-toggle="tooltip" title="{{ subitem.description }}">
|
||||||
<i class="{{ subitem.icon.class }}"></i> {{ subitem.name }}
|
<i class="{{ subitem.icon.class }}"></i> {{ subitem.name }}
|
||||||
@ -18,7 +18,7 @@
|
|||||||
</li>
|
</li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item" href="{{ subitem.href }}" target="{{ subitem.target|default('_blank') }}" data-bs-toggle="tooltip" title="{{ subitem.description }}">
|
<a class="dropdown-item" href="{{ subitem.url }}" target="{{ subitem.target|default('_blank') }}" data-bs-toggle="tooltip" title="{{ subitem.description }}">
|
||||||
{% if subitem.icon is defined and subitem.icon.class is defined %}
|
{% if subitem.icon is defined and subitem.icon.class is defined %}
|
||||||
<i class="{{ subitem.icon.class }}"></i> {{ subitem.name }}
|
<i class="{{ subitem.icon.class }}"></i> {{ subitem.name }}
|
||||||
{% else %}
|
{% else %}
|
||||||
@ -42,10 +42,10 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbarNav{{menu_type}}">
|
<div class="collapse navbar-collapse" id="navbarNav{{menu_type}}">
|
||||||
<ul class="navbar-nav {% if menu_type == 'header' %}ms-auto{% endif %}">
|
<ul class="navbar-nav {% if menu_type == 'header' %}ms-auto{% endif %}">
|
||||||
{% for item in navigation[menu_type] %}
|
{% for item in navigation[menu_type] %}
|
||||||
{% if item.href %}
|
{% if item.url %}
|
||||||
<!-- Single Item -->
|
<!-- Single Item -->
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{{ item.href }}" target="{{ item.target|default('_blank') }}" data-bs-toggle="tooltip" title="{{ item.description }}">
|
<a class="nav-link" href="{{ item.url }}" target="{{ item.target|default('_blank') }}" data-bs-toggle="tooltip" title="{{ item.description }}">
|
||||||
<i class="{{ item.icon.class }}"></i> {{ item.name }}
|
<i class="{{ item.icon.class }}"></i> {{ item.name }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
Reference in New Issue
Block a user