From 6c37b9d2c6a1396470015e5d215f0233dbf20293 Mon Sep 17 00:00:00 2001
From: Morre <morre@cccv.de>
Date: Sat, 3 Apr 2021 16:34:01 +0200
Subject: [PATCH] Add banner to services overview

---
 uffd/default_config.cfg               | 7 +++++++
 uffd/services/templates/overview.html | 8 ++++++++
 uffd/services/views.py                | 9 ++++++++-
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/uffd/default_config.cfg b/uffd/default_config.cfg
index 72953217..fb837a15 100644
--- a/uffd/default_config.cfg
+++ b/uffd/default_config.cfg
@@ -122,6 +122,13 @@ SERVICES=[
 #		]
 #	},
 ]
+
+# A banner text that will be displayed above the services list
+SERVICES_BANNER=''
+
+# If the banner should be shown to users who are not logged in
+SERVICES_BANNER_PUBLIC=True
+
 # Enable the service overview page for users who are not logged in
 SERVICES_PUBLIC=True
 
diff --git a/uffd/services/templates/overview.html b/uffd/services/templates/overview.html
index c81b8266..5b91772c 100644
--- a/uffd/services/templates/overview.html
+++ b/uffd/services/templates/overview.html
@@ -8,6 +8,14 @@
 <div class="alert alert-warning" role="alert">Some services may not be publicly listed! Log in to see all services you have access to.</div>
 {% endif %}
 
+{% if banner %}
+<div class="card">
+  <div class="card-body">
+    {{ banner|safe }}
+  </div>
+</div>
+{% endif %}
+
 {% macro service_card(service) %}
   <div class="col mb-4">
     <div class="card h-100 {{ 'text-muted' if not service.has_access }}">
diff --git a/uffd/services/views.py b/uffd/services/views.py
index 7d9f03de..f4f9a805 100644
--- a/uffd/services/views.py
+++ b/uffd/services/views.py
@@ -83,4 +83,11 @@ def index():
 	services = get_services(user)
 	if not current_app.config['SERVICES']:
 		abort(404)
-	return render_template('overview.html', user=user, services=services)
+
+	banner = current_app.config.get('SERVICES_BANNER')
+
+	# Set the banner to None if it is not public and no user is logged in
+	if not (current_app.config["SERVICES_BANNER_PUBLIC"] or user):
+		banner = None
+
+	return render_template('overview.html', user=user, services=services, banner=banner)
-- 
GitLab