-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
72 lines (63 loc) · 2.33 KB
/
script.js
File metadata and controls
72 lines (63 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
function showPage(pageId) {
document.querySelectorAll('.page').forEach(page => page.classList.add('hidden'));
document.getElementById(pageId).classList.remove('hidden');
}
// Login
document.querySelector('#login form').addEventListener('submit', async function(e) {
e.preventDefault();
const email = e.target.querySelector('input[type="email"]').value;
const password = e.target.querySelector('input[type="password"]').value;
const response = await fetch('http://localhost:5000/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password })
});
const data = await response.json();
if (data.success) {
localStorage.setItem('token', data.token);
showPage('dashboard');
} else {
alert("Login failed: " + data.error);
}
});
// Register
document.querySelector('#register form').addEventListener('submit', async function(e) {
e.preventDefault();
const name = e.target.querySelector('input[placeholder="Name"]').value;
const email = e.target.querySelector('input[placeholder="Email"]').value;
const password = e.target.querySelector('input[placeholder="Password"]').value;
const response = await fetch('http://localhost:5000/register', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, email, password })
});
const data = await response.json();
if (data.success) {
alert("Registration successful! Please log in.");
showPage('login');
} else {
alert("Registration failed: " + data.error);
}
});
// Add item (protected)
document.getElementById('itemForm').addEventListener('submit', async function(e) {
e.preventDefault();
const itemName = document.getElementById('itemName').value;
const token = localStorage.getItem('token');
const response = await fetch('http://localhost:5000/item', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({ itemName })
});
const data = await response.json();
if (data.success) {
document.getElementById('qrContainer').innerHTML = `
<h3>QR for ${itemName}</h3>
<img src="https://chart.googleapis.com/chart?cht=qr&chs=200x200&chl=${encodeURIComponent(data.qrCode)}" alt="QR Code">`;
} else {
alert("Failed to add item: " + data.error);
}
});