turnstile

Drupal paywall plugin
Log | Files | Refs | README | LICENSE

commit 2b375b2c3e93ff2db2dfee226b16f407ebf8154b
parent 554d7a3b6015e4e35fa408728cfd0fcf8c0f3212
Author: Florian Dold <florian@dold.me>
Date:   Wed, 26 Nov 2025 00:42:53 +0100

initialize taler-support once in the right place

Diffstat:
Mjs/payment-button.js | 31++++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/js/payment-button.js b/js/payment-button.js @@ -130,6 +130,24 @@ */ Drupal.behaviors.talerTurnstilePaymentButton = { attach: function (context, settings) { + // Do taler presence detection exactly once. + once('taler-support', 'html').forEach(() => { + // Detect presence of taler support in the browser. + window.talerCallback = (res) => { + console.log("talerCallback", res); + if (res.present) { + const els = $('.show-if-taler-supported'); + els.removeClass("hidden"); + } else { + $('.show-if-taler-supported').addClass("hidden"); + } + }; + // Add taler-support meta tag + let meta = document.createElement('meta'); + meta.name = "taler-support"; + meta.content = "api,callback"; + document.getElementsByTagName('head')[0].appendChild(meta); + }); var qrContainers = once('taler-turnstile-qr-generation', '.taler-turnstile-qr-code-container', context); qrContainers.forEach(function(qrContainer) { var $qrContainer = $(qrContainer); @@ -153,19 +171,6 @@ pollPaymentStatus(paymentUrl, sessionId); } }); - window.talerCallback = (res) => { - console.log("talerCallback", res); - if (res.present) { - $('.show-if-taler-supported', context).removeClass("hidden"); - } else { - $('.show-if-taler-supported', context).addClass("hidden"); - } - }; - // Add taler-support meta tag - let meta = document.createElement('meta'); - meta.name = "taler-support"; - meta.content = "api,callback"; - document.getElementsByTagName('head')[0].appendChild(meta); } };