From a45d4ec74a1b2cf54f64a98c28f33ed091769bca Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Fri, 6 Mar 2026 06:43:37 +0530 Subject: [PATCH] fix: prevent double clipboard alert on copy action render-facade.js could be loaded more than once (registered under multiple handles when charts from different libraries appear on the same page). The copy ClipboardJS instance had no guard against double-initialization, causing the success alert to fire twice. Added vizClipboard2 guard to mirror the existing vizClipboard1 pattern already used for the shortcode copy button. --- js/render-facade.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/js/render-facade.js b/js/render-facade.js index 5dfc069a0..acde5321f 100644 --- a/js/render-facade.js +++ b/js/render-facade.js @@ -2,6 +2,7 @@ /* global visualizer */ /* global jQuery */ var vizClipboard1=null; +var vizClipboard2=null; (function($, visualizer){ function initActionsButtons(v) { @@ -13,12 +14,12 @@ var vizClipboard1=null; }); } - if($('a.visualizer-action[data-visualizer-type=copy]').length > 0) { + if($('a.visualizer-action[data-visualizer-type=copy]').length > 0 && vizClipboard2 === null) { $('a.visualizer-action[data-visualizer-type=copy]').on('click', function(e) { e.preventDefault(); }); - var clipboard = new ClipboardJS('a.visualizer-action[data-visualizer-type=copy]'); // jshint ignore:line - clipboard.on('success', function(e) { + vizClipboard2 = new ClipboardJS('a.visualizer-action[data-visualizer-type=copy]'); // jshint ignore:line + vizClipboard2.on('success', function(e) { window.alert(v.i10n['copied']); }); }