move email input to the review step
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
const { currentSearchRequest } = require("../helpers/url");
|
||||
const { isValidEmail } = require("../helpers/email");
|
||||
const {
|
||||
notifyForNewSearchRequest
|
||||
} = require("../services/notificationService");
|
||||
const { AD_CATEGORY } = require("../common/enums");
|
||||
|
||||
const getQueryReview = async (req, res) => {
|
||||
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 getQueryReviewData = searchRequest => {
|
||||
const {
|
||||
id,
|
||||
realEstateType,
|
||||
@@ -39,7 +35,7 @@ const getQueryReview = async (req, res) => {
|
||||
const priceTitle =
|
||||
priceMin && priceMax ? `${priceMin} - ${priceMax} KM` : "-";
|
||||
|
||||
const queryReviewData = [
|
||||
return [
|
||||
{
|
||||
id: "realEstateType",
|
||||
title: realEstateTypeTitle,
|
||||
@@ -66,17 +62,66 @@ const getQueryReview = async (req, res) => {
|
||||
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", {
|
||||
nextStep,
|
||||
queryReviewData,
|
||||
title
|
||||
title,
|
||||
error
|
||||
});
|
||||
};
|
||||
|
||||
const postQueryReview = async (req, res) => {
|
||||
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);
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
postQueryReview
|
||||
} = require("../controllers/queryReview");
|
||||
const {
|
||||
getQuerySubmit,
|
||||
postQuerySubmit
|
||||
} = require("../controllers/querySubmit");
|
||||
const { getGoAgain } = require("../controllers/goAgain");
|
||||
const { getLocation, postLocation } = require("../controllers/location");
|
||||
const { getUnsubscribe } = require("../controllers/unsubscribe");
|
||||
@@ -48,9 +44,6 @@ router.post("/cijena/:searchRequestId", postPrice);
|
||||
router.get("/pregled/:searchRequestId", getQueryReview);
|
||||
router.post("/pregled/:searchRequestId", postQueryReview);
|
||||
|
||||
router.get("/posalji/:searchRequestId", getQuerySubmit);
|
||||
router.post("/posalji/:searchRequestId", postQuerySubmit);
|
||||
|
||||
router.get("/odjava/:searchRequestId", getUnsubscribe);
|
||||
|
||||
router.get("/ponovo", getGoAgain);
|
||||
|
||||
@@ -2,26 +2,50 @@
|
||||
<% include partials/navBar %>
|
||||
|
||||
<form method="POST" id="form-queryreview">
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(const stepData of queryReviewData) { %>
|
||||
<li class="collection-item" >
|
||||
<div id="<%= stepData.id %>" ><%= stepData.title || '-' %>
|
||||
<a href="<%= stepData.url %>" class="secondary-content">
|
||||
<i class="material-icons">edit</i>
|
||||
</a>
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(const stepData of queryReviewData) { %>
|
||||
<li class="collection-item" >
|
||||
<div id="<%= stepData.id %>" ><%= stepData.title || '-' %>
|
||||
<a href="<%= stepData.url %>" class="secondary-content">
|
||||
<i class="material-icons">edit</i>
|
||||
</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>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s6 push-s3">
|
||||
<a id="submit" href="#" class="welcome-center-button waves-effect waves-light btn">
|
||||
To je to
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row center-align">
|
||||
<div class="col">
|
||||
<input id="confirmEmail" name="confirmEmail" type="email" placeholder="potvrdite.email@mail.com" required size="250" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row center-align">
|
||||
<div class="col">
|
||||
<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>
|
||||
|
||||
<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