save/load selected email frequency on query review step
This commit is contained in:
@@ -174,10 +174,24 @@ const CRAWLER_AD_TYPE = {
|
||||
ONLY_REQUEST: 4
|
||||
};
|
||||
|
||||
const EMAIL_FREQUENCY = {
|
||||
ASAP: {
|
||||
id: 1,
|
||||
stringId: "ASAP",
|
||||
title: "Odmah"
|
||||
},
|
||||
DAILY: {
|
||||
id: 2,
|
||||
stringId: "DAILY",
|
||||
title: "Jednom dnevno"
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
AD_TYPE,
|
||||
AD_CATEGORY,
|
||||
AD_STATUS,
|
||||
AD_AGENCY,
|
||||
CRAWLER_AD_TYPE
|
||||
CRAWLER_AD_TYPE,
|
||||
EMAIL_FREQUENCY
|
||||
};
|
||||
|
||||
@@ -3,9 +3,9 @@ const { isValidEmail } = require("../helpers/email");
|
||||
const {
|
||||
notifyForNewSearchRequest
|
||||
} = require("../services/notificationService");
|
||||
const { AD_CATEGORY, AD_TYPE } = require("../common/enums");
|
||||
const { AD_CATEGORY, AD_TYPE, EMAIL_FREQUENCY } = require("../common/enums");
|
||||
|
||||
const getQueryReviewData = searchRequest => {
|
||||
const getQueryReviewTableData = searchRequest => {
|
||||
const {
|
||||
id,
|
||||
adType,
|
||||
@@ -87,15 +87,26 @@ const getQueryReview = async (req, res) => {
|
||||
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);
|
||||
const queryReviewTableData = getQueryReviewTableData(searchRequest);
|
||||
const email = searchRequest.email;
|
||||
let selectedEmailFrequency;
|
||||
switch (searchRequest.emailFrequency) {
|
||||
case EMAIL_FREQUENCY.ASAP.stringId:
|
||||
selectedEmailFrequency = EMAIL_FREQUENCY.ASAP.id;
|
||||
break;
|
||||
case EMAIL_FREQUENCY.DAILY.stringId:
|
||||
selectedEmailFrequency = EMAIL_FREQUENCY.DAILY.id;
|
||||
break;
|
||||
}
|
||||
|
||||
res.render("queryReview", {
|
||||
nextStep,
|
||||
queryReviewData,
|
||||
queryReviewTableData,
|
||||
title,
|
||||
email,
|
||||
error
|
||||
selectedEmailFrequency,
|
||||
error,
|
||||
EMAIL_FREQUENCY
|
||||
});
|
||||
};
|
||||
|
||||
@@ -107,17 +118,26 @@ const postQueryReview = async (req, res) => {
|
||||
}
|
||||
|
||||
const nextStep = req.query.nextStep || "/ponovo";
|
||||
const emailFrequency =
|
||||
parseInt(req.body.emailFrequency) || EMAIL_FREQUENCY.ASAP.id;
|
||||
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);
|
||||
const queryReviewTableData = getQueryReviewTableData(searchRequest);
|
||||
|
||||
let emailFrequencyStringId = EMAIL_FREQUENCY.ASAP.stringId;
|
||||
if (emailFrequency === EMAIL_FREQUENCY.DAILY.id) {
|
||||
emailFrequencyStringId = EMAIL_FREQUENCY.DAILY.stringId;
|
||||
}
|
||||
|
||||
searchRequest.emailFrequency = emailFrequencyStringId;
|
||||
|
||||
if (emailInput !== emailConfirmInput) {
|
||||
const error = "Greška ! Unešeni emailovi nisu isti";
|
||||
res.render("queryReview", {
|
||||
error,
|
||||
title,
|
||||
queryReviewData,
|
||||
queryReviewTableData,
|
||||
email: ""
|
||||
});
|
||||
return;
|
||||
@@ -128,7 +148,7 @@ const postQueryReview = async (req, res) => {
|
||||
res.render("queryReview", {
|
||||
error,
|
||||
title,
|
||||
queryReviewData,
|
||||
queryReviewTableData,
|
||||
email: ""
|
||||
});
|
||||
return;
|
||||
@@ -147,7 +167,7 @@ const postQueryReview = async (req, res) => {
|
||||
res.render("queryReview", {
|
||||
error,
|
||||
title,
|
||||
queryReviewData,
|
||||
queryReviewTableData,
|
||||
email: ""
|
||||
});
|
||||
return;
|
||||
@@ -164,7 +184,7 @@ const postQueryReview = async (req, res) => {
|
||||
res.render("queryReview", {
|
||||
error,
|
||||
title,
|
||||
queryReviewData,
|
||||
queryReviewTableData,
|
||||
email: ""
|
||||
});
|
||||
return;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<form method="POST" id="form-queryreview">
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(const stepData of queryReviewData) { %>
|
||||
<% for(const stepData of queryReviewTableData) { %>
|
||||
<li class="collection-item" >
|
||||
<div id="<%= stepData.id %>" ><%= stepData.title || '-' %>
|
||||
<a href="<%= stepData.url %>" class="kivi-color secondary-content">
|
||||
@@ -13,6 +13,26 @@
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="row center-align">
|
||||
<h6>Slanje obavještenja</h6>
|
||||
<span class="segmented">
|
||||
<label>
|
||||
<input type="radio" name="emailFrequency" value="<%= EMAIL_FREQUENCY.ASAP.id %>"
|
||||
<% if (selectedEmailFrequency === EMAIL_FREQUENCY.ASAP.id) { %>
|
||||
checked
|
||||
<% } %>>
|
||||
<span class="label"><%= EMAIL_FREQUENCY.ASAP.title %></span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="radio" name="emailFrequency" value="<%= EMAIL_FREQUENCY.DAILY.id %>"
|
||||
<% if (selectedEmailFrequency === EMAIL_FREQUENCY.DAILY.id) { %>
|
||||
checked
|
||||
<% } %>>
|
||||
<span class="label"><%= EMAIL_FREQUENCY.DAILY.title %></span>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
<div class="row center-align">
|
||||
<div class="col">
|
||||
<input id="email" name="email" type="email" placeholder="vas.email@mail.com" <% if (email) { %>value="<%= email %>" <% } %> required size="250" />
|
||||
@@ -47,6 +67,7 @@
|
||||
</form>
|
||||
|
||||
<script>
|
||||
|
||||
$(document).ready( () => {
|
||||
$("#submit").click( () => {
|
||||
const simpleEmailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
|
||||
Reference in New Issue
Block a user