From fb8a35490a33f9bff7edb6bc1a6cc1603732282b Mon Sep 17 00:00:00 2001 From: filoor Date: Wed, 28 May 2025 03:57:40 +0200 Subject: [PATCH] feat(adzkaar): voeg fullscreen Adzkaar-functionaliteit toe Deze commit implementeert een nieuw Adzkaar-scherm dat automatisch verschijnt na de gebedstijden. Belangrijke wijzigingen omvatten: - Toevoeging van instellingen voor het inschakelen en aanpassen van de duur van het Adzkaar-scherm in `settings.json` en de bijbehorende HTML. - Implementatie van nieuwe routes `/adzkaar` en `/api/trigger-adzkaar` om respectievelijk het scherm weer te geven en te debuggen. - Update van de countdown-logica om het Adzkaar-scherm drie seconden na het adhan af te spelen. - Nieuwe frontend-elementen voor een interactieve, kaart-voor-kaart weergave van de Adzkaar met ondersteuning voor navigatie en toetsenbordbediening. - Aanpassing van bestaande templates om integratie van de nieuwe functionaliteiten te faciliteren. Deze toevoegingen verbeteren de gebruikerservaring door meer spirituele betrokkenheid mogelijk te maken na de gebedstijden. --- adhan-webapp/app.py | 39 +++ adhan-webapp/done | 2 + adhan-webapp/settings.json | 4 +- adhan-webapp/static/countdown.js | 38 +++ adhan-webapp/templates/adzkaar.html | 371 +++++++++++++++++++++++++++ adhan-webapp/templates/debug.html | 100 ++++++-- adhan-webapp/templates/settings.html | 31 +++ 7 files changed, 567 insertions(+), 18 deletions(-) create mode 100644 adhan-webapp/templates/adzkaar.html diff --git a/adhan-webapp/app.py b/adhan-webapp/app.py index 634d9bd..4a5dafc 100644 --- a/adhan-webapp/app.py +++ b/adhan-webapp/app.py @@ -306,6 +306,10 @@ def instellingen(): settings['asr_offset'] = int(request.form.get('asr_offset', 0)) settings['maghrib_offset'] = int(request.form.get('maghrib_offset', 0)) settings['isha_offset'] = int(request.form.get('isha_offset', 0)) + + # Adzkaar instellingen + settings['adzkaar_enabled'] = 'adzkaar_enabled' in request.form + settings['adzkaar_duration'] = int(request.form.get('adzkaar_duration', 5)) settings['zones'] = request.form.getlist('zones') settings['audio_clip'] = request.form['audio_clip'] @@ -594,5 +598,40 @@ def quran(): gebedstijden=gebedstijden, settings=settings) +@app.route('/adzkaar') +def adzkaar(): + """Adzkaar pagina na gebed""" + settings = load_settings() + duration_minutes = settings.get('adzkaar_duration', 5) # Default 5 minuten + + return render_template('adzkaar.html', + duration_minutes=duration_minutes, + settings=settings) + +@app.route('/api/trigger-adzkaar', methods=['POST']) +def trigger_adzkaar(): + """API endpoint om Adzkaar scherm te triggeren (voor debug)""" + try: + settings = load_settings() + + # Check of Adzkaar is ingeschakeld + if not settings.get('adzkaar_enabled', True): + return jsonify({ + 'success': False, + 'error': 'Adzkaar is uitgeschakeld in instellingen' + }) + + duration = settings.get('adzkaar_duration', 5) + + return jsonify({ + 'success': True, + 'message': f'Adzkaar scherm wordt getoond voor {duration} minuten', + 'duration': duration, + 'url': '/adzkaar' + }) + + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + if __name__ == '__main__': app.run(host='0.0.0.0', port=80) \ No newline at end of file diff --git a/adhan-webapp/done b/adhan-webapp/done index 4ff43cf..63b4dfa 100644 --- a/adhan-webapp/done +++ b/adhan-webapp/done @@ -10,3 +10,5 @@ Mon May 26 18:17:57 CEST 2025: Tijdzone probleem opgelost - Container gebruikt n 2025-05-28 03:34:23 - Countdown logica gerepareerd: na laatste gebed van de dag toont nu correct 'Fajr (morgen)' met juiste countdown tot volgende dag 2025-05-28 03:36:17 - Settings pagina layout verbeterd: volledige breedte gebruikt, drie-kolommen layout voor gebedstijd aanpassingen 2025-05-28 03:37:57 - Light theme kleuren gerepareerd: teksten nu zichtbaar in light mode, accent kleuren aangepast voor betere contrast +2025-05-28 03:49:24 - Adzkaar fullscreen functionaliteit geรฏmplementeerd: nieuwe /adzkaar route, instellingen, debug knoppen, automatische trigger na gebedstijden, Nederlandse/Arabische dhikr content +2025-05-28 03:55:38 - Adzkaar scherm verbeterd naar kaart-voor-kaart weergave met navigatie knoppen en toetsenbord besturing diff --git a/adhan-webapp/settings.json b/adhan-webapp/settings.json index f5b14ca..a188241 100644 --- a/adhan-webapp/settings.json +++ b/adhan-webapp/settings.json @@ -14,5 +14,7 @@ ], "audio_clip": "adhan1.mp3", "mute": false, - "volume": 10 + "volume": 10, + "adzkaar_enabled": true, + "adzkaar_duration": 5 } \ No newline at end of file diff --git a/adhan-webapp/static/countdown.js b/adhan-webapp/static/countdown.js index 24f99f0..e36005d 100644 --- a/adhan-webapp/static/countdown.js +++ b/adhan-webapp/static/countdown.js @@ -82,6 +82,11 @@ function startCountdown(targetTimeStr, prayerName, isNextDay = false) { const audio = document.getElementById('adhanAudio'); if (audio) audio.play(); + // Trigger Adzkaar scherm na 3 seconden (geef adhaan tijd om te starten) + setTimeout(() => { + triggerAdzkaarScreen(displayName); + }, 3000); + // Ga naar volgende gebed if (isNextDayPrayer) { // We waren aan het wachten op het eerste gebed van de nieuwe dag @@ -142,3 +147,36 @@ function setupThemeToggle() { applyTheme(current); }); } + +function triggerAdzkaarScreen(prayerName) { + // Check eerst of Adzkaar is ingeschakeld via API + fetch('/api/trigger-adzkaar', { + method: 'POST', + headers: { 'Content-Type': 'application/json' } + }) + .then(response => response.json()) + .then(data => { + if (data.success) { + console.log(`๐Ÿ“ฟ Adzkaar scherm wordt getoond na ${prayerName}`); + + // Open Adzkaar scherm in fullscreen + // In kiosk mode proberen we een nieuw venster te openen + const adzkaarWindow = window.open( + data.url, + 'adzkaar', + 'fullscreen=yes,scrollbars=no,resizable=no,toolbar=no,menubar=no,status=no' + ); + + // Als window.open niet werkt (bijv. popup blocker), navigeer naar de pagina + if (!adzkaarWindow) { + console.log('๐Ÿ“ฟ Popup geblokkeerd, navigeren naar Adzkaar pagina...'); + window.location.href = data.url; + } + } else { + console.log(`๐Ÿ“ฟ Adzkaar niet getoond: ${data.error}`); + } + }) + .catch(error => { + console.log(`โŒ Fout bij Adzkaar trigger: ${error.message}`); + }); +} diff --git a/adhan-webapp/templates/adzkaar.html b/adhan-webapp/templates/adzkaar.html new file mode 100644 index 0000000..851d847 --- /dev/null +++ b/adhan-webapp/templates/adzkaar.html @@ -0,0 +1,371 @@ + + + + + Adzkaar na het Gebed + + + + + + +
+ + +
+ 5:00 +
+ +
+

