From 7cc9550031a13aa998628df9eacbdeec4bf29bfa Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Fri, 1 Nov 2019 19:21:37 +0100 Subject: [PATCH] save/load selected email frequency on query review step --- app/common/enums.js | 16 +++++++++++++- app/controllers/queryReview.js | 40 +++++++++++++++++++++++++--------- app/views/queryReview.ejs | 23 ++++++++++++++++++- 3 files changed, 67 insertions(+), 12 deletions(-) diff --git a/app/common/enums.js b/app/common/enums.js index efdbe28..942fb47 100644 --- a/app/common/enums.js +++ b/app/common/enums.js @@ -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 }; diff --git a/app/controllers/queryReview.js b/app/controllers/queryReview.js index 2b08d82..da2f42a 100644 --- a/app/controllers/queryReview.js +++ b/app/controllers/queryReview.js @@ -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; diff --git a/app/views/queryReview.ejs b/app/views/queryReview.ejs index 115b067..7e0f6e4 100644 --- a/app/views/queryReview.ejs +++ b/app/views/queryReview.ejs @@ -2,7 +2,7 @@
    - <% for(const stepData of queryReviewData) { %> + <% for(const stepData of queryReviewTableData) { %>
  • <%= stepData.title || '-' %> @@ -13,6 +13,26 @@ <% } %>
+
+
Slanje obavještenja
+ + + + + +
value="<%= email %>" <% } %> required size="250" /> @@ -47,6 +67,7 @@