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
|
ONLY_REQUEST: 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const EMAIL_FREQUENCY = {
|
||||||
|
ASAP: {
|
||||||
|
id: 1,
|
||||||
|
stringId: "ASAP",
|
||||||
|
title: "Odmah"
|
||||||
|
},
|
||||||
|
DAILY: {
|
||||||
|
id: 2,
|
||||||
|
stringId: "DAILY",
|
||||||
|
title: "Jednom dnevno"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
AD_TYPE,
|
AD_TYPE,
|
||||||
AD_CATEGORY,
|
AD_CATEGORY,
|
||||||
AD_STATUS,
|
AD_STATUS,
|
||||||
AD_AGENCY,
|
AD_AGENCY,
|
||||||
CRAWLER_AD_TYPE
|
CRAWLER_AD_TYPE,
|
||||||
|
EMAIL_FREQUENCY
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ const { isValidEmail } = require("../helpers/email");
|
|||||||
const {
|
const {
|
||||||
notifyForNewSearchRequest
|
notifyForNewSearchRequest
|
||||||
} = require("../services/notificationService");
|
} = 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 {
|
const {
|
||||||
id,
|
id,
|
||||||
adType,
|
adType,
|
||||||
@@ -87,15 +87,26 @@ const getQueryReview = async (req, res) => {
|
|||||||
const title = "Da li je ovo to što ste tražili ?";
|
const title = "Da li je ovo to što ste tražili ?";
|
||||||
const nextStep = req.query.nextStep;
|
const nextStep = req.query.nextStep;
|
||||||
const error = req.query.error;
|
const error = req.query.error;
|
||||||
const queryReviewData = getQueryReviewData(searchRequest);
|
const queryReviewTableData = getQueryReviewTableData(searchRequest);
|
||||||
const email = searchRequest.email;
|
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", {
|
res.render("queryReview", {
|
||||||
nextStep,
|
nextStep,
|
||||||
queryReviewData,
|
queryReviewTableData,
|
||||||
title,
|
title,
|
||||||
email,
|
email,
|
||||||
error
|
selectedEmailFrequency,
|
||||||
|
error,
|
||||||
|
EMAIL_FREQUENCY
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -107,17 +118,26 @@ const postQueryReview = async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const nextStep = req.query.nextStep || "/ponovo";
|
const nextStep = req.query.nextStep || "/ponovo";
|
||||||
|
const emailFrequency =
|
||||||
|
parseInt(req.body.emailFrequency) || EMAIL_FREQUENCY.ASAP.id;
|
||||||
const emailInput = req.body.email;
|
const emailInput = req.body.email;
|
||||||
const emailConfirmInput = req.body.confirmEmail;
|
const emailConfirmInput = req.body.confirmEmail;
|
||||||
const title = "Da li je ovo to što ste tražili ?";
|
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) {
|
if (emailInput !== emailConfirmInput) {
|
||||||
const error = "Greška ! Unešeni emailovi nisu isti";
|
const error = "Greška ! Unešeni emailovi nisu isti";
|
||||||
res.render("queryReview", {
|
res.render("queryReview", {
|
||||||
error,
|
error,
|
||||||
title,
|
title,
|
||||||
queryReviewData,
|
queryReviewTableData,
|
||||||
email: ""
|
email: ""
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@@ -128,7 +148,7 @@ const postQueryReview = async (req, res) => {
|
|||||||
res.render("queryReview", {
|
res.render("queryReview", {
|
||||||
error,
|
error,
|
||||||
title,
|
title,
|
||||||
queryReviewData,
|
queryReviewTableData,
|
||||||
email: ""
|
email: ""
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@@ -147,7 +167,7 @@ const postQueryReview = async (req, res) => {
|
|||||||
res.render("queryReview", {
|
res.render("queryReview", {
|
||||||
error,
|
error,
|
||||||
title,
|
title,
|
||||||
queryReviewData,
|
queryReviewTableData,
|
||||||
email: ""
|
email: ""
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@@ -164,7 +184,7 @@ const postQueryReview = async (req, res) => {
|
|||||||
res.render("queryReview", {
|
res.render("queryReview", {
|
||||||
error,
|
error,
|
||||||
title,
|
title,
|
||||||
queryReviewData,
|
queryReviewTableData,
|
||||||
email: ""
|
email: ""
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<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 queryReviewTableData) { %>
|
||||||
<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="kivi-color secondary-content">
|
<a href="<%= stepData.url %>" class="kivi-color secondary-content">
|
||||||
@@ -13,6 +13,26 @@
|
|||||||
<% } %>
|
<% } %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</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="row center-align">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<input id="email" name="email" type="email" placeholder="vas.email@mail.com" <% if (email) { %>value="<%= email %>" <% } %> required size="250" />
|
<input id="email" name="email" type="email" placeholder="vas.email@mail.com" <% if (email) { %>value="<%= email %>" <% } %> required size="250" />
|
||||||
@@ -47,6 +67,7 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
$(document).ready( () => {
|
$(document).ready( () => {
|
||||||
$("#submit").click( () => {
|
$("#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,}))$/;
|
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