jwtbutler 2.0.5 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/_js/_build/script.js +22 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
[](https://github.com/vielhuber/jwtbutler/blob/main/LICENSE.md)
|
|
5
5
|
[](https://github.com/vielhuber/jwtbutler/commits)
|
|
6
6
|
[](https://www.npmjs.com/package/jwtbutler)
|
|
7
|
+
[](https://www.npmjs.com/package/jwtbutler)
|
|
7
8
|
[](https://www.npmjs.com/package/jwtbutler)
|
|
8
9
|
|
|
9
10
|
# 🗝️ jwtbutler 🗝️
|
package/_js/_build/script.js
CHANGED
|
@@ -352,12 +352,17 @@ var jwtbutler = class {
|
|
|
352
352
|
renderLoginFormWithPromise() {
|
|
353
353
|
return new Promise((resolve, reject) => {
|
|
354
354
|
this.buildUpLoginFormHtml();
|
|
355
|
+
this.bindLoginFormSubmit().then(() => {
|
|
356
|
+
resolve();
|
|
357
|
+
}).catch((error) => {
|
|
358
|
+
reject(error);
|
|
359
|
+
});
|
|
355
360
|
this.captchaRender().then(() => {
|
|
356
|
-
this.
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
}
|
|
361
|
+
let submit = document.querySelector("." + this.config.login_form_class + " form")?.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
|
|
362
|
+
if (submit !== null && submit !== void 0) {
|
|
363
|
+
submit.disabled = false;
|
|
364
|
+
submit.removeAttribute("aria-busy");
|
|
365
|
+
}
|
|
361
366
|
this.triggerLoginFormRenderedEvent();
|
|
362
367
|
}).catch((error) => {
|
|
363
368
|
reject(error);
|
|
@@ -392,7 +397,11 @@ var jwtbutler = class {
|
|
|
392
397
|
</div>`;
|
|
393
398
|
let dom = new DOMParser().parseFromString(this.config.login_form, "text/html").body.childNodes[0];
|
|
394
399
|
this.config.login_form_class = dom.getAttribute("class").split(" ")[0];
|
|
395
|
-
let submit = dom.querySelector("input[type=\"submit\"]");
|
|
400
|
+
let submit = dom.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
|
|
401
|
+
if (this.captchaEnabled() && submit !== null) {
|
|
402
|
+
submit.disabled = true;
|
|
403
|
+
submit.setAttribute("aria-busy", "true");
|
|
404
|
+
}
|
|
396
405
|
let submitItem = submit !== null ? submit.closest("." + this.config.login_form_class + "__item") || submit.closest("li") || submit.parentElement : null;
|
|
397
406
|
let itemTag = submitItem !== null && submitItem.tagName.toLowerCase() === "li" ? "li" : "div";
|
|
398
407
|
if (this.captchaEnabled() && dom.querySelector("." + this.config.login_form_class + "__captcha") === null) {
|
|
@@ -574,8 +583,13 @@ var jwtbutler = class {
|
|
|
574
583
|
return new Promise((resolve, reject) => {
|
|
575
584
|
let dom = document.querySelector("." + this.config.login_form_class), form = dom.querySelector("form");
|
|
576
585
|
form.addEventListener("submit", (e) => {
|
|
586
|
+
let submit = form.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
|
|
587
|
+
if (submit?.getAttribute("aria-busy") === "true") {
|
|
588
|
+
e.preventDefault();
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
577
591
|
this.addLoadingState("logging-in");
|
|
578
|
-
if (
|
|
592
|
+
if (submit !== null) submit.disabled = true;
|
|
579
593
|
helpers.remove(dom.querySelector("." + this.config.login_form_class + "__error"));
|
|
580
594
|
let body = {
|
|
581
595
|
[this.config.auth_login]: form.querySelector("input[name=\"" + this.config.auth_login + "\"]").value,
|
|
@@ -590,7 +604,7 @@ var jwtbutler = class {
|
|
|
590
604
|
cache: "no-cache"
|
|
591
605
|
});
|
|
592
606
|
}).then((res) => res.json()).catch((error) => error).then((response) => {
|
|
593
|
-
if (
|
|
607
|
+
if (submit !== null) submit.disabled = false;
|
|
594
608
|
if (response !== void 0 && response !== null && "success" in response && response.success === true) {
|
|
595
609
|
helpers.remove(document.querySelector("." + this.config.login_form_class));
|
|
596
610
|
this.setCookies(response.data.access_token).then(() => {
|