move email input to the review step
This commit is contained in:
@@ -1,15 +1,11 @@
|
|||||||
const { currentSearchRequest } = require("../helpers/url");
|
const { currentSearchRequest } = require("../helpers/url");
|
||||||
|
const { isValidEmail } = require("../helpers/email");
|
||||||
|
const {
|
||||||
|
notifyForNewSearchRequest
|
||||||
|
} = require("../services/notificationService");
|
||||||
const { AD_CATEGORY } = require("../common/enums");
|
const { AD_CATEGORY } = require("../common/enums");
|
||||||
|
|
||||||
const getQueryReview = async (req, res) => {
|
const getQueryReviewData = searchRequest => {
|
||||||
const title = "Da li je ovo to što ste tražili ?";
|
|
||||||
const searchRequest = await currentSearchRequest(req);
|
|
||||||
const nextStep = req.query.nextStep;
|
|
||||||
|
|
||||||
if (!searchRequest || !searchRequest.dataValues) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const {
|
const {
|
||||||
id,
|
id,
|
||||||
realEstateType,
|
realEstateType,
|
||||||
@@ -39,7 +35,7 @@ const getQueryReview = async (req, res) => {
|
|||||||
const priceTitle =
|
const priceTitle =
|
||||||
priceMin && priceMax ? `${priceMin} - ${priceMax} KM` : "-";
|
priceMin && priceMax ? `${priceMin} - ${priceMax} KM` : "-";
|
||||||
|
|
||||||
const queryReviewData = [
|
return [
|
||||||
{
|
{
|
||||||
id: "realEstateType",
|
id: "realEstateType",
|
||||||
title: realEstateTypeTitle,
|
title: realEstateTypeTitle,
|
||||||
@@ -66,17 +62,66 @@ const getQueryReview = async (req, res) => {
|
|||||||
url: `/cijena/${id}?nextStep=pregled`
|
url: `/cijena/${id}?nextStep=pregled`
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
const getQueryReview = async (req, res) => {
|
||||||
|
const searchRequest = await currentSearchRequest(req);
|
||||||
|
|
||||||
|
if (!searchRequest || !searchRequest.dataValues) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const title = "Da li je ovo to što ste tražili ?";
|
||||||
|
const nextStep = req.query.nextStep;
|
||||||
|
const error = req.query.error;
|
||||||
|
const queryReviewData = getQueryReviewData(searchRequest);
|
||||||
|
|
||||||
res.render("queryReview", {
|
res.render("queryReview", {
|
||||||
nextStep,
|
nextStep,
|
||||||
queryReviewData,
|
queryReviewData,
|
||||||
title
|
title,
|
||||||
|
error
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const postQueryReview = async (req, res) => {
|
const postQueryReview = async (req, res) => {
|
||||||
const searchRequest = await currentSearchRequest(req);
|
const searchRequest = await currentSearchRequest(req);
|
||||||
const nextStep = req.query.nextStep || `/posalji/${searchRequest.id}`;
|
|
||||||
|
if (!searchRequest || !searchRequest.dataValues) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const nextStep = req.query.nextStep || "/ponovo";
|
||||||
|
const emailInput = req.body.email;
|
||||||
|
const emailConfirmInput = req.body.confirmEmail;
|
||||||
|
const title = "Da li je ovo to što ste tražili ?";
|
||||||
|
const queryReviewData = getQueryReviewData(searchRequest);
|
||||||
|
|
||||||
|
if (emailInput !== emailConfirmInput) {
|
||||||
|
const error = "Greška ! Unešeni emailovi nisu isti";
|
||||||
|
res.render("queryReview", {
|
||||||
|
error,
|
||||||
|
title,
|
||||||
|
queryReviewData
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isValidEmail(emailInput)) {
|
||||||
|
const error = "Greška ! Unesite validan email";
|
||||||
|
res.render("queryReview", {
|
||||||
|
error,
|
||||||
|
title,
|
||||||
|
queryReviewData
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
searchRequest.email = emailInput;
|
||||||
|
searchRequest.subscribed = true;
|
||||||
|
await searchRequest.save();
|
||||||
|
|
||||||
|
await notifyForNewSearchRequest(searchRequest);
|
||||||
|
|
||||||
res.redirect(nextStep);
|
res.redirect(nextStep);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
const { currentSearchRequest } = require("../helpers/url");
|
|
||||||
const { isValidEmail } = require("../helpers/email");
|
|
||||||
const {
|
|
||||||
notifyForNewSearchRequest
|
|
||||||
} = require("../services/notificationService");
|
|
||||||
|
|
||||||
const getQuerySubmit = async (req, res) => {
|
|
||||||
const title = "Upišite vaš e-mail";
|
|
||||||
const nextStep = req.query.nextStep;
|
|
||||||
const error = req.query.error;
|
|
||||||
|
|
||||||
res.render("querySubmit", {
|
|
||||||
nextStep,
|
|
||||||
error,
|
|
||||||
title
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const postQuerySubmit = async (req, res) => {
|
|
||||||
const searchRequest = await currentSearchRequest(req);
|
|
||||||
const nextStep = req.query.nextStep || "/ponovo";
|
|
||||||
|
|
||||||
const emailInput = req.body.email;
|
|
||||||
const emailConfirmInput = req.body.confirm;
|
|
||||||
const title = "Upišite vaš e-mail";
|
|
||||||
let error = "Greška ! Unesite validan email";
|
|
||||||
|
|
||||||
if (emailInput !== emailConfirmInput) {
|
|
||||||
error = "Greška ! Unešeni emailovi nisu isti";
|
|
||||||
res.render("querySubmit", {
|
|
||||||
error,
|
|
||||||
title
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isValidEmail(emailInput)) {
|
|
||||||
error = "Greška ! Unesite validan email";
|
|
||||||
res.render("querySubmit", {
|
|
||||||
error,
|
|
||||||
title
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
searchRequest.email = emailInput;
|
|
||||||
searchRequest.subscribed = true;
|
|
||||||
await searchRequest.save();
|
|
||||||
|
|
||||||
await notifyForNewSearchRequest(searchRequest);
|
|
||||||
|
|
||||||
res.redirect(nextStep);
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
getQuerySubmit,
|
|
||||||
postQuerySubmit
|
|
||||||
};
|
|
||||||
@@ -14,10 +14,6 @@ const {
|
|||||||
getQueryReview,
|
getQueryReview,
|
||||||
postQueryReview
|
postQueryReview
|
||||||
} = require("../controllers/queryReview");
|
} = require("../controllers/queryReview");
|
||||||
const {
|
|
||||||
getQuerySubmit,
|
|
||||||
postQuerySubmit
|
|
||||||
} = require("../controllers/querySubmit");
|
|
||||||
const { getGoAgain } = require("../controllers/goAgain");
|
const { getGoAgain } = require("../controllers/goAgain");
|
||||||
const { getLocation, postLocation } = require("../controllers/location");
|
const { getLocation, postLocation } = require("../controllers/location");
|
||||||
const { getUnsubscribe } = require("../controllers/unsubscribe");
|
const { getUnsubscribe } = require("../controllers/unsubscribe");
|
||||||
@@ -48,9 +44,6 @@ router.post("/cijena/:searchRequestId", postPrice);
|
|||||||
router.get("/pregled/:searchRequestId", getQueryReview);
|
router.get("/pregled/:searchRequestId", getQueryReview);
|
||||||
router.post("/pregled/:searchRequestId", postQueryReview);
|
router.post("/pregled/:searchRequestId", postQueryReview);
|
||||||
|
|
||||||
router.get("/posalji/:searchRequestId", getQuerySubmit);
|
|
||||||
router.post("/posalji/:searchRequestId", postQuerySubmit);
|
|
||||||
|
|
||||||
router.get("/odjava/:searchRequestId", getUnsubscribe);
|
router.get("/odjava/:searchRequestId", getUnsubscribe);
|
||||||
|
|
||||||
router.get("/ponovo", getGoAgain);
|
router.get("/ponovo", getGoAgain);
|
||||||
|
|||||||
@@ -2,26 +2,50 @@
|
|||||||
<% include partials/navBar %>
|
<% include partials/navBar %>
|
||||||
|
|
||||||
<form method="POST" id="form-queryreview">
|
<form method="POST" id="form-queryreview">
|
||||||
<div class="row center-align">
|
<div class="row center-align">
|
||||||
<ul class="collection with-header">
|
<ul class="collection with-header">
|
||||||
<% for(const stepData of queryReviewData) { %>
|
<% for(const stepData of queryReviewData) { %>
|
||||||
<li class="collection-item" >
|
<li class="collection-item" >
|
||||||
<div id="<%= stepData.id %>" ><%= stepData.title || '-' %>
|
<div id="<%= stepData.id %>" ><%= stepData.title || '-' %>
|
||||||
<a href="<%= stepData.url %>" class="secondary-content">
|
<a href="<%= stepData.url %>" class="secondary-content">
|
||||||
<i class="material-icons">edit</i>
|
<i class="material-icons">edit</i>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<% } %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="row center-align">
|
||||||
|
<div class="col">
|
||||||
|
<input id="email" name="email" type="email" placeholder="vas.email@mail.com" required size="250" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<% } %>
|
|
||||||
</ul>
|
<div class="row center-align">
|
||||||
</div>
|
<div class="col">
|
||||||
<div class="row">
|
<input id="confirmEmail" name="confirmEmail" type="email" placeholder="potvrdite.email@mail.com" required size="250" />
|
||||||
<div class="col s6 push-s3">
|
</div>
|
||||||
<a id="submit" href="#" class="welcome-center-button waves-effect waves-light btn">
|
</div>
|
||||||
To je to
|
|
||||||
</a>
|
<div class="row center-align">
|
||||||
</div>
|
<div class="col">
|
||||||
</div>
|
<h6 id="error-label-email" style="color: red"><%= error %> </h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row center-align">
|
||||||
|
<div class="col">
|
||||||
|
<p>* U svakom trenutku možete prekinuti slanje objava kroz link u e-mailu</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row center-align">
|
||||||
|
<div class="col s6 push-s3">
|
||||||
|
<a id="submit" href="#" class="welcome-center-button waves-effect waves-light btn">
|
||||||
|
Javi mi
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
<!--suppress HtmlUnknownAnchorTarget -->
|
|
||||||
<% include partials/navBar %>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row center-align">
|
|
||||||
<h6>Da Vam javimo kada se Vaša željena nekretnina pojavi u oglasima, upišite vaš e-mail</h6>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form method="POST" id="form-submitquery">
|
|
||||||
<div class="row center-align">
|
|
||||||
<div class="col s6 push-s3">
|
|
||||||
<input id="email" name="email" type="email" placeholder="vas.email@mail.com" required size="250" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col s6 push-s3">
|
|
||||||
<h6 id="error-lable-email" style="color: red"><%= error %> </h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row center-align">
|
|
||||||
<div class="col s6 push-s3">
|
|
||||||
<input id="confirm" name="confirm" type="email" placeholder="potvrdite.email@mail.com" required size="250" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col s6 push-s3">
|
|
||||||
<h6 id="error-lable-email-confirm" style="color: red"></h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col s6 push-s3">
|
|
||||||
<a id="submit" href="#" class="welcome-center-button waves-effect waves-light btn">
|
|
||||||
Javi mi
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col s6 push-s3">
|
|
||||||
<p>* U svakom trenutku možete prekinuti slanje objava kroz link u e-mailu</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(document).ready(() => {
|
|
||||||
$("#submit").click(() => {
|
|
||||||
const emailField = document.getElementById('email');
|
|
||||||
const emailConfirmField = document.getElementById('confirm');
|
|
||||||
const errorMessage = "Greška ! Unedite validan email";
|
|
||||||
$("#error-lable-email").text("");
|
|
||||||
$("#error-lable-email-confirm").text("");
|
|
||||||
|
|
||||||
if (!emailField.validity.valid) {
|
|
||||||
$("#error-lable-email").text(errorMessage);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!emailConfirmField.validity.valid) {
|
|
||||||
$("#error-lable-email-confirm").text(errorMessage);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#form-submitquery").submit();
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
Reference in New Issue
Block a user