From 603b8a8b4a854efb168953da70e7b43ae99b50d9 Mon Sep 17 00:00:00 2001 From: Benjamin Auder <benjamin.auder@somewhere> Date: Mon, 27 Jan 2020 08:50:20 +0100 Subject: [PATCH] Add chat to Hall, clickable FEN, fix contact form --- client/src/components/BaseGame.vue | 6 +++++- client/src/components/ContactForm.vue | 4 +++- client/src/translations/en.js | 4 ++-- client/src/views/Hall.vue | 8 ++++++-- server/routes/messages.js | 9 ++++++--- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 6d9904e6..e880de5f 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -17,7 +17,7 @@ div button(@click="gotoBegin") GotoBegin button(@click="gotoEnd") GotoEnd #fenDiv(v-if="showFen && !!vr") - p {{ vr.getFen() }} + p(@click="gotoFenContent") {{ vr.getFen() }} #pgnDiv a#download(href="#") button(@click="download") {{ st.tr["Download PGN"] }} @@ -104,6 +104,10 @@ export default { this.cursor = L-1; this.lastMove = (L > 0 ? this.moves[L-1] : null); }, + gotoFenContent: function(event) { + this.$router.push("/analyze/" + this.game.vname + + "/?fen=" + event.target.innerText.replace(/ /g, "_")); + }, download: function() { const content = this.getPgn(); // Prepare and trigger download link diff --git a/client/src/components/ContactForm.vue b/client/src/components/ContactForm.vue index 20d35b0e..aae0a504 100644 --- a/client/src/components/ContactForm.vue +++ b/client/src/components/ContactForm.vue @@ -16,13 +16,15 @@ div br textarea#mailContent fieldset - button(type="button" onClick="trySendMessage()") Send + button(type="button" @click="trySendMessage") Send p#emailSent {{ st.tr["Email sent!"] }} </template> <script> import { ajax } from "../utils/ajax"; import { store } from "@/store"; +import { checkNameEmail } from "@/data/userCheck"; + export default { name: "my-contact-form", data: function() { diff --git a/client/src/translations/en.js b/client/src/translations/en.js index 23bb487e..2a50968c 100644 --- a/client/src/translations/en.js +++ b/client/src/translations/en.js @@ -4,8 +4,8 @@ export const translations = "Variants": "Variants", "My games": "My games", "Forum": "Forum", - "Contact form": "Contact form", - "Source code": "Source code", + "Contact": "Contact", + "About": "About", "Language": "Language", "Email": "Email", diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 3a579445..e090d9e6 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -26,10 +26,12 @@ main input#inputFen(type="text" v-model="newchallenge.fen") button(@click="newChallenge") {{ st.tr["Send challenge"] }} .row - .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 + .col-sm-12.col-md-9.col-md-offset-3 button(onClick="doClick('modalNewgame')") New game .row - .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 + .col-sm-12.col-md-3 + Chat(:players="[]") + .col-sm-12.col-md-9 .collapse input#challengeSection(type="radio" checked aria-hidden="true" name="accordion") label(for="challengeSection" aria-hidden="true") Challenges @@ -73,12 +75,14 @@ import { checkChallenge } from "@/data/challengeCheck"; import { ArrayFun } from "@/utils/array"; import { ajax } from "@/utils/ajax"; import { getRandString, shuffle } from "@/utils/alea"; +import Chat from "@/components/Chat.vue"; import GameList from "@/components/GameList.vue"; import ChallengeList from "@/components/ChallengeList.vue"; import { GameStorage } from "@/utils/gameStorage"; export default { name: "my-hall", components: { + Chat, GameList, ChallengeList, }, diff --git a/server/routes/messages.js b/server/routes/messages.js index 74ec8bd4..02ddec55 100644 --- a/server/routes/messages.js +++ b/server/routes/messages.js @@ -2,16 +2,19 @@ let router = require("express").Router(); const mailer = require(__dirname.replace("/routes", "/utils/mailer")); +const params = require(__dirname.replace("/routes", "/config/parameters")); // Send a message through contact form router.post("/messages", (req,res,next) => { if (!req.xhr) return res.json({errmsg: "Unauthorized access"}); - const from = req.body["email"]; + console.log(req.body); + const from = req.body["email"]; const subject = req.body["subject"]; - const body = req.body["body"]; + const body = req.body["content"]; + // TODO: sanitize ? - mailer.send(from, mailer.contact, subject, body, err => { + mailer(from, params.mail.contact, subject, body, err => { if (!!err) return res.json({errmsg:err}); // OK, everything fine -- 2.44.0