X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FUpsertUser.vue;h=24e3c410ea8d5f90141485fb13fa8c96d01224bf;hb=0705a80c63aec2c60ee6a674b982f6a11d2d50bd;hp=ac15324c213496e646701424795755a2fe605b44;hpb=09d375717c256a2cbd71a5d3b3a4e21aee17c0ec;p=vchess.git diff --git a/client/src/components/UpsertUser.vue b/client/src/components/UpsertUser.vue index ac15324c..24e3c410 100644 --- a/client/src/components/UpsertUser.vue +++ b/client/src/components/UpsertUser.vue @@ -4,13 +4,27 @@ div type="checkbox" @change="trySetEnterTime($event)" ) - div( + div#upsertDiv( role="dialog" data-checkbox="modalUser" ) .card label.modal-close(for="modalUser") - h3.section {{ st.tr[stage] }} + h3.section + span.title {{ st.tr[stage] }} + | ( + span.link( + v-if="stage!='Update'" + @click="toggleStage()" + ) + | {{ st.tr[stage=="Login" ? "Register" : "Login"] }} + span.link( + v-else + @click="doLogout()" + ) + | {{ st.tr["Logout"] }} + img(src="/images/icons/rightArrow.svg") + | ) div(@keyup.enter="onSubmit()") div(v-show="stage!='Login'") fieldset @@ -38,20 +52,8 @@ div type="text" v-model="nameOrEmail" ) - .button-group - button(@click="onSubmit()") - span {{ st.tr[submitMessage] }} - button( - v-if="stage!='Update'" - type="button" - @click="toggleStage()" - ) - span {{ st.tr[stage=="Login" ? "Register" : "Login"] }} - button( - v-else type="button" - @click="doLogout()" - ) - span {{ st.tr["Logout"] }} + button#submitBtn(@click="onSubmit()") + | {{ st.tr[submitMessage] }} #dialog.text-center {{ st.tr[infoMsg] }} @@ -59,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() { @@ -71,6 +74,10 @@ export default { user: {} }; }, + mounted: function() { + document.getElementById("upsertDiv") + .addEventListener("click", processModalClick); + }, watch: { nameOrEmail: function(newValue) { if (newValue.indexOf("@") >= 0) { @@ -142,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!"; } @@ -156,7 +163,8 @@ export default { if (this.stage == "Login") { const type = this.nameOrEmail.indexOf("@") >= 0 ? "email" : "name"; error = checkNameEmail({ [type]: this.nameOrEmail }); - } else error = checkNameEmail(this.user); + } + else error = checkNameEmail(this.user); if (error) { alert(this.st.tr[error]); return; @@ -165,21 +173,26 @@ export default { ajax( this.ajaxUrl(), this.ajaxMethod(), - this.stage == "Login" - ? { nameOrEmail: this.nameOrEmail } - : this.user, - () => { - 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; + { + 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); } - }, - err => { - this.infoMsg = ""; - alert(err); } ); }, @@ -196,6 +209,22 @@ export default { max-width: 450px max-height: 100% +h3.section + span.title + padding-right: 10px + span.link + color: darkred + font-size: 0.8em + text-decoration: underline + cursor: pointer + img + height: 1em + padding-left: 5px + +#submitBtn + width: 50% + margin: 0 auto + #dialog padding: 5px color: blue