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