Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
864b917b4f | ||
|
|
a2f6f033bf | ||
|
|
64f2cb82a8 | ||
|
|
17492eb52c | ||
|
|
298c901759 | ||
|
|
c534c1ee34 | ||
|
|
2380c85122 | ||
|
|
0f7e9f9285 | ||
|
|
dee4df9bd8 | ||
|
|
4248e6304a | ||
|
|
9fd9fe8b82 | ||
|
|
467d551857 | ||
|
|
28f95b9c05 | ||
|
|
9aba66c273 | ||
|
|
d03e85a0dc | ||
|
|
9d49e72bb4 | ||
|
|
efe2dd66a3 | ||
|
|
5f2fee504a | ||
|
|
add905c793 |
11
app/config/config.json
Normal file
11
app/config/config.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"development": {
|
||||
"use_env_variable": "JAWSDB_URL"
|
||||
},
|
||||
"test": {
|
||||
"use_env_variable": "JAWSDB_URL"
|
||||
},
|
||||
"production": {
|
||||
"use_env_variable": "JAWSDB_URL"
|
||||
}
|
||||
}
|
||||
27
app/controllers/grad.js
Normal file
27
app/controllers/grad.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const db = require('../models/index');
|
||||
const { currentRERequest } = require('../helpers/url');
|
||||
const { regions } = require('../helpers/codes');
|
||||
|
||||
const gradovi = regions();
|
||||
|
||||
|
||||
const getGrad = (req,res) => {
|
||||
const nextStep = req.query.nextStep || '/';
|
||||
res.render('grad', {
|
||||
nextStep,
|
||||
gradovi
|
||||
});
|
||||
}
|
||||
|
||||
const postGrad = async (req, res) => {
|
||||
const request = await currentRERequest(req);
|
||||
const nextStep = req.query.nextStep || `/mjesto/${request.uniqueId}`;
|
||||
request.city = req.body.grad;
|
||||
await request.save();
|
||||
res.redirect(nextStep)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getGrad,
|
||||
postGrad
|
||||
};
|
||||
26
app/controllers/mjesto.js
Normal file
26
app/controllers/mjesto.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const db = require('../models/index');
|
||||
const { currentRERequest } = require('../helpers/url');
|
||||
const { places } = require('../helpers/codes');
|
||||
|
||||
const getMjesto = async (req,res) => {
|
||||
let request = await currentRERequest(req);
|
||||
const mjesta = places(request.city);
|
||||
const nextStep = req.query.nextStep || '/';
|
||||
res.render('mjesto', {
|
||||
nextStep,
|
||||
mjesta
|
||||
});
|
||||
}
|
||||
|
||||
const postMjesto = async (req, res) => {
|
||||
let request = await currentRERequest(req);
|
||||
request.place = req.body.mjesto;
|
||||
console.log("AAA ", req.body);
|
||||
await request.save();
|
||||
res.send("Result is " + JSON.stringify(request));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getMjesto,
|
||||
postMjesto
|
||||
};
|
||||
@@ -1,7 +1,35 @@
|
||||
const db = require('../models/index');
|
||||
|
||||
const vrsteNekretnina = [
|
||||
{ ime: "Kuća", id: "kuca" },
|
||||
{ ime: "Stan", id: "stan" },
|
||||
{ ime: "Vikendica", id: "vikendica" }
|
||||
];
|
||||
|
||||
|
||||
const getVrstaNekretnine = (req,res) => {
|
||||
res.render('vrsta_nekretnine', { nextStep: '/' } );
|
||||
const nextStep = req.query.nextStep;
|
||||
res.render('vrsta_nekretnine', {
|
||||
nextStep,
|
||||
vrste: vrsteNekretnina
|
||||
});
|
||||
}
|
||||
|
||||
const postVrstaNekretnine = (req, res) => {
|
||||
let nextStep = req.query.nextStep;
|
||||
|
||||
db.RealEstateRequest.create({
|
||||
realEstateType: req.body.vrsta
|
||||
}).then( (result) => {
|
||||
nextStep = nextStep || `/grad/${result.uniqueId}`;
|
||||
res.redirect(nextStep);
|
||||
}).catch( (e) => {
|
||||
res.send(e);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getVrstaNekretnine
|
||||
getVrstaNekretnine,
|
||||
postVrstaNekretnine
|
||||
};
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
const Sequelize = require("sequelize");
|
||||
const sequelize = new Sequelize(process.env.JAWSDB_URL);
|
||||
|
||||
module.exports = sequelize;
|
||||
893
app/helpers/codes.js
Normal file
893
app/helpers/codes.js
Normal file
@@ -0,0 +1,893 @@
|
||||
|
||||
|
||||
const geographies = [
|
||||
{
|
||||
"ime":" Sarajevo",
|
||||
"id":"sarajevo",
|
||||
"olxid": "9",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Hadžići",
|
||||
"id":"hadii",
|
||||
"olxid":"3817"
|
||||
},
|
||||
{
|
||||
"ime":"Ilidža",
|
||||
"id":"ilida",
|
||||
"olxid":"3879"
|
||||
},
|
||||
{
|
||||
"ime":"Ilijaš",
|
||||
"id":"ilija",
|
||||
"olxid":"3892"
|
||||
},
|
||||
{
|
||||
"ime":"Sarajevo - Centar",
|
||||
"id":"sarajevocentar",
|
||||
"olxid":"3812"
|
||||
},
|
||||
{
|
||||
"ime":"Sarajevo-Novi Grad",
|
||||
"id":"sarajevonovigrad",
|
||||
"olxid":"3969"
|
||||
},
|
||||
{
|
||||
"ime":"Sarajevo-Novo Sarajevo",
|
||||
"id":"sarajevonovosarajevo",
|
||||
"olxid":"5896"
|
||||
},
|
||||
{
|
||||
"ime":"Sarajevo-Stari Grad",
|
||||
"id":"sarajevostarigrad",
|
||||
"olxid":"4048"
|
||||
},
|
||||
{
|
||||
"ime":"Trnovo",
|
||||
"id":"trnovo",
|
||||
"olxid":"4063"
|
||||
},
|
||||
{
|
||||
"ime":"Vogošća",
|
||||
"id":"vogoa",
|
||||
"olxid":"4126"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Unsko-sanski",
|
||||
"id":"unskosanski",
|
||||
"olxid": "9",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Bihać",
|
||||
"id":"biha",
|
||||
"olxid":"75"
|
||||
},
|
||||
{
|
||||
"ime":"Bosanska Krupa",
|
||||
"id":"bosanskakrupa",
|
||||
"olxid":"373"
|
||||
},
|
||||
{
|
||||
"ime":"Bosanski Petrovac",
|
||||
"id":"bosanskipetrovac",
|
||||
"olxid":"504"
|
||||
},
|
||||
{
|
||||
"ime":"Bužim",
|
||||
"id":"buim",
|
||||
"olxid":"374"
|
||||
},
|
||||
{
|
||||
"ime":"Cazin",
|
||||
"id":"cazin",
|
||||
"olxid":"857"
|
||||
},
|
||||
{
|
||||
"ime":"Ključ",
|
||||
"id":"klju",
|
||||
"olxid":"2362"
|
||||
},
|
||||
{
|
||||
"ime":"Sanski Most",
|
||||
"id":"sanskimost",
|
||||
"olxid":"3738"
|
||||
},
|
||||
{
|
||||
"ime":"Velika Kladuša",
|
||||
"id":"velikakladua",
|
||||
"olxid":"5122"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Posavski",
|
||||
"id":"posavski",
|
||||
"olxid": "15",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Domaljevac",
|
||||
"id":"domaljevac",
|
||||
"olxid":"6144"
|
||||
},
|
||||
{
|
||||
"ime":"Odžak",
|
||||
"id":"odak",
|
||||
"olxid":"424"
|
||||
},
|
||||
{
|
||||
"ime":"Orašje",
|
||||
"id":"oraje",
|
||||
"olxid":"3252"
|
||||
},
|
||||
{
|
||||
"ime":"Šamac",
|
||||
"id":"amac",
|
||||
"olxid":"540"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Tuzlanski",
|
||||
"id":"tuzlanski",
|
||||
"olxid": "15",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Banovići",
|
||||
"id":"banovii",
|
||||
"olxid":"2"
|
||||
},
|
||||
{
|
||||
"ime":"Doboj-Istok",
|
||||
"id":"dobojistok",
|
||||
"olxid":"1090"
|
||||
},
|
||||
{
|
||||
"ime":"Gradačac",
|
||||
"id":"gradaac",
|
||||
"olxid":"1854"
|
||||
},
|
||||
{
|
||||
"ime":"Gračanica",
|
||||
"id":"graanica",
|
||||
"olxid":"1826"
|
||||
},
|
||||
{
|
||||
"ime":"Kalesija",
|
||||
"id":"kalesija",
|
||||
"olxid":"2129"
|
||||
},
|
||||
{
|
||||
"ime":"Kladanj",
|
||||
"id":"kladanj",
|
||||
"olxid":"2319"
|
||||
},
|
||||
{
|
||||
"ime":"Lukavac",
|
||||
"id":"lukavac",
|
||||
"olxid":"2840"
|
||||
},
|
||||
{
|
||||
"ime":"Sapna",
|
||||
"id":"sapna",
|
||||
"olxid":"5699"
|
||||
},
|
||||
{
|
||||
"ime":"Srebrenik",
|
||||
"id":"srebrenik",
|
||||
"olxid":"4391"
|
||||
},
|
||||
{
|
||||
"ime":"Teočak",
|
||||
"id":"teoak",
|
||||
"olxid":"5010"
|
||||
},
|
||||
{
|
||||
"ime":"Tuzla",
|
||||
"id":"tuzla",
|
||||
"olxid":"4944"
|
||||
},
|
||||
{
|
||||
"ime":"Čelić",
|
||||
"id":"eli",
|
||||
"olxid":"2801"
|
||||
},
|
||||
{
|
||||
"ime":"Živinice",
|
||||
"id":"ivinice",
|
||||
"olxid":"5774"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Zeničko-dobojski",
|
||||
"id":"zenickodobojski",
|
||||
"olxid": "15",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Breza",
|
||||
"id":"breza",
|
||||
"olxid":"704"
|
||||
},
|
||||
{
|
||||
"ime":"Doboj-Jug",
|
||||
"id":"dobojjug",
|
||||
"olxid":"1122"
|
||||
},
|
||||
{
|
||||
"ime":"Kakanj",
|
||||
"id":"kakanj",
|
||||
"olxid":"2022"
|
||||
},
|
||||
{
|
||||
"ime":"Maglaj",
|
||||
"id":"maglaj",
|
||||
"olxid":"2941"
|
||||
},
|
||||
{
|
||||
"ime":"Olovo",
|
||||
"id":"olovo",
|
||||
"olxid":"1925"
|
||||
},
|
||||
{
|
||||
"ime":"Tešanj",
|
||||
"id":"teanj",
|
||||
"olxid":"4594"
|
||||
},
|
||||
{
|
||||
"ime":"Usora",
|
||||
"id":"usora",
|
||||
"olxid":"1087"
|
||||
},
|
||||
{
|
||||
"ime":"Vareš",
|
||||
"id":"vare",
|
||||
"olxid":"5037"
|
||||
},
|
||||
{
|
||||
"ime":"Visoko",
|
||||
"id":"visoko",
|
||||
"olxid":"5171"
|
||||
},
|
||||
{
|
||||
"ime":"Zavidovići",
|
||||
"id":"zavidovii",
|
||||
"olxid":"5548"
|
||||
},
|
||||
{
|
||||
"ime":"Zenica",
|
||||
"id":"zenica",
|
||||
"olxid":"4571"
|
||||
},
|
||||
{
|
||||
"ime":"Žepče",
|
||||
"id":"epe",
|
||||
"olxid":"2940"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Bosansko-podrinjski",
|
||||
"id":"bosanskopodrinjski",
|
||||
"olxid": "15",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Foča",
|
||||
"id":"foa",
|
||||
"olxid":"1289"
|
||||
},
|
||||
{
|
||||
"ime":"Goražde",
|
||||
"id":"gorade",
|
||||
"olxid":"1588"
|
||||
},
|
||||
{
|
||||
"ime":"Pale",
|
||||
"id":"pale",
|
||||
"olxid":"3546"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Srednjobosanski",
|
||||
"id":"srednjobosanski",
|
||||
"olxid": "6",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Bugojno",
|
||||
"id":"bugojno",
|
||||
"olxid":"732"
|
||||
},
|
||||
{
|
||||
"ime":"Busovača",
|
||||
"id":"busovaa",
|
||||
"olxid":"810"
|
||||
},
|
||||
{
|
||||
"ime":"Dobretići",
|
||||
"id":"dobretii",
|
||||
"olxid":"4151"
|
||||
},
|
||||
{
|
||||
"ime":"Donji Vakuf",
|
||||
"id":"donjivakuf",
|
||||
"olxid":"1160"
|
||||
},
|
||||
{
|
||||
"ime":"Fojnica",
|
||||
"id":"fojnica",
|
||||
"olxid":"1407"
|
||||
},
|
||||
{
|
||||
"ime":"Gornji Vakuf - Uskoplje",
|
||||
"id":"gornjivakufuskoplje",
|
||||
"olxid":"1775"
|
||||
},
|
||||
{
|
||||
"ime":"Jajce",
|
||||
"id":"jajce",
|
||||
"olxid":"1960"
|
||||
},
|
||||
{
|
||||
"ime":"Kiseljak",
|
||||
"id":"kiseljak",
|
||||
"olxid":"2237"
|
||||
},
|
||||
{
|
||||
"ime":"Kreševo",
|
||||
"id":"kreevo",
|
||||
"olxid":"2608"
|
||||
},
|
||||
{
|
||||
"ime":"Novi Travnik",
|
||||
"id":"novitravnik",
|
||||
"olxid":"3477"
|
||||
},
|
||||
{
|
||||
"ime":"Travnik",
|
||||
"id":"travnik",
|
||||
"olxid":"4678"
|
||||
},
|
||||
{
|
||||
"ime":"Vitez",
|
||||
"id":"vitez",
|
||||
"olxid":"5422"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Hercegovačko-neretvanski",
|
||||
"id":"hercegovackoneretvanski",
|
||||
"olxid": "7",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Grad Mostar",
|
||||
"id":"gradmostar",
|
||||
"olxid":"3017"
|
||||
},
|
||||
{
|
||||
"ime":"Jablanica",
|
||||
"id":"jablanica",
|
||||
"olxid":"1930"
|
||||
},
|
||||
{
|
||||
"ime":"Konjic",
|
||||
"id":"konjic",
|
||||
"olxid":"2169"
|
||||
},
|
||||
{
|
||||
"ime":"Neum",
|
||||
"id":"neum",
|
||||
"olxid":"3111"
|
||||
},
|
||||
{
|
||||
"ime":"Prozor",
|
||||
"id":"prozor",
|
||||
"olxid":"3421"
|
||||
},
|
||||
{
|
||||
"ime":"Ravno",
|
||||
"id":"ravno",
|
||||
"olxid":"4769"
|
||||
},
|
||||
{
|
||||
"ime":"Stolac",
|
||||
"id":"stolac",
|
||||
"olxid":"4439"
|
||||
},
|
||||
{
|
||||
"ime":"Čapljina",
|
||||
"id":"apljina",
|
||||
"olxid":"947"
|
||||
},
|
||||
{
|
||||
"ime":"Čitluk",
|
||||
"id":"itluk",
|
||||
"olxid":"1009"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Zapadno-hercegovački",
|
||||
"id":"zapadnohercegovacki",
|
||||
"olxid": "8",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Grude",
|
||||
"id":"grude",
|
||||
"olxid":"1892"
|
||||
},
|
||||
{
|
||||
"ime":"Ljubuški",
|
||||
"id":"ljubuki",
|
||||
"olxid":"2905"
|
||||
},
|
||||
{
|
||||
"ime":"Posušje",
|
||||
"id":"posuje",
|
||||
"olxid":"3268"
|
||||
},
|
||||
{
|
||||
"ime":"Široki Brijeg",
|
||||
"id":"irokibrijeg",
|
||||
"olxid":"2708"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Livanjski",
|
||||
"id":"livanjski",
|
||||
"olxid": "10",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Bosansko Grahovo",
|
||||
"id":"bosanskograhovo",
|
||||
"olxid":"560"
|
||||
},
|
||||
{
|
||||
"ime":"Drvar",
|
||||
"id":"drvar",
|
||||
"olxid":"4640"
|
||||
},
|
||||
{
|
||||
"ime":"Glamoč",
|
||||
"id":"glamo",
|
||||
"olxid":"1533"
|
||||
},
|
||||
{
|
||||
"ime":"Kupres",
|
||||
"id":"kupres",
|
||||
"olxid":"2635"
|
||||
},
|
||||
{
|
||||
"ime":"Livno",
|
||||
"id":"livno",
|
||||
"olxid":"2741"
|
||||
},
|
||||
{
|
||||
"ime":"Tomislavgrad",
|
||||
"id":"tomislavgrad",
|
||||
"olxid":"1228"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Banjalučka",
|
||||
"id":"banjalučka",
|
||||
"olxid": "14",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Banja Luka",
|
||||
"id":"banjaluka",
|
||||
"olxid":"21"
|
||||
},
|
||||
{
|
||||
"ime":"Gradiška",
|
||||
"id":"gradika",
|
||||
"olxid":"305"
|
||||
},
|
||||
{
|
||||
"ime":"Istočni Drvar",
|
||||
"id":"istonidrvar",
|
||||
"olxid":"4662"
|
||||
},
|
||||
{
|
||||
"ime":"Jezero",
|
||||
"id":"jezero",
|
||||
"olxid":"1965"
|
||||
},
|
||||
{
|
||||
"ime":"Kneževo",
|
||||
"id":"kneevo",
|
||||
"olxid":"4147"
|
||||
},
|
||||
{
|
||||
"ime":"Kostajnica",
|
||||
"id":"kostajnica",
|
||||
"olxid":"6142"
|
||||
},
|
||||
{
|
||||
"ime":"Kotor Varoš",
|
||||
"id":"kotorvaro",
|
||||
"olxid":"2574"
|
||||
},
|
||||
{
|
||||
"ime":"Kozarska Dubica",
|
||||
"id":"kozarskadubica",
|
||||
"olxid":"244"
|
||||
},
|
||||
{
|
||||
"ime":"Krupa na uni",
|
||||
"id":"krupanauni",
|
||||
"olxid":"382"
|
||||
},
|
||||
{
|
||||
"ime":"Kupres ",
|
||||
"id":"kupres",
|
||||
"olxid":"2654"
|
||||
},
|
||||
{
|
||||
"ime":"Laktaši",
|
||||
"id":"laktai",
|
||||
"olxid":"2671"
|
||||
},
|
||||
{
|
||||
"ime":"Mrkonjić Grad",
|
||||
"id":"mrkonjigrad",
|
||||
"olxid":"3073"
|
||||
},
|
||||
{
|
||||
"ime":"Novi Grad",
|
||||
"id":"novigrad",
|
||||
"olxid":"444"
|
||||
},
|
||||
{
|
||||
"ime":"Oštra Luka",
|
||||
"id":"otraluka",
|
||||
"olxid":"3737"
|
||||
},
|
||||
{
|
||||
"ime":"Petrovac",
|
||||
"id":"petrovac",
|
||||
"olxid":"515"
|
||||
},
|
||||
{
|
||||
"ime":"Prijedor",
|
||||
"id":"prijedor",
|
||||
"olxid":"3287"
|
||||
},
|
||||
{
|
||||
"ime":"Prnjavor",
|
||||
"id":"prnjavor",
|
||||
"olxid":"3358"
|
||||
},
|
||||
{
|
||||
"ime":"Ribnik",
|
||||
"id":"ribnik",
|
||||
"olxid":"2365"
|
||||
},
|
||||
{
|
||||
"ime":"Srbac",
|
||||
"id":"srbac",
|
||||
"olxid":"4271"
|
||||
},
|
||||
{
|
||||
"ime":"Čelinac",
|
||||
"id":"elinac",
|
||||
"olxid":"979"
|
||||
},
|
||||
{
|
||||
"ime":"Šipovo",
|
||||
"id":"ipovo",
|
||||
"olxid":"4509"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Dobojsko-Bijeljinska",
|
||||
"id":"dobojskobijeljinska",
|
||||
"olxid": "15",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Bijeljina",
|
||||
"id":"bijeljina",
|
||||
"olxid":"123"
|
||||
},
|
||||
{
|
||||
"ime":"Bosanski Brod",
|
||||
"id":"bosanskibrod",
|
||||
"olxid":"421"
|
||||
},
|
||||
{
|
||||
"ime":"Derventa",
|
||||
"id":"derventa",
|
||||
"olxid":"1030"
|
||||
},
|
||||
{
|
||||
"ime":"Doboj",
|
||||
"id":"doboj",
|
||||
"olxid":"1088"
|
||||
},
|
||||
{
|
||||
"ime":"Donji Žabar",
|
||||
"id":"donjiabar",
|
||||
"olxid":"3254"
|
||||
},
|
||||
{
|
||||
"ime":"Lopare",
|
||||
"id":"lopare",
|
||||
"olxid":"2800"
|
||||
},
|
||||
{
|
||||
"ime":"Lukavac",
|
||||
"id":"lukavac",
|
||||
"olxid":"6029"
|
||||
},
|
||||
{
|
||||
"ime":"Modriča",
|
||||
"id":"modria",
|
||||
"olxid":"2996"
|
||||
},
|
||||
{
|
||||
"ime":"Pelagićevo",
|
||||
"id":"pelagievo",
|
||||
"olxid":"1856"
|
||||
},
|
||||
{
|
||||
"ime":"Petrovo",
|
||||
"id":"petrovo",
|
||||
"olxid":"1827"
|
||||
},
|
||||
{
|
||||
"ime":"Stanari",
|
||||
"id":"stanari",
|
||||
"olxid":"1148"
|
||||
},
|
||||
{
|
||||
"ime":"Teslić",
|
||||
"id":"tesli",
|
||||
"olxid":"4549"
|
||||
},
|
||||
{
|
||||
"ime":"Tešanj",
|
||||
"id":"teanj",
|
||||
"olxid":"4636"
|
||||
},
|
||||
{
|
||||
"ime":"Travnik",
|
||||
"id":"travnik",
|
||||
"olxid":"4692"
|
||||
},
|
||||
{
|
||||
"ime":"Tuzla",
|
||||
"id":"tuzla",
|
||||
"olxid":"4966"
|
||||
},
|
||||
{
|
||||
"ime":"Ugljevik",
|
||||
"id":"ugljevik",
|
||||
"olxid":"5009"
|
||||
},
|
||||
{
|
||||
"ime":"Vukosavlje",
|
||||
"id":"vukosavlje",
|
||||
"olxid":"3197"
|
||||
},
|
||||
{
|
||||
"ime":"Šamac",
|
||||
"id":"amac",
|
||||
"olxid":"539"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Sarajevsko-Zvornička",
|
||||
"id":"sarajevskozvornicka",
|
||||
"olxid": "16",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Bratunac",
|
||||
"id":"bratunac",
|
||||
"olxid":"595"
|
||||
},
|
||||
{
|
||||
"ime":"Han Pijesak",
|
||||
"id":"hanpijesak",
|
||||
"olxid":"1904"
|
||||
},
|
||||
{
|
||||
"ime":"Ilijaš",
|
||||
"id":"ilija",
|
||||
"olxid":"3947"
|
||||
},
|
||||
{
|
||||
"ime":"Istočni Stari Grad",
|
||||
"id":"istonistarigrad",
|
||||
"olxid":"4049"
|
||||
},
|
||||
{
|
||||
"ime":"Kasindo",
|
||||
"id":"kasindo",
|
||||
"olxid":"3880"
|
||||
},
|
||||
{
|
||||
"ime":"Kladanj",
|
||||
"id":"kladanj",
|
||||
"olxid":"2325"
|
||||
},
|
||||
{
|
||||
"ime":"Lukavica",
|
||||
"id":"lukavica",
|
||||
"olxid":"3971"
|
||||
},
|
||||
{
|
||||
"ime":"Milići",
|
||||
"id":"milii",
|
||||
"olxid":"6143"
|
||||
},
|
||||
{
|
||||
"ime":"Olovo",
|
||||
"id":"olovo",
|
||||
"olxid":"3221"
|
||||
},
|
||||
{
|
||||
"ime":"Osmaci",
|
||||
"id":"osmaci",
|
||||
"olxid":"2128"
|
||||
},
|
||||
{
|
||||
"ime":"Pale",
|
||||
"id":"pale",
|
||||
"olxid":"3978"
|
||||
},
|
||||
{
|
||||
"ime":"Rogatica",
|
||||
"id":"rogatica",
|
||||
"olxid":"3529"
|
||||
},
|
||||
{
|
||||
"ime":"Rudo",
|
||||
"id":"rudo",
|
||||
"olxid":"3648"
|
||||
},
|
||||
{
|
||||
"ime":"Sarajevo-Novi Grad",
|
||||
"id":"sarajevonovigrad",
|
||||
"olxid":"6069"
|
||||
},
|
||||
{
|
||||
"ime":"Sokolac",
|
||||
"id":"sokolac",
|
||||
"olxid":"4183"
|
||||
},
|
||||
{
|
||||
"ime":"Srebrenica",
|
||||
"id":"srebrenica",
|
||||
"olxid":"4310"
|
||||
},
|
||||
{
|
||||
"ime":"Trnovo",
|
||||
"id":"trnovo",
|
||||
"olxid":"4067"
|
||||
},
|
||||
{
|
||||
"ime":"Ustiprača",
|
||||
"id":"ustipraa",
|
||||
"olxid":"1593"
|
||||
},
|
||||
{
|
||||
"ime":"Višegrad",
|
||||
"id":"viegrad",
|
||||
"olxid":"5259"
|
||||
},
|
||||
{
|
||||
"ime":"Vlasenica",
|
||||
"id":"vlasenica",
|
||||
"olxid":"5456"
|
||||
},
|
||||
{
|
||||
"ime":"Zvornik",
|
||||
"id":"zvornik",
|
||||
"olxid":"5684"
|
||||
},
|
||||
{
|
||||
"ime":"Šekovići",
|
||||
"id":"ekovii",
|
||||
"olxid":"4475"
|
||||
},
|
||||
{
|
||||
"ime":"Žepa",
|
||||
"id":"epa",
|
||||
"olxid":"1906"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":" Trebinjsko-Fočanska",
|
||||
"id":"trebinjskofocanska",
|
||||
"olxid": "17",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Berkovići",
|
||||
"id":"berkovii",
|
||||
"olxid":"4441"
|
||||
},
|
||||
{
|
||||
"ime":"Bileća",
|
||||
"id":"bilea",
|
||||
"olxid":"183"
|
||||
},
|
||||
{
|
||||
"ime":"Foča",
|
||||
"id":"foa",
|
||||
"olxid":"1287"
|
||||
},
|
||||
{
|
||||
"ime":"Gacko",
|
||||
"id":"gacko",
|
||||
"olxid":"1462"
|
||||
},
|
||||
{
|
||||
"ime":"Istočni Mostar",
|
||||
"id":"istonimostar",
|
||||
"olxid":"3038"
|
||||
},
|
||||
{
|
||||
"ime":"Kalinovik",
|
||||
"id":"kalinovik",
|
||||
"olxid":"2164"
|
||||
},
|
||||
{
|
||||
"ime":"Ljubinje",
|
||||
"id":"ljubinje",
|
||||
"olxid":"2884"
|
||||
},
|
||||
{
|
||||
"ime":"Nevesinje",
|
||||
"id":"nevesinje",
|
||||
"olxid":"3138"
|
||||
},
|
||||
{
|
||||
"ime":"Trebinje",
|
||||
"id":"trebinje",
|
||||
"olxid":"4766"
|
||||
},
|
||||
{
|
||||
"ime":"Čajniče",
|
||||
"id":"ajnie",
|
||||
"olxid":"911"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ime":"Distrikt Brčko",
|
||||
"id":"distriktbrcko",
|
||||
"olxid": "12",
|
||||
"mjesta":[
|
||||
{
|
||||
"ime":"Brčko",
|
||||
"id":"brko",
|
||||
"olxid":"12"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
const regions = () => {
|
||||
return geographies.map( (g) => ({ ime: g.ime, id: g.id, olxid: g.olxid }) );
|
||||
}
|
||||
|
||||
const places = (regionId) => {
|
||||
for (geo of geographies) {
|
||||
if(geo.id === regionId) {
|
||||
return geo.mjesta;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
regions,
|
||||
places
|
||||
}
|
||||
14
app/helpers/url.js
Normal file
14
app/helpers/url.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const db = require('../models/index');
|
||||
|
||||
const currentRERequest = async (req) => {
|
||||
const uniqueId = req.params['request_id'];
|
||||
if(!uniqueId) return null;
|
||||
|
||||
const request = await db.RealEstateRequest.findOne({ where: {uniqueId} });
|
||||
console.log("Request ", request);
|
||||
return request;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
currentRERequest
|
||||
}
|
||||
34
app/migrations/20190417035319-create-market-alert.js
Normal file
34
app/migrations/20190417035319-create-market-alert.js
Normal file
@@ -0,0 +1,34 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.createTable('MarketAlerts', {
|
||||
id: {
|
||||
allowNull: false,
|
||||
autoIncrement: true,
|
||||
primaryKey: true,
|
||||
type: Sequelize.INTEGER
|
||||
},
|
||||
olxUrl: {
|
||||
type: Sequelize.STRING
|
||||
},
|
||||
lastDate: {
|
||||
type: Sequelize.STRING
|
||||
},
|
||||
email: {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
createdAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
},
|
||||
updatedAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
}
|
||||
});
|
||||
},
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.dropTable('MarketAlerts');
|
||||
}
|
||||
};
|
||||
34
app/migrations/20190417035707-create-real-estate-request.js
Normal file
34
app/migrations/20190417035707-create-real-estate-request.js
Normal file
@@ -0,0 +1,34 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.createTable('RealEstateRequests', {
|
||||
id: {
|
||||
allowNull: false,
|
||||
autoIncrement: true,
|
||||
primaryKey: true,
|
||||
type: Sequelize.INTEGER
|
||||
},
|
||||
uniqueId: {
|
||||
type: Sequelize.UUID
|
||||
},
|
||||
realEstateType: {
|
||||
type: Sequelize.ENUM,
|
||||
values: ['kuca','stan','vikendica','plac','poslovni_prostor','apartman','garaza']
|
||||
},
|
||||
email: {
|
||||
type: Sequelize.STRING
|
||||
},
|
||||
createdAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
},
|
||||
updatedAt: {
|
||||
allowNull: false,
|
||||
type: Sequelize.DATE
|
||||
}
|
||||
});
|
||||
},
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.dropTable('RealEstateRequests');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.addColumn(
|
||||
'RealEstateRequests',
|
||||
'city',
|
||||
Sequelize.STRING
|
||||
);
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.removeColumn(
|
||||
'RealEstateRequests',
|
||||
'city'
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
return queryInterface.addColumn(
|
||||
'RealEstateRequests',
|
||||
'place',
|
||||
Sequelize.STRING
|
||||
);
|
||||
},
|
||||
|
||||
down: (queryInterface, Sequelize) => {
|
||||
return queryInterface.removeColumn(
|
||||
'RealEstateRequests',
|
||||
'place'
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -1,17 +0,0 @@
|
||||
const Sequelize = require("sequelize");
|
||||
const sequelize = require("../db/db");
|
||||
const MarketAlert = sequelize.define("market_alert", {
|
||||
id: {
|
||||
type: Sequelize.INTEGER,
|
||||
autoIncrement: true,
|
||||
primaryKey: true
|
||||
},
|
||||
olx_url: Sequelize.STRING,
|
||||
last_date: Sequelize.STRING,
|
||||
email: {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = MarketAlert;
|
||||
37
app/models/index.js
Normal file
37
app/models/index.js
Normal file
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const Sequelize = require('sequelize');
|
||||
const basename = path.basename(__filename);
|
||||
const env = process.env.NODE_ENV || 'development';
|
||||
const config = require(__dirname + '/../config/config.json')[env];
|
||||
const db = {};
|
||||
|
||||
let sequelize;
|
||||
if (config.use_env_variable) {
|
||||
sequelize = new Sequelize(process.env[config.use_env_variable], config);
|
||||
} else {
|
||||
sequelize = new Sequelize(config.database, config.username, config.password, config);
|
||||
}
|
||||
|
||||
fs
|
||||
.readdirSync(__dirname)
|
||||
.filter(file => {
|
||||
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
|
||||
})
|
||||
.forEach(file => {
|
||||
const model = sequelize['import'](path.join(__dirname, file));
|
||||
db[model.name] = model;
|
||||
});
|
||||
|
||||
Object.keys(db).forEach(modelName => {
|
||||
if (db[modelName].associate) {
|
||||
db[modelName].associate(db);
|
||||
}
|
||||
});
|
||||
|
||||
db.sequelize = sequelize;
|
||||
db.Sequelize = Sequelize;
|
||||
|
||||
module.exports = db;
|
||||
15
app/models/marketalert.js
Normal file
15
app/models/marketalert.js
Normal file
@@ -0,0 +1,15 @@
|
||||
'use strict';
|
||||
module.exports = (sequelize, DataTypes) => {
|
||||
const MarketAlert = sequelize.define('MarketAlert', {
|
||||
olxUrl: DataTypes.STRING,
|
||||
lastDate: DataTypes.STRING,
|
||||
email: {
|
||||
type: DataTypes.STRING,
|
||||
allowNul: false
|
||||
}
|
||||
}, {});
|
||||
MarketAlert.associate = function(models) {
|
||||
// associations can be defined here
|
||||
};
|
||||
return MarketAlert;
|
||||
};
|
||||
21
app/models/realestaterequest.js
Normal file
21
app/models/realestaterequest.js
Normal file
@@ -0,0 +1,21 @@
|
||||
'use strict';
|
||||
module.exports = (sequelize, DataTypes) => {
|
||||
const RealEstateRequest = sequelize.define('RealEstateRequest', {
|
||||
uniqueId: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
allowNull: false
|
||||
},
|
||||
realEstateType: {
|
||||
type: DataTypes.ENUM,
|
||||
values: ['kuca','stan','vikendica','plac','poslovni_prostor','apartman','garaza']
|
||||
},
|
||||
email: DataTypes.STRING,
|
||||
city: DataTypes.STRING,
|
||||
place: DataTypes.STRING,
|
||||
}, {});
|
||||
RealEstateRequest.associate = function(models) {
|
||||
// associations can be defined here
|
||||
};
|
||||
return RealEstateRequest;
|
||||
};
|
||||
BIN
app/public/images/logo.png
Normal file
BIN
app/public/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
11
app/public/main.css
Normal file
11
app/public/main.css
Normal file
@@ -0,0 +1,11 @@
|
||||
.dobrodosli-center-button {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dobrodosli-big-logo {
|
||||
font-size: 200pt;
|
||||
background-image: url(./images/logo.png);
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
@@ -1,3 +1,17 @@
|
||||
|
||||
<a href="<%= nextStep %>"><button>Kreni</button></a>
|
||||
|
||||
<!-- -->
|
||||
<div class="row center-align">
|
||||
<span class="dobrodosli-big-logo">🤙</span>
|
||||
</div>
|
||||
<div class="row center-align">
|
||||
<div>Sve nekretnine dostupne u oglasima.</div>
|
||||
<div> Na vaš email. </div>
|
||||
<div> BESPLATNO </div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col s6 push-s3">
|
||||
<a href="<%= nextStep %>" class="dobrodosli-center-button waves-effect waves-light btn">
|
||||
Javi mi
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
25
app/views/grad.ejs
Normal file
25
app/views/grad.ejs
Normal file
@@ -0,0 +1,25 @@
|
||||
<div class="row center-align">
|
||||
<h2>U kojoj regiji tražite nekretninu?</h2>
|
||||
</div>
|
||||
|
||||
<form method="POST" id="form-grad">
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(const grad of gradovi) { %>
|
||||
<li class="collection-item" > <div id="<%= grad.id %>" ><%= grad.ime %><a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<input type="hidden" name="grad" id="grad" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(document).ready( () => {
|
||||
$(".collection-item").click( (e) => {
|
||||
const clickedId = $(e.target).attr("id");
|
||||
$("#grad").val(clickedId);
|
||||
$("#form-grad").submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
<!doctype>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
|
||||
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
|
||||
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="stylesheet" href="/assets/main.css">
|
||||
</head>
|
||||
<body>
|
||||
Something in your body:
|
||||
|
||||
|
||||
<%-body%>
|
||||
<div class="container">
|
||||
<%-body%>
|
||||
</div>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
25
app/views/mjesto.ejs
Normal file
25
app/views/mjesto.ejs
Normal file
@@ -0,0 +1,25 @@
|
||||
<div class="row center-align">
|
||||
<h2>U kojem mjestu tražite nekretninu?</h2>
|
||||
</div>
|
||||
|
||||
<form method="POST" id="form-mjesto">
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(const mjesto of mjesta) { %>
|
||||
<li class="collection-item" > <div id="<%= mjesto.id %>" ><%= mjesto.ime %><a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<input type="hidden" name="mjesto" id="mjesto" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(document).ready( () => {
|
||||
$(".collection-item").click( (e) => {
|
||||
const clickedId = $(e.target).attr("id");
|
||||
$("#mjesto").val(clickedId);
|
||||
$("#form-mjesto").submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,3 +1,29 @@
|
||||
<div class="row center-align">
|
||||
<h2>Koju nekretninu tražite?</h2>
|
||||
</div>
|
||||
|
||||
<form method="POST" id="form-vrsta">
|
||||
<div class="row center-align">
|
||||
<ul class="collection with-header">
|
||||
<% for(let vrsta of vrste) { %>
|
||||
<li class="collection-item" > <div id="<%= vrsta.id %>" ><%= vrsta.ime %><a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<input type="hidden" name="vrsta" id="vrsta" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(document).ready( () => {
|
||||
$(".collection-item").click( (e) => {
|
||||
const clickedId = $(e.target).attr("id");
|
||||
$("#vrsta").val(clickedId);
|
||||
$("#form-vrsta").submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="<%= nextStep %>"> >>> </a>
|
||||
|
||||
|
||||
25
index.js
25
index.js
@@ -1,13 +1,15 @@
|
||||
const dobrodosli = require('./app/controllers/dobrodosli').getDobrodosli;
|
||||
const getVrstaNekretnine = require('./app/controllers/vrsta_nekretnine').getVrstaNekretnine;
|
||||
const { getVrstaNekretnine, postVrstaNekretnine} = require('./app/controllers/vrsta_nekretnine');
|
||||
const { getGrad, postGrad } = require('./app/controllers/grad');
|
||||
const { getMjesto, postMjesto } = require('./app/controllers/mjesto');
|
||||
|
||||
let express = require("express");
|
||||
const path = require("path");
|
||||
const bodyParser = require("body-parser");
|
||||
const MarketAlert = require("./app/models/MarketAlert");
|
||||
const MarketAlert = require("./app/models/marketalert");
|
||||
const sendNotification = require("./app/lib/sendnotification");
|
||||
const scrapTheItems = require("./app/lib/scraptheitems");
|
||||
const sequelize = require("./app/db/db");
|
||||
const sequelize = require("./app/models/index").sequelize;
|
||||
const Twocheckout = require("2checkout-node");
|
||||
const layout = require('express-layout');
|
||||
|
||||
@@ -21,6 +23,8 @@ app.set('views', path.join(__dirname, '/app/views'));
|
||||
app.set('view engine', 'ejs');
|
||||
app.use(layout());
|
||||
|
||||
const compression = require('compression');
|
||||
app.use(compression());
|
||||
|
||||
app.get("/api/sendnotifications", async function(req, res) {
|
||||
let marketAlerts = await MarketAlert.findAll();
|
||||
@@ -105,6 +109,19 @@ app.post("/api/payforalert", function(request, response) {
|
||||
});
|
||||
|
||||
app.get('/', dobrodosli);
|
||||
app.get('/vrstanekretnine', getVrstaNekretnine);
|
||||
app.get('/vrstanekretnine/:request_id', getVrstaNekretnine);
|
||||
app.get('/vrstanekretnine', getVrstaNekretnine);
|
||||
|
||||
app.post('/vrstanekretnine/:request_id', postVrstaNekretnine);
|
||||
app.post('/vrstanekretnine', postVrstaNekretnine);
|
||||
|
||||
app.get('/grad/:request_id', getGrad);
|
||||
app.post('/grad/:request_id', postGrad);
|
||||
|
||||
app.get('/mjesto/:request_id', getMjesto);
|
||||
app.post('/mjesto/:request_id', postMjesto);
|
||||
|
||||
|
||||
app.use('/assets', express.static('./app/public'))
|
||||
|
||||
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
|
||||
|
||||
766
package-lock.json
generated
766
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -5,8 +5,7 @@
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node ./index.js",
|
||||
"heroku-postbuild": "cd frontend-react && npm install && npm run build"
|
||||
"start": "node ./index.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -22,6 +21,7 @@
|
||||
"@sendgrid/mail": "^6.3.1",
|
||||
"aws-sdk": "^2.422.0",
|
||||
"cheerio": "^1.0.0-rc.2",
|
||||
"compression": "^1.7.4",
|
||||
"ejs": "^2.6.1",
|
||||
"express": "^4.16.4",
|
||||
"express-ejs-layouts": "^2.5.0",
|
||||
@@ -29,6 +29,7 @@
|
||||
"mysql2": "^1.6.4",
|
||||
"node-fetch": "^2.3.0",
|
||||
"react-step-wizard": "^5.1.0",
|
||||
"sequelize": "^4.42.0"
|
||||
"sequelize": "^4.42.0",
|
||||
"sequelize-cli": "^5.4.0"
|
||||
}
|
||||
}
|
||||
|
||||
389
tools/kantoni.html
Normal file
389
tools/kantoni.html
Normal file
@@ -0,0 +1,389 @@
|
||||
<!DOCTYPE>
|
||||
<html>
|
||||
<head>
|
||||
<script src="https://code.jquery.com/jquery-3.4.0.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<select name="kanton" id="kanton" class="drop-select" onchange="pronadji_gradove()">
|
||||
<option value="">Iz svih lokacija</option>
|
||||
|
||||
<option value="" disabled="">Federacija BiH</option>
|
||||
<option value="9"> Sarajevo</option>
|
||||
<option value="3"> Tuzlanski</option>
|
||||
<option value="4"> Zeničko-Dobojski</option>
|
||||
<option value="1"> Unsko-Sanski</option>
|
||||
<option value="2"> Posavski</option>
|
||||
<option value="5"> Bosansko-podrinjski</option>
|
||||
<option value="6"> Srednjobosanski</option>
|
||||
<option value="7"> Hercegovačko-Neretvanski</option>
|
||||
<option value="8"> Zapadno-Hercegovački</option>
|
||||
<option value="10"> Livanjski</option>
|
||||
|
||||
<option value="" disabled="">Republika Srpska</option>
|
||||
<option value="14"> Banjalučka</option>
|
||||
<option value="15"> Dobojsko-Bijeljinska</option>
|
||||
<option value="16"> Sarajevsko-Zvornička</option>
|
||||
<option value="17"> Trebinjsko-Fočanska</option>
|
||||
|
||||
<option value="12">Disktrikt Brčko</option>
|
||||
</select>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="unskosanski" id="unskosanski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="75">Bihać</option>
|
||||
<option value="373">Bosanska Krupa</option>
|
||||
<option value="504">Bosanski Petrovac</option>
|
||||
<option value="374">Bužim</option>
|
||||
<option value="857">Cazin</option>
|
||||
<option value="2362">Ključ</option>
|
||||
<option value="3738">Sanski Most</option>
|
||||
<option value="5122">Velika Kladuša</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="posavski" id="posavski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="6144">Domaljevac</option>
|
||||
<option value="424">Odžak</option>
|
||||
<option value="3252">Orašje</option>
|
||||
<option value="540">Šamac</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="tuzlanski" id="tuzlanski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="2">Banovići</option>
|
||||
<option value="1090">Doboj-Istok</option>
|
||||
<option value="1854">Gradačac</option>
|
||||
<option value="1826">Gračanica</option>
|
||||
<option value="2129">Kalesija</option>
|
||||
<option value="2319">Kladanj</option>
|
||||
<option value="2840">Lukavac</option>
|
||||
<option value="5699">Sapna</option>
|
||||
<option value="4391">Srebrenik</option>
|
||||
<option value="5010">Teočak</option>
|
||||
<option value="4944">Tuzla</option>
|
||||
<option value="2801">Čelić</option>
|
||||
<option value="5774">Živinice</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="zenickodobojski" id="zenickodobojski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="704">Breza</option>
|
||||
<option value="1122">Doboj-Jug</option>
|
||||
<option value="2022">Kakanj</option>
|
||||
<option value="2941">Maglaj</option>
|
||||
<option value="1925">Olovo</option>
|
||||
<option value="4594">Tešanj</option>
|
||||
<option value="1087">Usora</option>
|
||||
<option value="5037">Vareš</option>
|
||||
<option value="5171">Visoko</option>
|
||||
<option value="5548">Zavidovići</option>
|
||||
<option value="4571">Zenica</option>
|
||||
<option value="2940">Žepče</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="bosanskopodrinjski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="1289">Foča</option>
|
||||
<option value="1588">Goražde</option>
|
||||
<option value="3546">Pale</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="srednjobosanski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="732">Bugojno</option>
|
||||
<option value="810">Busovača</option>
|
||||
<option value="4151">Dobretići</option>
|
||||
<option value="1160">Donji Vakuf</option>
|
||||
<option value="1407">Fojnica</option>
|
||||
<option value="1775">Gornji Vakuf - Uskoplje</option>
|
||||
<option value="1960">Jajce</option>
|
||||
<option value="2237">Kiseljak</option>
|
||||
<option value="2608">Kreševo</option>
|
||||
<option value="3477">Novi Travnik</option>
|
||||
<option value="4678">Travnik</option>
|
||||
<option value="5422">Vitez</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="hercegovackoneretvanski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="3017">Grad Mostar</option>
|
||||
<option value="1930">Jablanica</option>
|
||||
<option value="2169">Konjic</option>
|
||||
<option value="3111">Neum</option>
|
||||
<option value="3421">Prozor</option>
|
||||
<option value="4769">Ravno</option>
|
||||
<option value="4439">Stolac</option>
|
||||
<option value="947">Čapljina</option>
|
||||
<option value="1009">Čitluk</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="zapadnohercegovacki" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="1892">Grude</option>
|
||||
<option value="2905">Ljubuški</option>
|
||||
<option value="3268">Posušje</option>
|
||||
<option value="2708">Široki Brijeg</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="sarajevo" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="3817">Hadžići</option>
|
||||
<option value="3879">Ilidža</option>
|
||||
<option value="3892">Ilijaš</option>
|
||||
<option value="3812">Sarajevo - Centar</option>
|
||||
<option value="3969">Sarajevo-Novi Grad</option>
|
||||
<option value="5896">Sarajevo-Novo Sarajevo</option>
|
||||
<option value="4048">Sarajevo-Stari Grad</option>
|
||||
<option value="4063">Trnovo</option>
|
||||
<option value="4126">Vogošća</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="livanjski" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="560">Bosansko Grahovo</option>
|
||||
<option value="4640">Drvar</option>
|
||||
<option value="1533">Glamoč</option>
|
||||
<option value="2635">Kupres</option>
|
||||
<option value="2741">Livno</option>
|
||||
<option value="1228">Tomislavgrad</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="grad11" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="645">distriktbrcko</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="banjalučka" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="21">Banja Luka</option>
|
||||
<option value="305">Gradiška</option>
|
||||
<option value="4662">Istočni Drvar</option>
|
||||
<option value="1965">Jezero</option>
|
||||
<option value="4147">Kneževo</option>
|
||||
<option value="6142">Kostajnica</option>
|
||||
<option value="2574">Kotor Varoš</option>
|
||||
<option value="244">Kozarska Dubica</option>
|
||||
<option value="382">Krupa na uni</option>
|
||||
<option value="2654">Kupres </option>
|
||||
<option value="2671">Laktaši</option>
|
||||
<option value="3073">Mrkonjić Grad</option>
|
||||
<option value="444">Novi Grad</option>
|
||||
<option value="3737">Oštra Luka</option>
|
||||
<option value="515">Petrovac</option>
|
||||
<option value="3287">Prijedor</option>
|
||||
<option value="3358">Prnjavor</option>
|
||||
<option value="2365">Ribnik</option>
|
||||
<option value="4271">Srbac</option>
|
||||
<option value="979">Čelinac</option>
|
||||
<option value="4509">Šipovo</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="dobojskobijeljinska" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="123">Bijeljina</option>
|
||||
<option value="421">Bosanski Brod</option>
|
||||
<option value="1030">Derventa</option>
|
||||
<option value="1088">Doboj</option>
|
||||
<option value="3254">Donji Žabar</option>
|
||||
<option value="2800">Lopare</option>
|
||||
<option value="6029">Lukavac</option>
|
||||
<option value="2996">Modriča</option>
|
||||
<option value="1856">Pelagićevo</option>
|
||||
<option value="1827">Petrovo</option>
|
||||
<option value="1148">Stanari</option>
|
||||
<option value="4549">Teslić</option>
|
||||
<option value="4636">Tešanj</option>
|
||||
<option value="4692">Travnik</option>
|
||||
<option value="4966">Tuzla</option>
|
||||
<option value="5009">Ugljevik</option>
|
||||
<option value="3197">Vukosavlje</option>
|
||||
<option value="539">Šamac</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="sarajevskozvornicka" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="595">Bratunac</option>
|
||||
<option value="1904">Han Pijesak</option>
|
||||
<option value="3947">Ilijaš</option>
|
||||
<option value="4049">Istočni Stari Grad</option>
|
||||
<option value="3880">Kasindo</option>
|
||||
<option value="2325">Kladanj</option>
|
||||
<option value="3971">Lukavica</option>
|
||||
<option value="6143">Milići</option>
|
||||
<option value="3221">Olovo</option>
|
||||
<option value="2128">Osmaci</option>
|
||||
<option value="3978">Pale</option>
|
||||
<option value="3529">Rogatica</option>
|
||||
<option value="3648">Rudo</option>
|
||||
<option value="6069">Sarajevo-Novi Grad</option>
|
||||
<option value="4183">Sokolac</option>
|
||||
<option value="4310">Srebrenica</option>
|
||||
<option value="4067">Trnovo</option>
|
||||
<option value="1593">Ustiprača</option>
|
||||
<option value="5259">Višegrad</option>
|
||||
<option value="5456">Vlasenica</option>
|
||||
<option value="5684">Zvornik</option>
|
||||
<option value="4475">Šekovići</option>
|
||||
<option value="1906">Žepa</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="height:40px;">
|
||||
|
||||
<span class="drop-container" style="width: 168px;">
|
||||
<span class="drop-label">Mjesto</span><span class="drop-arrow"></span>
|
||||
<select name="" id="trebinjskofocanska" class="drop-select" onchange="stavi_grad()">
|
||||
<option value="0">Mjesto</option>
|
||||
<option value="4441">Berkovići</option>
|
||||
<option value="183">Bileća</option>
|
||||
<option value="1287">Foča</option>
|
||||
<option value="1462">Gacko</option>
|
||||
<option value="3038">Istočni Mostar</option>
|
||||
<option value="2164">Kalinovik</option>
|
||||
<option value="2884">Ljubinje</option>
|
||||
<option value="3138">Nevesinje</option>
|
||||
<option value="4766">Trebinje</option>
|
||||
<option value="911">Čajniče</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
const stavi_grad = () => {};
|
||||
const gradovi = [
|
||||
{"ime":" Sarajevo","id":"sarajevo"},
|
||||
{"ime":" Unsko-sanski","id":"unskosanski"},
|
||||
{"ime":" Posavski","id":"posavski"},
|
||||
{"ime":" Tuzlanski","id":"tuzlanski"},
|
||||
{"ime":" Zeničko-dobojski","id":"zenickodobojski"},
|
||||
{"ime":" Bosansko-podrinjski","id":"bosanskopodrinjski"},
|
||||
{"ime":" Srednjobosanski","id":"srednjobosanski"},
|
||||
{"ime":" Hercegovačko-neretvanski","id":"hercegovackoneretvanski"},
|
||||
{"ime":" Zapadno-hercegovački","id":"zapadnohercegovacki"},
|
||||
{"ime":" Livanjski","id":"livanjski"},
|
||||
{"ime":" Banjalučka","id":"banjalučka"},
|
||||
{"ime":" Dobojsko-Bijeljinska","id":"dobojskobijeljinska"},
|
||||
{"ime":" Sarajevsko-Zvornička","id":"sarajevskozvornicka"},
|
||||
{"ime":" Trebinjsko-Fočanska","id":"trebinjskofocanska"},
|
||||
{"ime":"Distrikt Brčko","id":"distriktbrcko"},
|
||||
];
|
||||
|
||||
for (let grad of gradovi) {
|
||||
const mjesta = [];
|
||||
$('#' + grad.id).children().each( function() {
|
||||
const mjesto = $(this).text();
|
||||
mjesta.push( {
|
||||
ime: mjesto,
|
||||
id: mjesto.toLowerCase().replace(/[^a-z]/g,''),
|
||||
olxid: $(this).val()
|
||||
});
|
||||
});
|
||||
grad.mjesta = mjesta;
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(gradovi));
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user