mirror of
https://github.com/TheGreyDiamond/elevatormapRewritten.git
synced 2025-07-18 02:23:50 +02:00
Fixed middelware, put createElevator code into new file, fixed greeting format
This commit is contained in:
152
index.ts
152
index.ts
@ -32,81 +32,7 @@ logger.add(
|
|||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
app.use(express.static("static"));
|
|
||||||
|
|
||||||
app.use(bodyParser.urlencoded({ extended: false }));
|
|
||||||
app.use(bodyParser.json());
|
|
||||||
|
|
||||||
app.use(function (req, res, next) {
|
|
||||||
const pathesWhichRequireDB = ["map", "login", "register"];
|
|
||||||
const pathesWhichRequireLogin = ["createElevator"];
|
|
||||||
const path = req.path
|
|
||||||
const pathesDes = path.split("/")
|
|
||||||
let requiresDB = false;
|
|
||||||
let requiresLogin = false;
|
|
||||||
let allowContinue = true;
|
|
||||||
console.log(pathesDes)
|
|
||||||
|
|
||||||
if (pathesWhichRequireLogin.indexOf(pathesDes[1]) > -1) {
|
|
||||||
requiresLogin = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pathesDes[1] == "api") {
|
|
||||||
requiresDB = true;
|
|
||||||
}
|
|
||||||
if (pathesWhichRequireDB.indexOf(pathesDes[1]) > -1) {
|
|
||||||
requiresDB = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (requiresDB) {
|
|
||||||
if (!mysqlIsUpAndOkay) {
|
|
||||||
allowContinue = false;
|
|
||||||
const data = fs.readFileSync("templates/dbError.html", "utf8");
|
|
||||||
let displayText =
|
|
||||||
"This might be an artifact of a recent restart. Maybe wait a few minutes and reload this page.";
|
|
||||||
if (startUpTime + 60 <= Math.floor(new Date().getTime() / 1000)) {
|
|
||||||
displayText =
|
|
||||||
"The server failed to connect to the MySQL server. This means it was unable to load any data.";
|
|
||||||
}
|
|
||||||
if (mySQLstate == 1) {
|
|
||||||
displayText =
|
|
||||||
"There is a problem with the database servers setup. Please check the log for more info.";
|
|
||||||
}
|
|
||||||
|
|
||||||
res.send(
|
|
||||||
Eta.render(data, {
|
|
||||||
author: metainfo.author,
|
|
||||||
desc: metainfo.desc,
|
|
||||||
siteTitel: metainfo.sitePrefix + "Error",
|
|
||||||
fontawesomeKey: fontawesomeKey,
|
|
||||||
displayText: displayText,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (requiresLogin) {
|
|
||||||
allowContinue = false;
|
|
||||||
const data = fs.readFileSync("templates/redirect.html", "utf8");
|
|
||||||
res.send(
|
|
||||||
Eta.render(data, {
|
|
||||||
author: metainfo.author,
|
|
||||||
desc: metainfo.desc,
|
|
||||||
siteTitel: metainfo.sitePrefix + "Redirect",
|
|
||||||
fontawesomeKey: fontawesomeKey,
|
|
||||||
url: "/login?r=" + path,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Time:', Date.now())
|
|
||||||
if (allowContinue) {
|
|
||||||
next()
|
|
||||||
} else {
|
|
||||||
console.log("Stopped further exec of route")
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
app.use(csp.contentSecurityPolicy({
|
app.use(csp.contentSecurityPolicy({
|
||||||
@ -168,6 +94,84 @@ try {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app.use(express.static("static"));
|
||||||
|
|
||||||
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
app.use(session({ secret: cookieSecret }));
|
||||||
|
app.use(function (req, res, next) {
|
||||||
|
const pathesWhichRequireDB = ["map", "login", "register"];
|
||||||
|
const pathesWhichRequireLogin = ["createElevator"];
|
||||||
|
const path = req.path
|
||||||
|
const pathesDes = path.split("/")
|
||||||
|
let requiresDB = false;
|
||||||
|
let requiresLogin = false;
|
||||||
|
let allowContinue = true;
|
||||||
|
console.log(pathesDes)
|
||||||
|
|
||||||
|
if (pathesWhichRequireLogin.indexOf(pathesDes[1]) > -1) {
|
||||||
|
requiresLogin = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pathesDes[1] == "api") {
|
||||||
|
requiresDB = true;
|
||||||
|
}
|
||||||
|
if (pathesWhichRequireDB.indexOf(pathesDes[1]) > -1) {
|
||||||
|
requiresDB = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (requiresDB) {
|
||||||
|
if (!mysqlIsUpAndOkay) {
|
||||||
|
allowContinue = false;
|
||||||
|
const data = fs.readFileSync("templates/dbError.html", "utf8");
|
||||||
|
let displayText =
|
||||||
|
"This might be an artifact of a recent restart. Maybe wait a few minutes and reload this page.";
|
||||||
|
if (startUpTime + 60 <= Math.floor(new Date().getTime() / 1000)) {
|
||||||
|
displayText =
|
||||||
|
"The server failed to connect to the MySQL server. This means it was unable to load any data.";
|
||||||
|
}
|
||||||
|
if (mySQLstate == 1) {
|
||||||
|
displayText =
|
||||||
|
"There is a problem with the database servers setup. Please check the log for more info.";
|
||||||
|
}
|
||||||
|
|
||||||
|
res.send(
|
||||||
|
Eta.render(data, {
|
||||||
|
author: metainfo.author,
|
||||||
|
desc: metainfo.desc,
|
||||||
|
siteTitel: metainfo.sitePrefix + "Error",
|
||||||
|
fontawesomeKey: fontawesomeKey,
|
||||||
|
displayText: displayText,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (requiresLogin) {
|
||||||
|
if (req.session.username == undefined) {
|
||||||
|
allowContinue = false;
|
||||||
|
const data = fs.readFileSync("templates/redirect.html", "utf8");
|
||||||
|
res.send(
|
||||||
|
Eta.render(data, {
|
||||||
|
author: metainfo.author,
|
||||||
|
desc: metainfo.desc,
|
||||||
|
siteTitel: metainfo.sitePrefix + "Redirect",
|
||||||
|
fontawesomeKey: fontawesomeKey,
|
||||||
|
url: "/login?r=" + path,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('Time:', Date.now())
|
||||||
|
if (allowContinue) {
|
||||||
|
next()
|
||||||
|
} else {
|
||||||
|
console.log("Stopped further exec of route")
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
const transport = nodemailer.createTransport({
|
const transport = nodemailer.createTransport({
|
||||||
host: mailConf.host,
|
host: mailConf.host,
|
||||||
port: mailConf.port,
|
port: mailConf.port,
|
||||||
|
@ -238,7 +238,7 @@ module.exports = function (app, con, logger, metainfo, jsonConfig) {
|
|||||||
app.get("/profile", function (req, res) {
|
app.get("/profile", function (req, res) {
|
||||||
if (req.session.username != undefined) {
|
if (req.session.username != undefined) {
|
||||||
let greeting = greetingTime(new Date());
|
let greeting = greetingTime(new Date());
|
||||||
greeting += req.session.username;
|
greeting += " " + req.session.username;
|
||||||
const hash = cryptoF
|
const hash = cryptoF
|
||||||
.createHash("md5")
|
.createHash("md5")
|
||||||
.update(req.session.mail.replace(" ", "").toLowerCase())
|
.update(req.session.mail.replace(" ", "").toLowerCase())
|
||||||
@ -299,7 +299,7 @@ module.exports = function (app, con, logger, metainfo, jsonConfig) {
|
|||||||
password != ""
|
password != ""
|
||||||
) {
|
) {
|
||||||
if (mailRegex.test(mail)) {
|
if (mailRegex.test(mail)) {
|
||||||
const stmt = "SELECT * FROM users WHERE email='?';";
|
const stmt = "SELECT * FROM users WHERE email=?;";
|
||||||
con.query(stmt, [mail], function (err, result) {
|
con.query(stmt, [mail], function (err, result) {
|
||||||
if (err) throw err; // TODO proper error page
|
if (err) throw err; // TODO proper error page
|
||||||
if (result.length == 0) {
|
if (result.length == 0) {
|
||||||
@ -414,7 +414,7 @@ module.exports = function (app, con, logger, metainfo, jsonConfig) {
|
|||||||
} else {
|
} else {
|
||||||
const emailContent =
|
const emailContent =
|
||||||
"Hi! \n You have created an account for the open elevator map. To finalize the process please verify your E-Mail adress. Use this link: http://" +
|
"Hi! \n You have created an account for the open elevator map. To finalize the process please verify your E-Mail adress. Use this link: http://" +
|
||||||
serverAdress +
|
jsonConfig.serverAdress +
|
||||||
"/verify/" +
|
"/verify/" +
|
||||||
result[0].token;
|
result[0].token;
|
||||||
transport.sendMail({
|
transport.sendMail({
|
||||||
|
267
static/js/createElevator.js
Normal file
267
static/js/createElevator.js
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
|
||||||
|
var lockMap = false;
|
||||||
|
|
||||||
|
function noRestore() {
|
||||||
|
off();
|
||||||
|
Cookies.remove("tempStore")
|
||||||
|
}
|
||||||
|
|
||||||
|
function restoreFunc() {
|
||||||
|
try {
|
||||||
|
dataBlock = JSON.parse(dataBlock)
|
||||||
|
document.getElementById("lat").value = dataBlock["lat"]
|
||||||
|
document.getElementById("lng").value = dataBlock["lng"]
|
||||||
|
document.getElementById("type").value = dataBlock["type"]
|
||||||
|
document.getElementById("visit").value = dataBlock["visit"]
|
||||||
|
document.getElementById("pepl").value = dataBlock["pepl"]
|
||||||
|
document.getElementById("weig").value = dataBlock["weig"]
|
||||||
|
document.getElementById("manuf").value = dataBlock["manuf"]
|
||||||
|
document.getElementById("model").value = dataBlock["model"]
|
||||||
|
document.getElementById("flor").value = dataBlock["flor"]
|
||||||
|
document.getElementById("description").value = dataBlock["description"]
|
||||||
|
} catch (ex) {
|
||||||
|
dataBlock = {}
|
||||||
|
}
|
||||||
|
off()
|
||||||
|
}
|
||||||
|
|
||||||
|
dataBlock = Cookies.get("tempStore");
|
||||||
|
if (dataBlock == undefined) {
|
||||||
|
dataBlock = {};
|
||||||
|
} else {
|
||||||
|
on()
|
||||||
|
}
|
||||||
|
|
||||||
|
var currentPage = 0;
|
||||||
|
function saveValues() {
|
||||||
|
dataBlock["lat"] = document.getElementById("lat").value
|
||||||
|
dataBlock["lng"] = document.getElementById("lng").value
|
||||||
|
dataBlock["type"] = document.getElementById("type").value
|
||||||
|
dataBlock["visit"] = document.getElementById("visit").value
|
||||||
|
dataBlock["pepl"] = document.getElementById("pepl").value
|
||||||
|
dataBlock["weig"] = document.getElementById("weig").value
|
||||||
|
dataBlock["manuf"] = document.getElementById("manuf").value
|
||||||
|
dataBlock["model"] = document.getElementById("model").value
|
||||||
|
dataBlock["flor"] = document.getElementById("flor").value
|
||||||
|
dataBlock["description"] = document.getElementById("description").value
|
||||||
|
Cookies.set('tempStore', JSON.stringify(dataBlock))
|
||||||
|
}
|
||||||
|
|
||||||
|
function submit() {
|
||||||
|
currentPage = 6;
|
||||||
|
updateDialog()
|
||||||
|
saveValues()
|
||||||
|
const options = {
|
||||||
|
method: 'POST',
|
||||||
|
body: JSON.stringify({})
|
||||||
|
};
|
||||||
|
|
||||||
|
fetch('/api/saveNewElevatorMeta', options)
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(response => {
|
||||||
|
console.warn("!!!!!!!!!!!!", response)
|
||||||
|
document.getElementById("imageUploadInfo").style.display = 'block';
|
||||||
|
var filesToSend = $('#myFile').prop('files').length;
|
||||||
|
var i = 0;
|
||||||
|
while (i < filesToSend) {
|
||||||
|
document.getElementById("imageUploadInfo").innerHTML = "Uploading image " + String(i) + "/" + String(filesToSend)
|
||||||
|
console.log("Files left to send: ", filesToSend - i)
|
||||||
|
var file_data = $('#myFile').prop('files')[i];
|
||||||
|
var form_data = new FormData();
|
||||||
|
form_data.append('file', file_data);
|
||||||
|
|
||||||
|
console.log(file_data)
|
||||||
|
if (String(file_data.type).includes("image/")) {
|
||||||
|
$.ajax({
|
||||||
|
url: '/api/uploadImage?id=' + response.id,
|
||||||
|
dataType: 'json',
|
||||||
|
cache: false,
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
data: form_data,
|
||||||
|
type: 'post',
|
||||||
|
success: function (data) {
|
||||||
|
alert(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log("Skipping nonimage file")
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
console.log("DONE!")
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateDialog() {
|
||||||
|
if (currentPage == 0) {
|
||||||
|
document.getElementById("step1").style.display = 'block';
|
||||||
|
document.getElementById("step2").style.display = 'none';
|
||||||
|
document.getElementById("step3").style.display = 'none';
|
||||||
|
document.getElementById("step4").style.display = 'none';
|
||||||
|
}
|
||||||
|
if (currentPage == 1) {
|
||||||
|
document.getElementById("step1").style.display = 'none';
|
||||||
|
document.getElementById("step2").style.display = 'block';
|
||||||
|
document.getElementById("step3").style.display = 'none';
|
||||||
|
document.getElementById("step4").style.display = 'none';
|
||||||
|
}
|
||||||
|
if (currentPage == 2) {
|
||||||
|
document.getElementById("step1").style.display = 'none';
|
||||||
|
document.getElementById("step2").style.display = 'none';
|
||||||
|
document.getElementById("step3").style.display = 'block';
|
||||||
|
document.getElementById("step4").style.display = 'none';
|
||||||
|
lockMap = false;
|
||||||
|
}
|
||||||
|
if (currentPage == 3) {
|
||||||
|
document.getElementById("step1").style.display = 'none';
|
||||||
|
document.getElementById("step2").style.display = 'none';
|
||||||
|
document.getElementById("step3").style.display = 'none';
|
||||||
|
document.getElementById("step4").style.display = 'block';
|
||||||
|
document.getElementById("step5").style.display = 'none';
|
||||||
|
document.getElementById("missingAlert").style.display = 'none';
|
||||||
|
lockMap = true;
|
||||||
|
}
|
||||||
|
if (currentPage == 4) {
|
||||||
|
document.getElementById("step1").style.display = 'none';
|
||||||
|
document.getElementById("step2").style.display = 'none';
|
||||||
|
document.getElementById("step3").style.display = 'none';
|
||||||
|
document.getElementById("step4").style.display = 'none';
|
||||||
|
|
||||||
|
containsEmpt = false;
|
||||||
|
for (const [key, value] of Object.entries(dataBlock)) {
|
||||||
|
if (value == "" || value == undefined) {
|
||||||
|
console.log("hi")
|
||||||
|
console.log(key, value)
|
||||||
|
containsEmpt = true;
|
||||||
|
document.getElementById("missingAlert").style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (containsEmpt == false) {
|
||||||
|
document.getElementById("missingAlert").style.display = 'none';
|
||||||
|
currentPage = 5;
|
||||||
|
}
|
||||||
|
console.log(containsEmpt);
|
||||||
|
}
|
||||||
|
if (currentPage == 5) {
|
||||||
|
document.getElementById("step1").style.display = 'none';
|
||||||
|
document.getElementById("step2").style.display = 'none';
|
||||||
|
document.getElementById("step3").style.display = 'none';
|
||||||
|
document.getElementById("step4").style.display = 'none';
|
||||||
|
document.getElementById("step5").style.display = 'block';
|
||||||
|
document.getElementById("missingAlert").style.display = 'none';
|
||||||
|
}
|
||||||
|
if (currentPage == 6) {
|
||||||
|
document.getElementById("step1").style.display = 'none';
|
||||||
|
document.getElementById("step2").style.display = 'none';
|
||||||
|
document.getElementById("step3").style.display = 'none';
|
||||||
|
document.getElementById("step4").style.display = 'none';
|
||||||
|
document.getElementById("step5").style.display = 'none';
|
||||||
|
document.getElementById("step6").style.display = 'block';
|
||||||
|
document.getElementById("missingAlert").style.display = 'none';
|
||||||
|
}
|
||||||
|
saveValues();
|
||||||
|
console.log(dataBlock)
|
||||||
|
|
||||||
|
}
|
||||||
|
function nextDialogePage() {
|
||||||
|
currentPage++;
|
||||||
|
updateDialog();
|
||||||
|
}
|
||||||
|
function prevPage() {
|
||||||
|
currentPage--;
|
||||||
|
updateDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var latElm = document.getElementById("lat");
|
||||||
|
var lngElm = document.getElementById("lng");
|
||||||
|
|
||||||
|
latElm.addEventListener('input', function (evt) {
|
||||||
|
if(!lockMap){
|
||||||
|
markers.clearLayers();
|
||||||
|
console.log(evt.target.value)
|
||||||
|
const lat = evt.target.value;
|
||||||
|
const lng = lngElm.value;
|
||||||
|
var marker = new theMarker([lat, lng])
|
||||||
|
//marker.addTo(mymap)
|
||||||
|
markers.addLayer(marker);
|
||||||
|
markers.addTo(mymap);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
lngElm.addEventListener('input', function (evt) {
|
||||||
|
if(!lockMap){
|
||||||
|
markers.clearLayers();
|
||||||
|
console.log(evt.target.value)
|
||||||
|
const lat = latElm.value;
|
||||||
|
const lng = evt.target.value;
|
||||||
|
var marker = new theMarker([lat, lng])
|
||||||
|
//marker.addTo(mymap)
|
||||||
|
markers.addLayer(marker);
|
||||||
|
markers.addTo(mymap);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var amountOfImages = 0;
|
||||||
|
var markers = L.markerClusterGroup();
|
||||||
|
slideIndex = 1;
|
||||||
|
|
||||||
|
var mymap = L.map("map").setView([51.505, -0.09], 50);
|
||||||
|
|
||||||
|
theMarker = L.Marker.extend({
|
||||||
|
options: {
|
||||||
|
id: "-1",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
function showPosition(position) {
|
||||||
|
console.log(position.coords);
|
||||||
|
|
||||||
|
mymap.setView(
|
||||||
|
new L.LatLng(position.coords.latitude, position.coords.longitude),
|
||||||
|
10
|
||||||
|
);
|
||||||
|
// mymap.setView(new L.LatLng(10.737, -73.923), 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
home()
|
||||||
|
|
||||||
|
mymap.on('click', function (e) {
|
||||||
|
if(!lockMap){
|
||||||
|
markers.clearLayers();
|
||||||
|
var coord = e.latlng;
|
||||||
|
var lat = coord.lat;
|
||||||
|
var lng = coord.lng;
|
||||||
|
var marker = new theMarker([lat, lng])
|
||||||
|
//marker.addTo(mymap)
|
||||||
|
markers.addLayer(marker);
|
||||||
|
markers.addTo(mymap);
|
||||||
|
document.getElementById("lat").value = lat
|
||||||
|
document.getElementById("lng").value = lng
|
||||||
|
console.log("You clicked the map at latitude: " + lat + " and longitude: " + lng);
|
||||||
|
}else{
|
||||||
|
console.log("The map is locked.")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function addPin(item, index) {
|
||||||
|
var marker = new theMarker([item.lat, item.lng], {
|
||||||
|
id: item.id,
|
||||||
|
}).on("click", onClick);
|
||||||
|
// var marker = new L.Marker()
|
||||||
|
//marker.addTo(mymap).on('click', onClick);
|
||||||
|
markers.on("clusterclick", function (a) {
|
||||||
|
//alert('cluster ' + a.layer.getAllChildMarkers().length);
|
||||||
|
});
|
||||||
|
markers.addLayer(marker);
|
||||||
|
}
|
||||||
|
|
@ -158,231 +158,11 @@
|
|||||||
<aside>
|
<aside>
|
||||||
<i style="color: black; cursor: pointer" class="fas fa-map-marker-alt" onclick="home()"></i>
|
<i style="color: black; cursor: pointer" class="fas fa-map-marker-alt" onclick="home()"></i>
|
||||||
</aside>
|
</aside>
|
||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
var lockMap = false;
|
|
||||||
|
|
||||||
function noRestore() {
|
|
||||||
off();
|
|
||||||
Cookies.remove("tempStore")
|
|
||||||
}
|
|
||||||
|
|
||||||
function restoreFunc() {
|
|
||||||
try {
|
|
||||||
dataBlock = JSON.parse(dataBlock)
|
|
||||||
document.getElementById("lat").value = dataBlock["lat"]
|
|
||||||
document.getElementById("lng").value = dataBlock["lng"]
|
|
||||||
document.getElementById("type").value = dataBlock["type"]
|
|
||||||
document.getElementById("visit").value = dataBlock["visit"]
|
|
||||||
document.getElementById("pepl").value = dataBlock["pepl"]
|
|
||||||
document.getElementById("weig").value = dataBlock["weig"]
|
|
||||||
document.getElementById("manuf").value = dataBlock["manuf"]
|
|
||||||
document.getElementById("model").value = dataBlock["model"]
|
|
||||||
document.getElementById("flor").value = dataBlock["flor"]
|
|
||||||
document.getElementById("description").value = dataBlock["description"]
|
|
||||||
} catch (ex) {
|
|
||||||
dataBlock = {}
|
|
||||||
}
|
|
||||||
off()
|
|
||||||
}
|
|
||||||
|
|
||||||
dataBlock = Cookies.get("tempStore");
|
|
||||||
if (dataBlock == undefined) {
|
|
||||||
dataBlock = {};
|
|
||||||
} else {
|
|
||||||
on()
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentPage = 0;
|
|
||||||
function saveValues() {
|
|
||||||
dataBlock["lat"] = document.getElementById("lat").value
|
|
||||||
dataBlock["lng"] = document.getElementById("lng").value
|
|
||||||
dataBlock["type"] = document.getElementById("type").value
|
|
||||||
dataBlock["visit"] = document.getElementById("visit").value
|
|
||||||
dataBlock["pepl"] = document.getElementById("pepl").value
|
|
||||||
dataBlock["weig"] = document.getElementById("weig").value
|
|
||||||
dataBlock["manuf"] = document.getElementById("manuf").value
|
|
||||||
dataBlock["model"] = document.getElementById("model").value
|
|
||||||
dataBlock["flor"] = document.getElementById("flor").value
|
|
||||||
dataBlock["description"] = document.getElementById("description").value
|
|
||||||
Cookies.set('tempStore', JSON.stringify(dataBlock))
|
|
||||||
}
|
|
||||||
|
|
||||||
function submit() {
|
|
||||||
currentPage = 6;
|
|
||||||
updateDialog()
|
|
||||||
saveValues()
|
|
||||||
const options = {
|
|
||||||
method: 'POST',
|
|
||||||
body: JSON.stringify({})
|
|
||||||
};
|
|
||||||
|
|
||||||
fetch('/api/saveNewElevatorMeta', options)
|
|
||||||
.then(response => response.json())
|
|
||||||
.then(response => {
|
|
||||||
console.warn("!!!!!!!!!!!!", response)
|
|
||||||
document.getElementById("imageUploadInfo").style.display = 'block';
|
|
||||||
var filesToSend = $('#myFile').prop('files').length;
|
|
||||||
var i = 0;
|
|
||||||
while (i < filesToSend) {
|
|
||||||
document.getElementById("imageUploadInfo").innerHTML = "Uploading image " + String(i) + "/" + String(filesToSend)
|
|
||||||
console.log("Files left to send: ", filesToSend - i)
|
|
||||||
var file_data = $('#myFile').prop('files')[i];
|
|
||||||
var form_data = new FormData();
|
|
||||||
form_data.append('file', file_data);
|
|
||||||
|
|
||||||
console.log(file_data)
|
|
||||||
if (String(file_data.type).includes("image/")) {
|
|
||||||
$.ajax({
|
|
||||||
url: '/api/uploadImage?id=' + response.id,
|
|
||||||
dataType: 'json',
|
|
||||||
cache: false,
|
|
||||||
contentType: false,
|
|
||||||
processData: false,
|
|
||||||
data: form_data,
|
|
||||||
type: 'post',
|
|
||||||
success: function (data) {
|
|
||||||
alert(data);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.log("Skipping nonimage file")
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
console.log("DONE!")
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
function updateDialog() {
|
|
||||||
if (currentPage == 0) {
|
|
||||||
document.getElementById("step1").style.display = 'block';
|
|
||||||
document.getElementById("step2").style.display = 'none';
|
|
||||||
document.getElementById("step3").style.display = 'none';
|
|
||||||
document.getElementById("step4").style.display = 'none';
|
|
||||||
}
|
|
||||||
if (currentPage == 1) {
|
|
||||||
document.getElementById("step1").style.display = 'none';
|
|
||||||
document.getElementById("step2").style.display = 'block';
|
|
||||||
document.getElementById("step3").style.display = 'none';
|
|
||||||
document.getElementById("step4").style.display = 'none';
|
|
||||||
}
|
|
||||||
if (currentPage == 2) {
|
|
||||||
document.getElementById("step1").style.display = 'none';
|
|
||||||
document.getElementById("step2").style.display = 'none';
|
|
||||||
document.getElementById("step3").style.display = 'block';
|
|
||||||
document.getElementById("step4").style.display = 'none';
|
|
||||||
lockMap = false;
|
|
||||||
}
|
|
||||||
if (currentPage == 3) {
|
|
||||||
document.getElementById("step1").style.display = 'none';
|
|
||||||
document.getElementById("step2").style.display = 'none';
|
|
||||||
document.getElementById("step3").style.display = 'none';
|
|
||||||
document.getElementById("step4").style.display = 'block';
|
|
||||||
document.getElementById("step5").style.display = 'none';
|
|
||||||
document.getElementById("missingAlert").style.display = 'none';
|
|
||||||
lockMap = true;
|
|
||||||
}
|
|
||||||
if (currentPage == 4) {
|
|
||||||
document.getElementById("step1").style.display = 'none';
|
|
||||||
document.getElementById("step2").style.display = 'none';
|
|
||||||
document.getElementById("step3").style.display = 'none';
|
|
||||||
document.getElementById("step4").style.display = 'none';
|
|
||||||
|
|
||||||
containsEmpt = false;
|
|
||||||
for (const [key, value] of Object.entries(dataBlock)) {
|
|
||||||
if (value == "" || value == undefined) {
|
|
||||||
console.log("hi")
|
|
||||||
console.log(key, value)
|
|
||||||
containsEmpt = true;
|
|
||||||
document.getElementById("missingAlert").style.display = 'block';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (containsEmpt == false) {
|
|
||||||
document.getElementById("missingAlert").style.display = 'none';
|
|
||||||
currentPage = 5;
|
|
||||||
}
|
|
||||||
console.log(containsEmpt);
|
|
||||||
}
|
|
||||||
if (currentPage == 5) {
|
|
||||||
document.getElementById("step1").style.display = 'none';
|
|
||||||
document.getElementById("step2").style.display = 'none';
|
|
||||||
document.getElementById("step3").style.display = 'none';
|
|
||||||
document.getElementById("step4").style.display = 'none';
|
|
||||||
document.getElementById("step5").style.display = 'block';
|
|
||||||
document.getElementById("missingAlert").style.display = 'none';
|
|
||||||
}
|
|
||||||
if (currentPage == 6) {
|
|
||||||
document.getElementById("step1").style.display = 'none';
|
|
||||||
document.getElementById("step2").style.display = 'none';
|
|
||||||
document.getElementById("step3").style.display = 'none';
|
|
||||||
document.getElementById("step4").style.display = 'none';
|
|
||||||
document.getElementById("step5").style.display = 'none';
|
|
||||||
document.getElementById("step6").style.display = 'block';
|
|
||||||
document.getElementById("missingAlert").style.display = 'none';
|
|
||||||
}
|
|
||||||
saveValues();
|
|
||||||
console.log(dataBlock)
|
|
||||||
|
|
||||||
}
|
|
||||||
function nextDialogePage() {
|
|
||||||
currentPage++;
|
|
||||||
updateDialog();
|
|
||||||
}
|
|
||||||
function prevPage() {
|
|
||||||
currentPage--;
|
|
||||||
updateDialog();
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- End Document
|
<!-- End Document
|
||||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||||
|
<script src="./js/createElevator.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var latElm = document.getElementById("lat");
|
|
||||||
var lngElm = document.getElementById("lng");
|
|
||||||
|
|
||||||
latElm.addEventListener('input', function (evt) {
|
|
||||||
if(!lockMap){
|
|
||||||
markers.clearLayers();
|
|
||||||
console.log(evt.target.value)
|
|
||||||
const lat = evt.target.value;
|
|
||||||
const lng = lngElm.value;
|
|
||||||
var marker = new theMarker([lat, lng])
|
|
||||||
//marker.addTo(mymap)
|
|
||||||
markers.addLayer(marker);
|
|
||||||
markers.addTo(mymap);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
lngElm.addEventListener('input', function (evt) {
|
|
||||||
if(!lockMap){
|
|
||||||
markers.clearLayers();
|
|
||||||
console.log(evt.target.value)
|
|
||||||
const lat = latElm.value;
|
|
||||||
const lng = evt.target.value;
|
|
||||||
var marker = new theMarker([lat, lng])
|
|
||||||
//marker.addTo(mymap)
|
|
||||||
markers.addLayer(marker);
|
|
||||||
markers.addTo(mymap);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var amountOfImages = 0;
|
|
||||||
var markers = L.markerClusterGroup();
|
|
||||||
slideIndex = 1;
|
|
||||||
|
|
||||||
var mymap = L.map("map").setView([51.505, -0.09], 50);
|
|
||||||
|
|
||||||
L.tileLayer(
|
L.tileLayer(
|
||||||
"https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=<%= it.mapboxAccessToken %>",
|
"https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=<%= it.mapboxAccessToken %>",
|
||||||
{
|
{
|
||||||
@ -395,55 +175,6 @@
|
|||||||
accessToken: "<%= it.mapboxAccessToken %>",
|
accessToken: "<%= it.mapboxAccessToken %>",
|
||||||
}
|
}
|
||||||
).addTo(mymap);
|
).addTo(mymap);
|
||||||
|
|
||||||
theMarker = L.Marker.extend({
|
|
||||||
options: {
|
|
||||||
id: "-1",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
function showPosition(position) {
|
|
||||||
console.log(position.coords);
|
|
||||||
|
|
||||||
mymap.setView(
|
|
||||||
new L.LatLng(position.coords.latitude, position.coords.longitude),
|
|
||||||
10
|
|
||||||
);
|
|
||||||
// mymap.setView(new L.LatLng(10.737, -73.923), 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
home()
|
|
||||||
|
|
||||||
mymap.on('click', function (e) {
|
|
||||||
if(!lockMap){
|
|
||||||
markers.clearLayers();
|
|
||||||
var coord = e.latlng;
|
|
||||||
var lat = coord.lat;
|
|
||||||
var lng = coord.lng;
|
|
||||||
var marker = new theMarker([lat, lng])
|
|
||||||
//marker.addTo(mymap)
|
|
||||||
markers.addLayer(marker);
|
|
||||||
markers.addTo(mymap);
|
|
||||||
document.getElementById("lat").value = lat
|
|
||||||
document.getElementById("lng").value = lng
|
|
||||||
console.log("You clicked the map at latitude: " + lat + " and longitude: " + lng);
|
|
||||||
}else{
|
|
||||||
console.log("The map is locked.")
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function addPin(item, index) {
|
|
||||||
var marker = new theMarker([item.lat, item.lng], {
|
|
||||||
id: item.id,
|
|
||||||
}).on("click", onClick);
|
|
||||||
// var marker = new L.Marker()
|
|
||||||
//marker.addTo(mymap).on('click', onClick);
|
|
||||||
markers.on("clusterclick", function (a) {
|
|
||||||
//alert('cluster ' + a.layer.getAllChildMarkers().length);
|
|
||||||
});
|
|
||||||
markers.addLayer(marker);
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user