KNOX-2632 - Properly copying generated content on tokengen UI (#467)
diff --git a/gateway-applications/src/main/resources/applications/tokengen/app/index.html b/gateway-applications/src/main/resources/applications/tokengen/app/index.html
index 36d0fa1..26c8c8a 100644
--- a/gateway-applications/src/main/resources/applications/tokengen/app/index.html
+++ b/gateway-applications/src/main/resources/applications/tokengen/app/index.html
@@ -94,12 +94,12 @@
<div style="margin-left: 1.75%; margin-right: 1.75%; margin-top: 10px">
<span id="resultBox" style="color:black; display:none; margin-left: 1.75%; margin-right: 1.75%;">
- <label id="jwtAccessTokenLabel" onclick="copyAccessTokenToClipBoard();"><i class="icon-copy"></i> JWT Token:</label>
+ <label id="jwtAccessTokenLabel" onclick="copyTextToClipboard('accessToken');"><i class="icon-copy"></i> JWT Token:</label>
<div class="tokenResultDisplay">
<span id="accessToken" name="accessToken" style="word-wrap: break-word"></span>
</div>
- <label id="jwtPasscodeTokenLabel" onclick="copyPasscodeTokenToClipBoard();"><i class="icon-copy"></i> Passcode Token:</label>
+ <label id="jwtPasscodeTokenLabel" onclick="copyTextToClipboard('accessPasscode');"><i class="icon-copy"></i> Passcode Token:</label>
<div class="tokenResultDisplay">
<span id="accessPasscode" name="accessPasscode"></span>
</div>
@@ -114,7 +114,7 @@
<span id="user" name="user"></span>
</div>
- <label id="targetBaseUrlLabel" onclick="copyBaseUrlToClipBoard();"><i class="icon-copy"></i> Target Base URL:</label>
+ <label id="targetBaseUrlLabel" onclick="copyTextToClipboard('target_url');"><i class="icon-copy"></i> Target Base URL:</label>
<div class="tokenResultDisplay">
<span id="target_url" name="target_url"></span>
</div>
diff --git a/gateway-applications/src/main/resources/applications/tokengen/app/js/tokengen.js b/gateway-applications/src/main/resources/applications/tokengen/app/js/tokengen.js
index 42d19c3..ad552bf 100644
--- a/gateway-applications/src/main/resources/applications/tokengen/app/js/tokengen.js
+++ b/gateway-applications/src/main/resources/applications/tokengen/app/js/tokengen.js
@@ -250,28 +250,13 @@
}
}
-function copyAccessTokenToClipBoard() {
- var range = document.createRange();
- range.selectNode(document.getElementById("accessToken"));
- copyTokenToClipboard(range);
-}
-
-function copyPasscodeTokenToClipBoard() {
- var range = document.createRange();
- range.selectNode(document.getElementById("accessPasscode"));
- copyTokenToClipboard(range);
-}
-
-function copyBaseUrlToClipBoard() {
- var range = document.createRange();
- range.selectNode(document.getElementById("target_url"));
- copyTokenToClipboard(range);
-}
-
-function copyTokenToClipboard(rangeWithSelectedNode) {
- window.getSelection().removeAllRanges(); // clear current selection
- window.getSelection().addRange(rangeWithSelectedNode); // to select text
- document.execCommand("copy");
- window.getSelection().removeAllRanges();// to deselect
- swal("Copied to clipboard!", {buttons: false, timer: 1000});
+function copyTextToClipboard(elementId) {
+ var toBeCopied = document.getElementById(elementId).innerText.trim();
+ const tempTextArea = document.createElement('textarea');
+ tempTextArea.value = toBeCopied;
+ document.body.appendChild(tempTextArea);
+ tempTextArea.select();
+ document.execCommand('copy');
+ document.body.removeChild(tempTextArea);
+ swal("Copied to clipboard!", {buttons: false, timer: 1000});
}
\ No newline at end of file