From 2f9b492f5ba2681376050f6f45db5c343e199ee3 Mon Sep 17 00:00:00 2001 From: JeLuF Date: Sat, 1 Jul 2023 00:15:18 +0200 Subject: [PATCH] Don't show copy button without clipboard access --- ui/media/css/main.css | 1 + ui/media/js/main.js | 2 +- ui/media/js/parameters.js | 18 +++++++++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ui/media/css/main.css b/ui/media/css/main.css index 9eefa4c2..8cf86aaa 100644 --- a/ui/media/css/main.css +++ b/ui/media/css/main.css @@ -1575,6 +1575,7 @@ body.wait-pause { margin-top: 0.2em; margin-bottom: 0.2em; display: inline-block; + width: 80%; } #copy-cloudflare-address { diff --git a/ui/media/js/main.js b/ui/media/js/main.js index 279feddb..7ced5b17 100644 --- a/ui/media/js/main.js +++ b/ui/media/js/main.js @@ -2103,7 +2103,7 @@ function tunnelUpdate(event) { if ("cloudflare" in event) { document.getElementById("cloudflare-off").classList.add("displayNone") document.getElementById("cloudflare-on").classList.remove("displayNone") - cloudflareAddressField.innerHTML = event.cloudflare + cloudflareAddressField.value = event.cloudflare document.getElementById("toggle-cloudflare-tunnel").innerHTML = "Stop" } else { document.getElementById("cloudflare-on").classList.add("displayNone") diff --git a/ui/media/js/parameters.js b/ui/media/js/parameters.js index cd86be63..e2f94d69 100644 --- a/ui/media/js/parameters.js +++ b/ui/media/js/parameters.js @@ -233,7 +233,7 @@ var PARAMETERS = [ note: `Create a VPN tunnel to share your Easy Diffusion instance with your friends. This will generate a web server address on the public Internet for your Easy Diffusion instance.
This Easy Diffusion server is available on the Internet using the - address:
+ address:
Anyone knowing this address can access your server. The address of your server will change each time you share a session.
Uses Cloudflare services.`, @@ -714,9 +714,17 @@ listenPortField.addEventListener("change", debounce( ()=>{ let copyCloudflareAddressBtn = document.querySelector("#copy-cloudflare-address") let cloudflareAddressField = document.getElementById("cloudflare-address") -copyCloudflareAddressBtn.addEventListener("click", (e) => { - navigator.clipboard.writeText(cloudflareAddressField.innerHTML) - showToast("Copied server address to clipboard") -}) +navigator.permissions.query({ name: "clipboard-write" }).then(function (result) { + if (result.state === "granted") { + // you can read from the clipboard + copyCloudflareAddressBtn.addEventListener("click", (e) => { + navigator.clipboard.writeText(cloudflareAddressField.innerHTML) + showToast("Copied server address to clipboard") + }) + } else { + copyCloudflareAddressBtn.classList.add("displayNone") + } +}); + document.addEventListener("system_info_update", (e) => setDeviceInfo(e.detail))