Minor random updates

This commit is contained in:
Patrick Fic
2020-04-17 10:32:47 -07:00
parent c9cafa7ab7
commit 8a4278d644
4 changed files with 60 additions and 66 deletions

View File

@@ -1,5 +1,4 @@
import { Editor } from "@tinymce/tinymce-react"; import { Editor } from "@tinymce/tinymce-react";
import { Col, Row } from "antd";
import axios from "axios"; import axios from "axios";
import React, { useState } from "react"; import React, { useState } from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
@@ -32,50 +31,46 @@ export default connect(
return ( return (
<div> <div>
<Row> <button
<Col span={12}> onClick={() => {
<button axios
onClick={() => { .post("/render", {
axios view: state,
.post("/render", { context: {
view: state, people: ["Yehuda Katz", "Alan Johnson", "Charles Jolley"],
context: { },
people: ["Yehuda Katz", "Alan Johnson", "Charles Jolley"], })
}, .then((r) => {
}) var newWin = window.open(
.then((r) => { "url",
var newWin = window.open( "windowName",
"url", "height=300,width=300"
"windowName", );
"height=300,width=300" newWin.document.write(r.data);
); });
newWin.document.write(r.data); }}
}); >
}} TinyMCE
> </button>
TinyMCE <Editor
</button> value={state}
<Editor apiKey="f3s2mjsd77ya5qvqkee9vgh612cm6h41e85efqakn2d0kknk"
value={state} init={{
apiKey="f3s2mjsd77ya5qvqkee9vgh612cm6h41e85efqakn2d0kknk" height: 500,
init={{ //menubar: false,
height: 500, encoding: "raw",
//menubar: false, extended_valid_elements: "span",
encoding: "raw",
extended_valid_elements: "span",
plugins: [ plugins: [
"advlist autolink lists link image charmap print preview anchor", "advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen", "searchreplace visualblocks code fullscreen",
"insertdatetime media table paste code help wordcount", "insertdatetime media table paste code help wordcount",
], ],
toolbar: toolbar:
"undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help", "undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help",
}} }}
onEditorChange={handleEditorChange} onEditorChange={handleEditorChange}
/> />
</Col>
</Row>
<button <button
onClick={() => onClick={() =>
@@ -111,13 +106,13 @@ export default connect(
Subject: "TODO FIX ME", Subject: "TODO FIX ME",
}, },
template: { template: {
name: "appointment_reminder2222222", name: "parts_order_confirmation",
variables: { id: "2b42336f-b8de-4f04-a053-d6bff034d384" }, variables: { id: "6fea31e9-ea85-4c89-ac56-6f9cc84531fe" },
}, },
}) })
} }
> >
Set email config. 222222 Parts Order
</button> </button>
</div> </div>
); );

View File

@@ -1,11 +1,10 @@
import { useMutation, useQuery } from "@apollo/react-hooks"; import { useMutation, useQuery } from "@apollo/react-hooks";
import { Form, Modal, notification } from "antd"; import { Form, Modal, notification } from "antd";
import React, { useState, useEffect } from "react"; import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
import PartsOrderEmailTemplate from "../../emails/templates/parts-order/parts-order.email"; import { EmailSettings } from "../../emails/constants";
import { REPORT_QUERY_PARTS_ORDER_BY_PK } from "../../emails/templates/parts-order/parts-order.query";
import { UPDATE_JOB_LINE_STATUS } from "../../graphql/jobs-lines.queries"; import { UPDATE_JOB_LINE_STATUS } from "../../graphql/jobs-lines.queries";
import { INSERT_NEW_PARTS_ORDERS } from "../../graphql/parts-orders.queries"; import { INSERT_NEW_PARTS_ORDERS } from "../../graphql/parts-orders.queries";
import { QUERY_ALL_VENDORS_FOR_ORDER } from "../../graphql/vendors.queries"; import { QUERY_ALL_VENDORS_FOR_ORDER } from "../../graphql/vendors.queries";
@@ -19,7 +18,6 @@ import {
import AlertComponent from "../alert/alert.component"; import AlertComponent from "../alert/alert.component";
import LoadingSpinner from "../loading-spinner/loading-spinner.component"; import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import PartsOrderModalComponent from "./parts-order-modal.component"; import PartsOrderModalComponent from "./parts-order-modal.component";
import { EmailSettings } from "../../emails/constants";
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
currentUser: selectCurrentUser, currentUser: selectCurrentUser,
@@ -95,15 +93,12 @@ export function PartsOrderModalContainer({
null, null,
replyTo: bodyshop.email, replyTo: bodyshop.email,
}, },
template: PartsOrderEmailTemplate, template: {
queryConfig: [ name: "parts_order_confirmation",
REPORT_QUERY_PARTS_ORDER_BY_PK, variables: {
{ id: r.data.insert_parts_orders.returning[0].id,
variables: {
id: r.data.insert_parts_orders.returning[0].id,
},
}, },
], },
}); });
} }
}) })

View File

@@ -7,12 +7,12 @@ var transporter = nodemailer.createTransport({
secure: true, // upgrade later with STARTTLS secure: true, // upgrade later with STARTTLS
auth: { auth: {
user: process.env.email_api, user: process.env.email_api,
pass: process.env.email_secret pass: process.env.email_secret,
} },
}); });
// verify connection configuration // verify connection configuration
transporter.verify(function(error, success) { transporter.verify(function (error, success) {
if (error) { if (error) {
console.log(error); console.log(error);
} else { } else {
@@ -22,17 +22,18 @@ transporter.verify(function(error, success) {
exports.sendEmail = (req, res) => { exports.sendEmail = (req, res) => {
if (process.env.NODE_ENV !== "production") { if (process.env.NODE_ENV !== "production") {
console.log("[EMAIL] Incoming Message Body", req.body); //console.log("[EMAIL] Incoming Message Body", req.body);
console.log("[EMAIL] Incoming Message", req.body.from.name);
} }
transporter.sendMail( transporter.sendMail(
{ {
...req.body, ...req.body,
from: { from: {
name: req.body.from.name || "No Reply @ Bodyshop.app", name: req.body.from.name || "No Reply @ Bodyshop.app",
address: "noreply@bodyshop.app" address: "noreply@bodyshop.app",
} },
}, },
function(error, info) { function (error, info) {
if (error) { if (error) {
console.log("[EMAIL] Email send failed. ", error); console.log("[EMAIL] Email send failed. ", error);
res.json({ success: false, error: error }); res.json({ success: false, error: error });

View File

@@ -4,6 +4,9 @@ const Handlebars = require("handlebars");
exports.render = (req, res) => { exports.render = (req, res) => {
//Perform request validation //Perform request validation
let view; let view;
console.log("[HJS Render] New Render Request.");
//console.log("[HJS Render] Context", req.body.context);
if (req.body.context.bodyshop.template_header) { if (req.body.context.bodyshop.template_header) {
console.log("[HJS Render] Including Header"); console.log("[HJS Render] Including Header");
view = `${req.body.context.bodyshop.template_header}${req.body.view}`; view = `${req.body.context.bodyshop.template_header}${req.body.view}`;