X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FUpsertUser.vue;h=24e3c410ea8d5f90141485fb13fa8c96d01224bf;hb=0705a80c63aec2c60ee6a674b982f6a11d2d50bd;hp=222a8625a166c35e27258d907ad63c8d53c4e5a6;hpb=6808d7a16ec1e761c6a2dffec2281c96953e4d89;p=vchess.git diff --git a/client/src/components/UpsertUser.vue b/client/src/components/UpsertUser.vue index 222a8625..24e3c410 100644 --- a/client/src/components/UpsertUser.vue +++ b/client/src/components/UpsertUser.vue @@ -1,32 +1,59 @@ @@ -34,6 +61,7 @@ div import { store } from "@/store"; import { checkNameEmail } from "@/data/userCheck"; import { ajax } from "@/utils/ajax"; +import { processModalClick } from "@/utils/modalClick.js"; export default { name: "my-upsert-user", data: function() { @@ -42,17 +70,22 @@ export default { logStage: "Login", //or Register infoMsg: "", enterTime: Number.MAX_SAFE_INTEGER, //for a basic anti-bot strategy - st: store.state + st: store.state, + user: {} }; }, + mounted: function() { + document.getElementById("upsertDiv") + .addEventListener("click", processModalClick); + }, watch: { nameOrEmail: function(newValue) { if (newValue.indexOf("@") >= 0) { - this.st.user.email = newValue; - this.st.user.name = ""; + this.user.email = newValue; + this.user.name = ""; } else { - this.st.user.name = newValue; - this.st.user.email = ""; + this.user.name = newValue; + this.user.email = ""; } } }, @@ -77,6 +110,12 @@ export default { if (event.target.checked) { this.infoMsg = ""; this.enterTime = Date.now(); + document.getElementById("u_username").focus(); + this.user = { + name: this.st.user.name, + email: this.st.user.email, + notify: this.st.user.notify + }; } }, toggleStage: function() { @@ -110,7 +149,7 @@ export default { case "Login": return "Connection token sent. Check your emails!"; case "Register": - return "Registration complete! Please check your emails"; + return "Registration complete! Please check your emails now"; case "Update": return "Modifications applied!"; } @@ -124,25 +163,36 @@ export default { if (this.stage == "Login") { const type = this.nameOrEmail.indexOf("@") >= 0 ? "email" : "name"; error = checkNameEmail({ [type]: this.nameOrEmail }); - } else error = checkNameEmail(this.st.user); + } + else error = checkNameEmail(this.user); if (error) { - alert(error); + alert(this.st.tr[error]); return; } this.infoMsg = "Processing... Please wait"; ajax( this.ajaxUrl(), this.ajaxMethod(), - this.stage == "Login" - ? { nameOrEmail: this.nameOrEmail } - : this.st.user, - () => { - this.infoMsg = this.infoMessage(); - if (this.stage != "Update") this.nameOrEmail = ""; - }, - err => { - this.infoMsg = ""; - alert(err); + { + credentials: true, + data: ( + this.stage == "Login" + ? { nameOrEmail: this.nameOrEmail } + : this.user + ), + success: () => { + this.infoMsg = this.infoMessage(); + if (this.stage != "Update") this.nameOrEmail = ""; + else { + this.st.user.name = this.user.name; + this.st.user.email = this.user.email; + this.st.user.notify = this.user.notify; + } + }, + error: (err) => { + this.infoMsg = ""; + alert(err); + } } ); }, @@ -156,8 +206,25 @@ export default {