X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fcomponents%2FupsertUser.js;fp=public%2Fjavascripts%2Fcomponents%2FupsertUser.js;h=0000000000000000000000000000000000000000;hb=625022fdcf750f0aff8fcd699f7e9b89730e1d10;hp=dde6708e5f5453f61641f8db9fb45ef8d60becfe;hpb=b955c65b942d09d24b5c3bed0d755d4f2f8f71f1;p=vchess.git diff --git a/public/javascripts/components/upsertUser.js b/public/javascripts/components/upsertUser.js deleted file mode 100644 index dde6708e..00000000 --- a/public/javascripts/components/upsertUser.js +++ /dev/null @@ -1,157 +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"] = ""; - } - setTimeout(() => { - this.infoMsg = ""; - if (this.stage == "Register") - this.stage = "Login"; - document.getElementById("modalUser").checked = false; - }, 2000); - }, - err => { - this.infoMsg = ""; - alert(err); - } - ); - }, - } -});