diff --git a/client/views/clients/Detail.jsx b/client/views/clients/Detail.jsx index 545414b..584d85a 100644 --- a/client/views/clients/Detail.jsx +++ b/client/views/clients/Detail.jsx @@ -2,6 +2,9 @@ import React from "react"; import Layout from "../layouts/Main"; import moment from "moment"; +const basePath = process.env.API_BASE_PATH; +const frontendBasePath = process.env.FRONTEND_BASE_PATH; + export default function Detail({ client, user }) { const timelineComponent = client.events .reverse() @@ -25,7 +28,7 @@ export default function Detail({ client, user }) { ); }); - + console.debug(client); return (
@@ -36,14 +39,6 @@ export default function Detail({ client, user }) {
-
- Status -
- - {client.status.replace("_", " ")} - -
-
Address {client.address || "-"} @@ -52,6 +47,51 @@ export default function Detail({ client, user }) { Tel. {client.telephone || "-"}
+
+
+ Status + +
+ + +
@@ -60,7 +100,7 @@ export default function Detail({ client, user }) {
{timelineComponent}
- + View Full Timeline
diff --git a/server/routes/clients.js b/server/routes/clients.js index 170ab06..536dc1a 100644 --- a/server/routes/clients.js +++ b/server/routes/clients.js @@ -5,15 +5,18 @@ const moment = require("moment"); const Client = require("../model/Client"); const User = require("../model/User"); +const getStatus = (client) => + client.events + .filter((event) => event.eventType == "status_changed") + .reverse()[0].value; + router.get("/", async (req, res) => { const client = await Client.find({ created_by: req.userId }).map( (clients) => { return clients .map((client) => { - const status = client.events - .filter((event) => event.eventType == "status_changed") - .reverse()[0]; - if (status) return { ...client.toJSON(), status: status.value }; + const status = getStatus(client); + if (status) return { ...client.toJSON(), status }; else return { ...client.toJSON(), status: "" }; }) .sort((a, b) => moment(b.updatedAt).subtract(a.updatedAt)); @@ -92,9 +95,13 @@ router.post("/:id/events", async (req, res) => { const client = await Client.findById(id); - client.events.push({ ...req.body }); + if (getStatus(client) !== req.body.value) { + client.events.push({ ...req.body }); + await client.save(); + } - res.send(await client.save()); + if (req.body.redirect) res.redirect(req.body.redirect); + else res.json(client); }); /**