Compare commits
1 Commits
results-li
...
sliders-fo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6725355a0 |
@@ -7,7 +7,42 @@ const PRICE_SLIDER_OPTIONS_SALE = {
|
||||
step: 1000,
|
||||
connect: true
|
||||
};
|
||||
|
||||
const FLAT_PRICE_SLIDER_OPTIONS_SALE = {
|
||||
start: [50000, 150000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [800000]
|
||||
},
|
||||
step: 5000,
|
||||
connect: true
|
||||
};
|
||||
const HOUSE_PRICE_SLIDER_OPTIONS_SALE = {
|
||||
start: [50000, 150000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [1500000]
|
||||
},
|
||||
step: 10000,
|
||||
connect: true
|
||||
};
|
||||
const OFFICE_PRICE_SLIDER_OPTIONS_SALE = {
|
||||
start: [15000, 50000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [2000000]
|
||||
},
|
||||
step: 2000,
|
||||
connect: true
|
||||
};
|
||||
const LAND_PRICE_SLIDER_OPTIONS_SALE = {
|
||||
start: [40000, 80000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [2000000]
|
||||
},
|
||||
step: 10000,
|
||||
connect: true
|
||||
};
|
||||
const PRICE_SLIDER_OPTIONS_RENT = {
|
||||
start: [300, 500],
|
||||
range: {
|
||||
@@ -17,18 +52,62 @@ const PRICE_SLIDER_OPTIONS_RENT = {
|
||||
step: 50,
|
||||
connect: true
|
||||
};
|
||||
|
||||
const FLAT_PRICE_SLIDER_OPTIONS_RENT = {
|
||||
start: [300, 600],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [4000]
|
||||
},
|
||||
step: 100,
|
||||
connect: true
|
||||
};
|
||||
const HOUSE_PRICE_SLIDER_OPTIONS_RENT = {
|
||||
start: [500, 1000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [10000]
|
||||
},
|
||||
step: 100,
|
||||
connect: true
|
||||
};
|
||||
const OFFICE_PRICE_SLIDER_OPTIONS_RENT = {
|
||||
start: [200, 1000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [20000]
|
||||
},
|
||||
step: 100,
|
||||
connect: true
|
||||
};
|
||||
const LAND_PRICE_SLIDER_OPTIONS_RENT = {
|
||||
start: [500, 1000],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [20000]
|
||||
},
|
||||
step: 100,
|
||||
connect: true
|
||||
};
|
||||
//This will be used for Flats, Apartments, Houses
|
||||
const HOME_SIZE_SLIDER_OPTIONS = {
|
||||
start: [30, 75],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [400]
|
||||
max: [500]
|
||||
},
|
||||
step: 5,
|
||||
connect: true
|
||||
};
|
||||
|
||||
const OFFICE_SIZE_SLIDER_OPTIONS = {
|
||||
start: [30, 150],
|
||||
range: {
|
||||
min: [0],
|
||||
max: [1200]
|
||||
},
|
||||
step: 10,
|
||||
connect: true
|
||||
};
|
||||
const GARDEN_SIZE_SLIDER_OPTIONS = {
|
||||
start: [100, 1000],
|
||||
range: {
|
||||
@@ -111,8 +190,8 @@ const AD_CATEGORY = {
|
||||
hasNumberOfRoom: true,
|
||||
hasNumberOfFloors: false,
|
||||
hasFloorProp: true,
|
||||
priceSliderOptionsSale: PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: PRICE_SLIDER_OPTIONS_RENT,
|
||||
priceSliderOptionsSale: FLAT_PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: FLAT_PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: HOME_SIZE_SLIDER_OPTIONS
|
||||
},
|
||||
HOUSE: {
|
||||
@@ -126,8 +205,8 @@ const AD_CATEGORY = {
|
||||
hasNumberOfRoom: true,
|
||||
hasNumberOfFloors: true,
|
||||
hasFloorProp: false,
|
||||
priceSliderOptionsSale: PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: PRICE_SLIDER_OPTIONS_RENT,
|
||||
priceSliderOptionsSale: HOUSE_PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: HOUSE_PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: HOME_SIZE_SLIDER_OPTIONS,
|
||||
gardenSizeSliderOptions: GARDEN_SIZE_SLIDER_OPTIONS
|
||||
},
|
||||
@@ -142,9 +221,9 @@ const AD_CATEGORY = {
|
||||
hasNumberOfRoom: true,
|
||||
hasNumberOfFloors: false,
|
||||
hasFloorProp: true,
|
||||
priceSliderOptionsSale: PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: HOME_SIZE_SLIDER_OPTIONS
|
||||
priceSliderOptionsSale: OFFICE_PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: OFFICE_PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: OFFICE_SIZE_SLIDER_OPTIONS
|
||||
},
|
||||
LAND: {
|
||||
id: "LAND",
|
||||
@@ -157,8 +236,8 @@ const AD_CATEGORY = {
|
||||
hasNumberOfRoom: false,
|
||||
hasNumberOfFloors: false,
|
||||
hasFloorProp: false,
|
||||
priceSliderOptionsSale: PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: PRICE_SLIDER_OPTIONS_RENT,
|
||||
priceSliderOptionsSale: LAND_PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: LAND_PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: LAND_SIZE_SLIDER_OPTIONS
|
||||
},
|
||||
APARTMENT: {
|
||||
@@ -172,8 +251,8 @@ const AD_CATEGORY = {
|
||||
hasNumberOfRoom: true,
|
||||
hasNumberOfFloors: false,
|
||||
hasFloorProp: true,
|
||||
priceSliderOptionsSale: PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: PRICE_SLIDER_OPTIONS_RENT,
|
||||
priceSliderOptionsSale: FLAT_PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: FLAT_PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: HOME_SIZE_SLIDER_OPTIONS
|
||||
},
|
||||
GARAGE: {
|
||||
@@ -202,8 +281,8 @@ const AD_CATEGORY = {
|
||||
hasNumberOfRoom: true,
|
||||
hasNumberOfFloors: true,
|
||||
hasFloorProp: false,
|
||||
priceSliderOptionsSale: PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: PRICE_SLIDER_OPTIONS_RENT,
|
||||
priceSliderOptionsSale: HOUSE_PRICE_SLIDER_OPTIONS_SALE,
|
||||
priceSliderOptionsRent: HOUSE_PRICE_SLIDER_OPTIONS_RENT,
|
||||
sizeSliderOptions: HOME_SIZE_SLIDER_OPTIONS,
|
||||
gardenSizeSliderOptions: GARDEN_SIZE_SLIDER_OPTIONS
|
||||
}
|
||||
|
||||
@@ -23,19 +23,16 @@ const generateRealEstateLinks = realEstates => {
|
||||
const generateNotificationEmail = (
|
||||
realEstates,
|
||||
searchRequestId,
|
||||
noAllRealEstates,
|
||||
dailyNotification = false
|
||||
) => {
|
||||
const truncateList = realEstates.length > MAX_REAL_ESTATES_IN_EMAIL;
|
||||
|
||||
const realEstatesToShow = truncateList
|
||||
? realEstates.slice(0, MAX_REAL_ESTATES_IN_EMAIL)
|
||||
: realEstates;
|
||||
|
||||
const allRealEstatesLink = `${APP_URL}/nekretnine/${searchRequestId}`;
|
||||
|
||||
const realEstateLinks = generateRealEstateLinks(realEstatesToShow);
|
||||
const moreRealEstates = `<div>Kompletan spisak nekretnina (${noAllRealEstates}) možete pogledati na <a href="${allRealEstatesLink}">listi nekretnina</a><div>`;
|
||||
const moreRealEstates = `<div>Kompletan spisak nekretnina možete pogledati na <a href="${allRealEstatesLink}">listi nekretnina</a><div>`;
|
||||
const emailFooter = generateEmailFooter(searchRequestId);
|
||||
const asapMessageBody =
|
||||
realEstates.length > 1
|
||||
@@ -73,7 +70,6 @@ const generateNewSearchRequestEmail = (searchRequest, matchingRealEstates) => {
|
||||
} = searchRequest;
|
||||
|
||||
const realEstateLinks = generateRealEstateLinks(matchingRealEstates);
|
||||
|
||||
const instantRealEstatesText = `<br/>
|
||||
<div>
|
||||
U međuvremenu pogledajte neke od nedavno objavljenih nekretnina koje odgovaraju Vašim uslovima pretrage :<br/>
|
||||
|
||||
@@ -154,7 +154,3 @@ h3 {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.estates-link {
|
||||
color: rgba(0, 0, 0, 0.87);
|
||||
}
|
||||
|
||||
@@ -8,10 +8,7 @@ const {
|
||||
generateNewSearchRequestEmail,
|
||||
generateEmailSubject
|
||||
} = require("../helpers/emailContentGenerator");
|
||||
const {
|
||||
findNotNotifiedMatches,
|
||||
findRealEstatesForSearchRequest
|
||||
} = require("../helpers/db/searchRequestMatch");
|
||||
const { findNotNotifiedMatches } = require("../helpers/db/searchRequestMatch");
|
||||
const { sendEmail } = require("../services/emailService");
|
||||
|
||||
const notifyForNewRealEstates = async newRealEstates => {
|
||||
@@ -42,18 +39,10 @@ const notifyMatches = async (matches, dailyNotification = false) => {
|
||||
const { email, subscribed } = searchRequest;
|
||||
if (notifyNow && subscribed) {
|
||||
const allMatchingRealEstates = matches[id].realEstates || [];
|
||||
|
||||
//Variable allMatchingRealEstates are real estates that are "new" on the market
|
||||
//the ones that we notify user in this moment, not all that already exists in db
|
||||
//New variable allRealEstates are all real estates that exists in db for search req
|
||||
const allRealEstates = await findRealEstatesForSearchRequest(id);
|
||||
const noAllRealEstates = allRealEstates.length;
|
||||
|
||||
if (allMatchingRealEstates.length > 0) {
|
||||
const emailContent = generateNotificationEmail(
|
||||
allMatchingRealEstates,
|
||||
id,
|
||||
noAllRealEstates,
|
||||
dailyNotification
|
||||
);
|
||||
const emailSubject = generateEmailSubject(
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(const realEstate of realEstates) { %>
|
||||
<li class="collection-item">
|
||||
<div>
|
||||
<a href="<%= realEstate.url %>" class="estates-link">
|
||||
<%= realEstate.title %>
|
||||
<div class="kivi-color secondary-content">
|
||||
<ul class="collection with-header">
|
||||
<% for(const realEstate of realEstates) { %>
|
||||
<li class="collection-item">
|
||||
<div><%= realEstate.title %>
|
||||
<a href="<%= realEstate.url %>" class="kivi-color secondary-content">
|
||||
<i class="material-icons">send</i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user