X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FUpsertUser.vue;h=2b72ac27583651e6ad4c5e0667f19df5f6f59416;hb=98f485791e915563996de4f37430b285ffc773ae;hp=46f3bfe8df9e0237f4703c0b63e2ea7bb08a7ef8;hpb=a7f9f050e44080e8caf888e3b230660abffa2400;p=vchess.git diff --git a/client/src/components/UpsertUser.vue b/client/src/components/UpsertUser.vue index 46f3bfe8..2b72ac27 100644 --- a/client/src/components/UpsertUser.vue +++ b/client/src/components/UpsertUser.vue @@ -26,7 +26,7 @@ div i.material-icons send button(v-if="stage!='Update'" @click="toggleStage()") span {{ stage=="Login" ? "Register" : "Login" }} - button(v-else onClick="location.replace('/logout')") + button(v-else @click="doLogout()") span Logout #dialog(:style="{display: displayInfo}") {{ infoMsg }} @@ -39,9 +39,9 @@ export default { name: 'my-upsert-user', data: function() { return { - user: Object.assign({}, store.state.user), + user: store.state.user, nameOrEmail: "", //for login - stage: (store.state.user.id > 0 ? "Update" : "Login"), //TODO? + logStage: "Login", //or Register infoMsg: "", enterTime: Number.MAX_SAFE_INTEGER, //for a basic anti-bot strategy }; @@ -61,6 +61,9 @@ export default { displayInfo: function() { return (this.infoMsg.length > 0 ? "block" : "none"); }, + stage: function() { + return this.user.id > 0 ? "Update" : this.logStage; + }, }, methods: { trySetEnterTime: function(event) { @@ -69,7 +72,7 @@ export default { }, toggleStage: function() { // Loop login <--> register (update is for logged-in users) - this.stage = (this.stage == "Login" ? "Register" : "Login"); + this.logStage = (this.logStage == "Login" ? "Register" : "Login"); }, ajaxUrl: function() { switch (this.stage) @@ -137,6 +140,20 @@ export default { } ); }, + doLogout: function() { + ajax( + "/logout", + "GET", + () => { + this.user.id = 0; + this.user.name = ""; + this.user.email = ""; + this.user.notify = false; + delete localStorage["myid"]; + delete localStorage["myname"]; + } + ); + }, }, };