save/load selected email frequency on query review step

This commit is contained in:
Bilal Catic
2019-11-01 19:21:37 +01:00
parent 1117592f4c
commit 7cc9550031
3 changed files with 67 additions and 12 deletions

View File

@@ -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
}; };

View File

@@ -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;

View File

@@ -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,}))$/;