X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fclient_OLD%2Fjavascripts%2Fcomponents%2FupsertUser.js;fp=client%2Fclient_OLD%2Fjavascripts%2Fcomponents%2FupsertUser.js;h=0000000000000000000000000000000000000000;hb=8d61fc4ab7373b4a576f3f9108cdf7768ae27096;hp=cca959e50cfa5c337b5ce76a9391a48a1620d4fd;hpb=760865ac92508676c0047b84c5ba3e12d41d7c20;p=vchess.git diff --git a/client/client_OLD/javascripts/components/upsertUser.js b/client/client_OLD/javascripts/components/upsertUser.js deleted file mode 100644 index cca959e5..00000000 --- a/client/client_OLD/javascripts/components/upsertUser.js +++ /dev/null @@ -1,160 +0,0 @@ -// Logic to login, or create / update a user (and also logout) -vv = Vue.component('my-upsert-user', { - data: function() { - return { - user: user, //initialized with global user object - nameOrEmail: "", //for login - stage: (!user.email ? "Login" : "Update"), - infoMsg: "", - enterTime: Number.MAX_SAFE_INTEGER, //for a basic anti-bot strategy - }; - }, - template: ` -
- -
-
- -

{{ stage }}

-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
-
-
- - - -
-
{{ infoMsg }}
-
-
-
- `, - computed: { - submitMessage: function() { - switch (this.stage) - { - case "Login": - return "Go"; - case "Register": - return "Send"; - case "Update": - return "Apply"; - } - }, - displayInfo: function() { - return (this.infoMsg.length > 0 ? "block" : "none"); - }, - }, - methods: { - trySetEnterTime: function(event) { - if (!!event.target.checked) - this.enterTime = Date.now(); - }, - toggleStage: function() { - // Loop login <--> register (update is for logged-in users) - this.stage = (this.stage == "Login" ? "Register" : "Login"); - }, - ajaxUrl: function() { - switch (this.stage) - { - case "Login": - return "/sendtoken"; - case "Register": - return "/register"; - case "Update": - return "/update"; - } - }, - ajaxMethod: function() { - switch (this.stage) - { - case "Login": - return "GET"; - case "Register": - return "POST"; - case "Update": - return "PUT"; - } - }, - infoMessage: function() { - switch (this.stage) - { - case "Login": - return "Connection token sent. Check your emails!"; - case "Register": - return "Registration complete! Please check your emails."; - case "Update": - return "Modifications applied!"; - } - }, - onSubmit: function() { - // Basic anti-bot strategy: - const exitTime = Date.now(); - if (this.stage == "Register" && exitTime - this.enterTime < 5000) - return; //silently return, in (curious) case of it was legitimate - let error = undefined; - if (this.stage == 'Login') - { - const type = (this.nameOrEmail.indexOf('@') >= 0 ? "email" : "name"); - error = checkNameEmail({[type]: this.nameOrEmail}); - } - else - error = checkNameEmail(this.user); - if (!!error) - return alert(error); - this.infoMsg = "Processing... Please wait"; - ajax(this.ajaxUrl(), this.ajaxMethod(), - this.stage == "Login" ? { nameOrEmail: this.nameOrEmail } : this.user, - res => { - this.infoMsg = this.infoMessage(); - if (this.stage != "Update") - { - this.nameOrEmail = ""; - this.user["email"] = ""; - this.user["name"] = ""; - // Store our identifiers in local storage (by little anticipation...) - localStorage["myid"] = res.id; - localStorage["myname"] = res.name; - } - setTimeout(() => { - this.infoMsg = ""; - if (this.stage == "Register") - this.stage = "Login"; - document.getElementById("modalUser").checked = false; - }, 2000); - }, - err => { - this.infoMsg = ""; - alert(err); - } - ); - }, - } -});