fine tuning ajax timing, naming, and start script

This commit is contained in:
Will Bradley 2018-09-01 12:56:18 -07:00
parent aa57b26a8b
commit 31d059972c
No known key found for this signature in database
GPG Key ID: 42BAE225DDDB7093
3 changed files with 40 additions and 26 deletions

View File

@ -6,38 +6,46 @@ $(function(){
}, 20000); }, 20000);
$("#rfid").keydown(function(event){ $("#rfid").keydown(function(event){
// cancel enter keys // prevent enter key from submitting form; we want AJAX if possible
if (event.keyCode === 13){ if (event.keyCode === 13){
return false; return false;
} }
}).keyup(function(event){
// store value // store value
value = $("#rfid").val(); value = $("#rfid").val();
// start processing after the first few chars // start processing after the enter key
if (value.length >= 5) { if (event.keyCode === 13) {
// wait to send the request for a sec to let them finish typing // wait to send the request for a sec to let them finish typing
setTimeout(function(){ setTimeout(function(){
// clear input box // clear input box
$("#rfid").val(null); $("#rfid").val(null);
// post value to server // post value to server
loading(true); loading(true);
$.post("/checkin", {"rfid":value}, function(data){ if (!window.checkinLoading) {
console.log(data); // use global var to prevent simultaneous posts
if (data.hasOwnProperty("success")) { window.checkinLoading = true;
if (data.success) { console.log("Checking in...");
success(data.name); $.post("/checkin", {"rfid":value}, function(data){
console.log(data);
if (data.hasOwnProperty("success")) {
if (data.success) {
success(data.name);
} else {
failure();
}
} else { } else {
failure(); error();
} }
} else { }, "json").fail(function(){
error(); error();
} }).always(function(){
}, "json").fail(function(){ loading(false);
error(); window.checkinLoading = false;
}).always(function(){ });
loading(false); } else {
}); console.log("Already checking in; canceled.");
}
}, 250); }, 250);
} }
}); });
@ -61,19 +69,25 @@ function reset(){
function success(name){ function success(name){
reset(); reset();
$("#name").text(name); setTimeout(function(){
$("#success").removeClass("dn"); $("#name").text(name);
setTimeout(function(){ reset(); }, 5000); $("#success").removeClass("dn");
setTimeout(function(){ reset(); }, 6000); // 6000 to match door.js(const DELAY)
}, 250);
} }
function failure(){ function failure(){
reset(); reset();
$("#failure").removeClass("dn"); setTimeout(function(){
setTimeout(function(){ reset(); }, 5000); $("#failure").removeClass("dn");
setTimeout(function(){ reset(); }, 6000); // 6000 to match door.js(const DELAY)
}, 250);
} }
function error(){ function error(){
reset(); reset();
$("#error").removeClass("dn"); setTimeout(function(){
setTimeout(function(){ reset(); }, 5000); $("#error").removeClass("dn");
setTimeout(function(){ reset(); }, 6000); // 6000 to match door.js(const DELAY)
}, 250);
} }

View File

@ -26,7 +26,7 @@ module.exports = (req, res) => {
function reponse(req,res,path,success,name=null) { function reponse(req,res,path,success,name=null) {
console.log(req.get('accept')); console.log(req.get('accept'));
if(/application\/json/.test(req.get('accept'))) { if(/application\/json/.test(req.get('accept'))) {
res.json({"success":success, "path":path}) res.json({"success":success, "path":path, "name":name})
} else { } else {
res.redirect(path) res.redirect(path)
} }

View File

@ -2,4 +2,4 @@
~/.nvm/versions/node/v10.6.0/bin/forever start --workingDir /home/pi/doorlock /home/pi/doorlock/src/server.js ~/.nvm/versions/node/v10.6.0/bin/forever start --workingDir /home/pi/doorlock /home/pi/doorlock/src/server.js
echo "Loading Browser..." echo "Loading Browser..."
sleep 5 sleep 5
chromium-browser --kiosk localhost:3000 chromium-browser --incognito --kiosk --app=http://localhost:3000