Minor random updates
This commit is contained in:
@@ -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>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
15
sendemail.js
15
sendemail.js
@@ -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 });
|
||||||
|
|||||||
@@ -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}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user