You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by sm...@apache.org on 2021/06/04 16:50:37 UTC
[knox] branch master updated: KNOX-2617 - Minor style changes and
copy-to-clipboard functionality added for JWT/Passcode tokens and base
target UL fields on the Token Generation UI (#454)
This is an automated email from the ASF dual-hosted git repository.
smolnar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new deec67b KNOX-2617 - Minor style changes and copy-to-clipboard functionality added for JWT/Passcode tokens and base target UL fields on the Token Generation UI (#454)
deec67b is described below
commit deec67b4476618803f1051b3a40960335602a8bb
Author: Sandor Molnar <sm...@apache.org>
AuthorDate: Fri Jun 4 18:50:28 2021 +0200
KNOX-2617 - Minor style changes and copy-to-clipboard functionality added for JWT/Passcode tokens and base target UL fields on the Token Generation UI (#454)
---
.../resources/applications/tokengen/app/index.html | 57 ++++++++++++++--------
.../applications/tokengen/app/js/tokengen.js | 26 ++++++++++
2 files changed, 63 insertions(+), 20 deletions(-)
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 a338b3b..ce0ea37 100644
--- a/gateway-applications/src/main/resources/applications/tokengen/app/index.html
+++ b/gateway-applications/src/main/resources/applications/tokengen/app/index.html
@@ -48,10 +48,7 @@
</head>
<body class="login" style="" onload="setTokenStateServiceStatus()">
- <!-- Page content
- ================================================== -->
-
- <section id="signin-container" style="margin-top: 4.5px;">
+ <div style="margin-left: 1.75%; margin-right: 1.75%; margin-top: 4.5px">
<form action="" method="get" accept-charset="utf-8">
<fieldset>
<div class="fields">
@@ -83,27 +80,47 @@
<span id="errorBox" class="help-inline" style="color:white;display:none;"><span class="errorMsg"></span>
<i class="icon-warning-sign" style="color:#ae2817;"></i>
</span>
- <button type="button" class="btn btn-primary btn-block" id="genToken" tabindex="2" onkeypress="keypressed(event)" onclick="gen();">
- Generate Token
- </button>
+ <div style="align-content: center; width: 25%;">
+ <button type="button" class="btn btn-primary btn-block" id="genToken" tabindex="2" onkeypress="keypressed(event)" onclick="gen();">
+ Generate Token
+ </button>
+ </div>
</fieldset>
</form>
- </section>
- <section id="signin-container" style="margin-top: 4.5px;">
- <span id="resultBox" class="help-inline" style="color:black;display:none;">
- <label><i class="icon-copy"></i> JWT Token:</label>
- <textarea id="accessToken" name="accessToken" rows="5" cols="80"></textarea>
- <label><i class="icon-copy"></i> Passcode Token:</label>
- <textarea id="accessPasscode" name="accessPasscode" rows="1" cols="80"></textarea>
+ </div>
+ <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>
+ <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>
+ <div class="tokenResultDisplay">
+ <span id="accessPasscode" name="accessPasscode"></span>
+ </div>
+
<label><i class="icon-info"></i> Expiration:</label>
- <span id="expiry" name="expiry"><i style="color:#000000;"></i></span>
+ <div class="tokenResultDisplay">
+ <span id="expiry" name="expiry"></span>
+ </div>
+
<label><i class="icon-info"></i> User:</label>
- <span id="user" name="user"><i style="color:#000000;"></i></span>
+ <div class="tokenResultDisplay">
+ <span id="user" name="user"></span>
+ </div>
+
+ <label id="targetBaseUrlLabel" onclick="copyBaseUrlToClipBoard();"><i class="icon-copy"></i> Target Base URL:</label>
+ <div class="tokenResultDisplay">
+ <span id="target_url" name="target_url"></span>
+ </div>
+
<label><i class="icon-link"></i> Homepage:</label>
- <div id="homepage_url" name="homepage_url"><i style="color:#000000;"></i></div>
- <label><i class="icon-info"></i> Target URL:</label>
- <div id="target_url" name="target_url"><i style="color:#000000;"></i></div>
+ <div class="tokenResultDisplay">
+ <span id="homepage_url" name="homepage_url"></span>
+ </div>
</span>
- </section>
+ </div>
</body>
</html>
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 2231864..b5b4963 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
@@ -236,3 +236,29 @@ var gen = function() {
}
}
}
+
+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});
+}
\ No newline at end of file