1new QRCode(document.getElementById("qrcode"), document.getElementById('secret').innerText)
2
3let scanner = new Instascan.Scanner({ video: document.getElementById('preview') })
4scanner.addListener('scan', submitCode)
5
6Instascan.Camera.getCameras()
7 .then(function (cameras) {
8 if (cameras.length > 0) {
9 var camIndex = 0
10 $.each(cameras, (i, c) => {
11 if (c.name.indexOf('back') != -1) {
12 camIndex = i
13 return false
14 }
15 })
16 scanner.start(cameras[camIndex])
17 }
18 setCamera(cameras.length > 0)
19 }).catch(function (e) {
20 setCamera(false)
21 })
22
23function setCamera(isCamera) {
24 $('#manual').attr('hidden', isCamera)
25 $('#auto').attr('hidden', !isCamera)
26}
27function submitCode(secret) {
28 secret = secret || $('#code').val()
29 fetch('kill.php', {
30 method: 'POST',
31 body: JSON.stringify({"secret":secret}),
32 credentials: "same-origin"
33 })
34 .then(resp => resp.json())
35 .then(handleKill)
36 .catch(err => alert('Något gick fel. ' + err))
37}
38
39function handleKill(resp) { // det hette qrkill förut, heheheh
40 if(resp.error) {
41 $('#modal-title').text('Fel...')
42 $('#modal-message').text(resp.error)
43 } else if(resp.success) {
44 $('#modal-title').text('Grattis!')
45 $('#modal-message').text(resp.success)
46 }
47 $('#qrtag-modal').modal()
48}
49
50// Jag är inte stolt över detta
51function checkAlive() {
52 fetch('alive.php', {
53 credentials: "same-origin"
54 })
55 .then(resp => resp.json())
56 .then(json => {
57 if(json.alive != '1') location.reload()
58 })
59}
60
61setInterval(checkAlive, 1000 * 10)