ุฃุฐูƒุงุฑ ุจุนุฏ ุงู„ุตู„ุงุฉ

+

Adzkaar na het Gebed

+
+ +
+
+ + +
+ 1 / 6 +
+ + +
+ +
+
+
ุฃูŽุณู’ุชูŽุบู’ููุฑู ุงู„ู„ูŽู‘ู‡ูŽ
+
Astaghfirullah
+
Ik vraag Allah om vergeving
+
3x
+
+ +
+
ุงู„ู„ูŽู‘ู‡ูู…ูŽู‘ ุฃูŽู†ู’ุชูŽ ุงู„ุณูŽู‘ู„ุงูŽู…ู ูˆูŽู…ูู†ู’ูƒูŽ ุงู„ุณูŽู‘ู„ุงูŽู…ู ุชูŽุจูŽุงุฑูŽูƒู’ุชูŽ ูŠูŽุง ุฐูŽุง ุงู„ู’ุฌูŽู„ุงูŽู„ู ูˆูŽุงู„ุฅููƒู’ุฑูŽุงู…ู
+
Allahumma anta as-salamu wa minka as-salamu, tabarakta ya dhal-jalali wal-ikram
+
O Allah, U bent de Vrede en van U komt de vrede. Gezegend bent U, O Bezitter van Majesteit en Eer
+
1x
+
+ +
+
ุณูุจู’ุญูŽุงู†ูŽ ุงู„ู„ูŽู‘ู‡ู
+
Subhan Allah
+
Glorie zij Allah
+
33x
+
+ +
+
ุงู„ู’ุญูŽู…ู’ุฏู ู„ูู„ูŽู‘ู‡ู
+
Alhamdulillah
+
Alle lof zij Allah
+
33x
+
+ +
+
ุงู„ู„ูŽู‘ู‡ู ุฃูŽูƒู’ุจูŽุฑู
+
Allahu Akbar
+
Allah is de Grootste
+
34x
+
+ +
+
ู„ุงูŽ ุฅูู„ูŽู‡ูŽ ุฅูู„ุงูŽู‘ ุงู„ู„ูŽู‘ู‡ู ูˆูŽุญู’ุฏูŽู‡ู ู„ุงูŽ ุดูŽุฑููŠูƒูŽ ู„ูŽู‡ู ู„ูŽู‡ู ุงู„ู’ู…ูู„ู’ูƒู ูˆูŽู„ูŽู‡ู ุงู„ู’ุญูŽู…ู’ุฏู ูˆูŽู‡ููˆูŽ ุนูŽู„ูŽู‰ ูƒูู„ูู‘ ุดูŽูŠู’ุกู ู‚ูŽุฏููŠุฑูŒ
+
La ilaha illa Allah wahdahu la sharika lah, lahu al-mulku wa lahu al-hamdu wa huwa 'ala kulli shay'in qadir
+
Er is geen god behalve Allah alleen, Hij heeft geen partner. Aan Hem behoort de heerschappij en aan Hem behoort alle lof, en Hij heeft macht over alle dingen
+
1x
+
+
+
+
+ + + + \ No newline at end of file diff --git a/adhan-webapp/templates/debug.html b/adhan-webapp/templates/debug.html index 1ffe0f3..356f530 100644 --- a/adhan-webapp/templates/debug.html +++ b/adhan-webapp/templates/debug.html @@ -7,6 +7,14 @@ @@ -237,6 +264,18 @@ + +
+

๐Ÿ“ฟ Adzkaar Testing

+
+ Status: {% if settings.adzkaar_enabled %}Ingeschakeld{% else %}Uitgeschakeld{% endif %}
+ Duur: {{ settings.adzkaar_duration or 5 }} minuten
+
+
+ + +
+