diff --git a/ts/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.ts b/ts/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.ts index e45cdfb24d3..a9210214852 100644 --- a/ts/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.ts +++ b/ts/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.ts @@ -67,6 +67,18 @@ export class ConsentPlugin { externalURL.href = slide.src!; externalURL.innerText = url.host; + const showOnceButton = clone.querySelector(".jsButtonMessageUserConsentOnce") as HTMLButtonElement; + // The Fancybox plugin handles this button because there is no payload for the generic consent handler. + showOnceButton.classList.remove("jsButtonMessageUserConsentOnce"); + showOnceButton.addEventListener("click", () => { + slide.type = this.#sliderToType.get(slide); + slide.el!.innerHTML = ""; + + // refresh current slide content + carousel.emit("detachSlideEl", slide); + carousel.emit("attachSlideEl", slide); + }); + const button = clone.querySelector(".jsButtonMessageUserConsentEnable") as HTMLButtonElement; button.addEventListener("click", () => { this.destroy(); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.js index 220ce064ffb..bd8e453f5ff 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Image/Fancybox/ConsentPlugin.js @@ -52,6 +52,16 @@ define(["require", "exports", "WoltLabSuite/Core/Ui/Message/UserConsent", "WoltL const url = new URL(slide.src); externalURL.href = slide.src; externalURL.innerText = url.host; + const showOnceButton = clone.querySelector(".jsButtonMessageUserConsentOnce"); + // The Fancybox plugin handles this button because there is no payload for the generic consent handler. + showOnceButton.classList.remove("jsButtonMessageUserConsentOnce"); + showOnceButton.addEventListener("click", () => { + slide.type = this.#sliderToType.get(slide); + slide.el.innerHTML = ""; + // refresh current slide content + carousel.emit("detachSlideEl", slide); + carousel.emit("attachSlideEl", slide); + }); const button = clone.querySelector(".jsButtonMessageUserConsentEnable"); button.addEventListener("click", () => { this.destroy();