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:
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);
}
};