aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap/application.js
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2025-02-14 11:15:04 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2025-02-14 11:15:04 +0000
commit3592861804c484d3386c1be5eb050c1761892c59 (patch)
tree901ade7b1397ff8675e6955b182d3bc8f085486b /resources/assets/javascripts/bootstrap/application.js
parent461e5c491da6fe3b2bb3b7400fb09303b54d1aa0 (diff)
implement generic methods to allow the user to display a password in a password input, fixes #5186
Closes #5186 Merge request studip/studip!3876
Diffstat (limited to 'resources/assets/javascripts/bootstrap/application.js')
-rw-r--r--resources/assets/javascripts/bootstrap/application.js21
1 files changed, 8 insertions, 13 deletions
diff --git a/resources/assets/javascripts/bootstrap/application.js b/resources/assets/javascripts/bootstrap/application.js
index 4e5eccc..7fdb316 100644
--- a/resources/assets/javascripts/bootstrap/application.js
+++ b/resources/assets/javascripts/bootstrap/application.js
@@ -1,5 +1,7 @@
import { $gettext } from '../lib/gettext';
import eventBus from "../lib/event-bus.ts";
+import allowPlaintextToggle from "../../../vue/directives/allow-plaintext-toggle";
+
/* ------------------------------------------------------------------------
* application.js
@@ -365,8 +367,6 @@ STUDIP.domReady(function () {
const passwordInput = document.getElementById('password');
const usernameInput = document.getElementById('loginname');
const passwordCapsText = document.getElementById('password-caps');
- const iconPasswordVisible = document.getElementById('visible-password');
- const iconPasswordInVisible = document.getElementById('invisible-password');
[usernameInput, passwordInput].forEach((input) => {
input.addEventListener('keydown', (event) => {
@@ -391,16 +391,11 @@ STUDIP.domReady(function () {
event.preventDefault();
});
}
+});
- document.getElementById('password-toggle').addEventListener('click', () => {
- if (passwordInput.type === 'password') {
- passwordInput.type = 'text';
- iconPasswordVisible.style.display = 'none';
- iconPasswordInVisible.style.display = '';
- } else {
- passwordInput.type = 'password';
- iconPasswordVisible.style.display = '';
- iconPasswordInVisible.style.display = 'none';
- }
- });
+/* Allow password inputs to display the password as plain text */
+STUDIP.ready(() => {
+ document.querySelectorAll('input[type="password"].allow-plaintext-toggle').forEach((node) => {
+ allowPlaintextToggle(node);
+ })
});