QR_ScannerV1
This commit is contained in:
parent
1ca14540d6
commit
1bc67eedf2
147
index.html
147
index.html
@ -10939,49 +10939,69 @@
|
|||||||
<script type="text/javascript" src="https://unpkg.com/@zxing/library@latest"></script>
|
<script type="text/javascript" src="https://unpkg.com/@zxing/library@latest"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
function messageScan() {
|
function messageScan(userfloID, venue) {
|
||||||
|
|
||||||
// Now run a function for the next 60 seconds
|
var messageToVerify = `Authorize-${venue}`
|
||||||
|
const taskNumber = {
|
||||||
|
preevent: 1,
|
||||||
|
event: 2,
|
||||||
|
food: 3
|
||||||
|
}
|
||||||
|
const projectCode = "2020_project_1"
|
||||||
|
const branch = "branch1"
|
||||||
|
|
||||||
|
if(TEDxKanke.getAssignedInterns(projectCode, branch, taskNumber[venue])!=null && TEDxKanke.getAssignedInterns(projectCode, branch, taskNumber[venue]).includes(userfloID)){
|
||||||
|
console.log(`${userfloID} is already authorized`);
|
||||||
|
showMessege('error', `Already authorized for ${venue}`);
|
||||||
|
setTimeout(document.getElementById('authorize_btn').click(), 2000)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now run a function for the next 20 seconds
|
||||||
// Will execute myCallback every 5 seconds
|
// Will execute myCallback every 5 seconds
|
||||||
var currenttime = Date.now();
|
var currenttime = Date.now();
|
||||||
document.getElementById('result').textContent = 'Waiting 20 seconds for user authorization';
|
var maxDelay = 20000
|
||||||
var interval = setInterval(myScan, 2000, userfloID);
|
var interval = setInterval(myScan, 2500);
|
||||||
|
stopScanning()
|
||||||
|
startCountdown()
|
||||||
// fetch for details of messages
|
// fetch for details of messages
|
||||||
function myScan(userfloID) {
|
function myScan() {
|
||||||
|
|
||||||
floCloudAPI.requestApplicationData({ type: "TestMod", application: "teega", receiverID: myFloID })
|
floCloudAPI.requestApplicationData({ type: "TestMod",
|
||||||
.then(function (value) {
|
senderIDs: [userfloID],
|
||||||
//console.log(value);
|
lowerVectorClock: currenttime.toString(),
|
||||||
var a = JSON.parse(value);
|
upperVectorClock: (currenttime + maxDelay).toString()
|
||||||
//console.log(a);
|
}).then(results => {
|
||||||
console.log('the length of a is ' + Object.keys(a).length);
|
results = JSON.parse(results)
|
||||||
|
for(key in results){
|
||||||
for (var i = 0; i < Object.keys(a).length; i++) {
|
//Enters in this loop only if there is an message from the user
|
||||||
//console.log('scanning key');
|
if(results[key].message === messageToVerify){
|
||||||
//console.log(key);
|
//Authorise the floID
|
||||||
var key = Object.keys(a)[i];
|
|
||||||
key = key.split('_');
|
|
||||||
|
|
||||||
if ((key[0] - currenttime <= 60000) && (key[0] - currenttime > 0) && (key[1] == userfloID)) {
|
|
||||||
console.log('I have a message which satisfies the criteria');
|
console.log('I have a message which satisfies the criteria');
|
||||||
console.log('scanning stopped');
|
console.log('scanning stopped');
|
||||||
document.getElementById('result').textContent = `FLO-ID ${userfloID} Authorised`;
|
|
||||||
clearInterval(interval);
|
clearInterval(interval);
|
||||||
|
TEDxKanke.refreshObjectData().then(result => {
|
||||||
|
TEDxKanke.manage.assignInternToTask(userfloID, projectCode, branch, taskNumber[venue])
|
||||||
|
TEDxKanke.manage.updateObjects()
|
||||||
|
.then(result => console.log(result))
|
||||||
|
.catch(error => console.log(error))
|
||||||
|
TEDxKanke.postInternUpdate(`${userfloID} has entered ${venue}`)
|
||||||
|
}).catch(error => console.log(error))
|
||||||
|
showPage('auth_success')
|
||||||
|
showMessege('', `Authorized for ${venue}`)
|
||||||
|
setTimeout(document.getElementById('authorize_btn').click(), 2000)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Date.now() - currenttime > maxDelay) {
|
||||||
// if more than 60 seconds have passed, stop
|
//Stop the check after maxDelay
|
||||||
if (Date.now() - currenttime > 20000) {
|
showMessege('error', `Authorization failed`);
|
||||||
document.getElementById('result').textContent = `Didn't authorize FLO-ID ${userfloID} `;
|
|
||||||
console.log('scanning stopped');
|
console.log('scanning stopped');
|
||||||
clearInterval(interval);
|
clearInterval(interval);
|
||||||
|
setTimeout(document.getElementById('authorize_btn').click(), 2000)
|
||||||
}
|
}
|
||||||
});
|
}).catch(error => console.error(error))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function updatePrivKey() {
|
function updatePrivKey() {
|
||||||
@ -10991,7 +11011,6 @@
|
|||||||
function decodeOnce(codeReader, selectedDeviceId) {
|
function decodeOnce(codeReader, selectedDeviceId) {
|
||||||
codeReader.decodeFromInputVideoDevice(selectedDeviceId, 'video').then((result) => {
|
codeReader.decodeFromInputVideoDevice(selectedDeviceId, 'video').then((result) => {
|
||||||
console.log(result);
|
console.log(result);
|
||||||
//debugger;
|
|
||||||
console.log('decoded value is ');
|
console.log('decoded value is ');
|
||||||
window.decodedQr = result.text;
|
window.decodedQr = result.text;
|
||||||
|
|
||||||
@ -11002,75 +11021,17 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function decodeContinuously(codeReader, selectedDeviceId, elementID) {
|
function decodeContinuously(codeReader, selectedDeviceId, elementID, venue) {
|
||||||
let scanLine = document.getElementById('scanner_line');
|
let scanLine = document.getElementById('scanner_line');
|
||||||
codeReader.decodeFromInputVideoDeviceContinuously(selectedDeviceId, elementID, (result, err) => {
|
codeReader.decodeFromInputVideoDeviceContinuously(selectedDeviceId, elementID, (result, err) => {
|
||||||
if (result) {
|
if (result) {
|
||||||
// properly decoded qr code
|
// properly decoded qr code
|
||||||
console.log('decoded value is ' + result.text);
|
console.log('decoded value is ' + result.text);
|
||||||
window.decodedQr = result.text;
|
window.decodedQr = result.text;
|
||||||
debugger;
|
|
||||||
if (result.text.length == 34 && result.text[0] == 'F') {
|
if (result.text.length == 34 && result.text[0] == 'F') {
|
||||||
// Now run a function for the next 60 seconds
|
|
||||||
// Will execute myCallback every 5 seconds
|
|
||||||
var userfloID = result.text;
|
var userfloID = result.text;
|
||||||
var currenttime = Date.now();
|
|
||||||
var interval = setInterval(myScan, 2000);
|
|
||||||
// fetch for details of messages
|
// fetch for details of messages
|
||||||
startCountdown()
|
messageScan(userfloID, venue)
|
||||||
stopScanning()
|
|
||||||
function myScan() {
|
|
||||||
|
|
||||||
floCloudAPI.requestApplicationData({ type: "TestMod", application: "teega", receiverID: window.myFloID })
|
|
||||||
.then(function (value) {
|
|
||||||
|
|
||||||
//console.log(value);
|
|
||||||
var a = JSON.parse(value);
|
|
||||||
//console.log(a);
|
|
||||||
console.log('the length of a is ' + Object.keys(a).length);
|
|
||||||
|
|
||||||
for (var i = 0; i < Object.keys(a).length; i++) {
|
|
||||||
//console.log('scanning key');
|
|
||||||
//console.log(key);
|
|
||||||
var key = Object.keys(a)[i];
|
|
||||||
key = key.split('_');
|
|
||||||
|
|
||||||
if ((key[0] - currenttime <= 60000) && (key[0] - currenttime > 0) && (key[1] == userfloID)) {
|
|
||||||
console.log('Authorized message found');
|
|
||||||
showPage('auth_success')
|
|
||||||
setTimeout(() => {
|
|
||||||
document.getElementById('authorize_btn').click()
|
|
||||||
},2000)
|
|
||||||
//check message
|
|
||||||
var cloudObj = a[Object.keys(a)[i]];
|
|
||||||
var cloudMessage = cloudObj.message.split('-');
|
|
||||||
if (cloudMessage[1]=='preentry'){
|
|
||||||
showMessege('', `Authorized for ${cloudMessage[1]}`);
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (cloudMessage[1]=='entry'){
|
|
||||||
showMessege('', `Authorized for ${cloudMessage[1]}`);
|
|
||||||
}
|
|
||||||
else if (cloudMessage[1]=='food'){
|
|
||||||
showMessege('', `Authorized for ${cloudMessage[1]}`);
|
|
||||||
}
|
|
||||||
clearInterval(interval);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// if more than 20 seconds have passed, stop
|
|
||||||
if (Date.now() - currenttime > 20000) {
|
|
||||||
console.log('scanning stopped');
|
|
||||||
stopScanning()
|
|
||||||
showMessege('error', 'Didnt authorize flo id');
|
|
||||||
clearInterval(interval);
|
|
||||||
setTimeout(() => {
|
|
||||||
document.getElementById('authorize_btn').click()
|
|
||||||
},2000)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (result.text.length > 40) {
|
else if (result.text.length > 40) {
|
||||||
document.getElementById('qr_btn').click();
|
document.getElementById('qr_btn').click();
|
||||||
@ -11193,20 +11154,20 @@
|
|||||||
checkeditem = mainpage.children[i + 1].children[2].dataset.value;
|
checkeditem = mainpage.children[i + 1].children[2].dataset.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log(checkeditem)
|
||||||
if (checkeditem != '') {
|
if (checkeditem != '') {
|
||||||
|
|
||||||
// Check if FLO ID is admin id or user id
|
// Check if FLO ID is admin id or user id
|
||||||
let idtype = document.getElementById('floidTypeText');
|
let idtype = document.getElementById('floidTypeText');
|
||||||
|
|
||||||
if (idtype.textContent === 'admin') {
|
if (idtype.textContent === 'admin') {
|
||||||
decodeContinuously(codeReader, selectedDeviceId, 'video2')
|
decodeContinuously(codeReader, selectedDeviceId, 'video2', checkeditem)
|
||||||
showPage('admin_scanner')
|
showPage('admin_scanner')
|
||||||
scanLine.classList.add('scan')
|
scanLine.classList.add('scan')
|
||||||
console.log(`Started decode from camera with id ${selectedDeviceId}`)
|
console.log(`Started decode from camera with id ${selectedDeviceId}`)
|
||||||
}
|
}
|
||||||
else if (idtype.textContent === 'user') {
|
else if (idtype.textContent === 'user') {
|
||||||
debugger;
|
floCloudAPI.sendApplicationData(`Authorize-${checkeditem}`, "TestMod");
|
||||||
floCloudAPI.sendApplicationData(`Authorize-${checkeditem}-${myFloID}`, "TestMod", { application: "teega", receiverID: 'FK8jQufKXEsDwEgmF8vVJqHXfm2boAesj7' });
|
|
||||||
showMessege('', 'Sent Authorization message to cloud');
|
showMessege('', 'Sent Authorization message to cloud');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user