1
0
Fork 0
mirror of synced 2024-06-28 11:10:46 +12:00
appwrite/public/scripts/views/forms/show-secret.js
2021-01-18 20:37:13 +02:00

40 lines
1.2 KiB
JavaScript

(function (window) {
"use strict";
window.ls.container.get("view").add({
selector: "data-forms-show-secret",
controller: function (element, document) {
let button = document.createElement('span');
button.className = "link pull-end text-size-small margin-top-negative icon-eye";
button.innerHTML = (element.type == 'password') ? 'Show Secret' : 'Hide Secret';
button.style.visibility = (element.value == '') ? 'hidden' : 'visible';
element.insertAdjacentElement("beforebegin", button);
button.addEventListener("click", function (event) {
switch (element.type) {
case "password":
element.type = "text";
button.innerHTML = 'Hide Secret';
break;
case "text":
element.type = "password";
button.innerHTML = 'Show Secret';
break;
default:
console.warn(
"data-forms-show-secret: element.type NOT text NOR password"
);
}
});
let sync = function(event) {
button.style.visibility = (element.value == '') ? 'hidden' : 'visible';
};
element.addEventListener("keyup", sync);
element.addEventListener("change", sync);
},
});
})(window);