source: src/main/resources/static/js/index.js@ 743de55

Last change on this file since 743de55 was 743de55, checked in by macagaso <gasoskamarija@…>, 6 weeks ago

Initial commit

  • Property mode set to 100644
File size: 3.5 KB
Line 
1import { verificationCheck } from "./authentication-shared.js";
2
3function toggleForm(formId, show) {
4 const form = document.getElementById(formId);
5 form.style.display = show ? 'flex' : 'none';
6 document.body.style.overflow = show ? 'hidden' : 'auto';
7 }
8
9function updateUIBasedOnRole(role) {
10 if (role === 'ADMIN') {
11 window.location.href = 'admin.html';
12
13 } else if (role === 'USER') {
14 document.getElementById('adminSection').style.display = 'none';
15 document.getElementById('userSection').style.display = 'block';
16 }
17
18}
19
20function setupFormHandlers(buttonId, formId, closeBtnId) {
21 document.getElementById(buttonId).addEventListener('click', function() {
22 toggleForm(formId, true);
23 });
24
25 document.getElementById(closeBtnId).addEventListener('click', function() {
26 toggleForm(formId, false);
27 });
28 window.addEventListener('click', function(event) {
29 if (event.target === document.getElementById(formId)) {
30 toggleForm(formId, false);
31 }
32 });
33}
34
35document.getElementById('signInForm').addEventListener('submit', async function (event) {
36 event.preventDefault();
37 const formData = new FormData(event.target);
38
39 const data = {};
40 formData.forEach((value, key) => {
41 data[key] = value;
42 });
43
44 let res = await verificationCheck(data);
45 if (!res) {
46 return;
47 }
48 console.log(data);
49 fetch('/api/users/signIn', {
50 method: 'POST',
51 headers: {
52 'Content-Type': 'application/json',
53 },
54 body: JSON.stringify(data),
55 })
56 .then(response => {
57 if (!response.ok) {
58 return response.json().then(errorData => {
59 throw new Error(errorData.error || 'Unknown error');
60 });
61 }
62 return response.json();
63 })
64 .then(data => {
65 console.log(data.message); // Handle success message
66 })
67 .catch(error => {
68 console.error('Error:', error);
69 });
70});
71
72document.getElementById('loginForm').addEventListener('submit', function(event) {
73 event.preventDefault();
74 const formData = new FormData(event.target);
75 const data = {};
76 formData.forEach((value, key) => {
77 data[key] = value;
78 });
79
80 fetch('/api/auth/login', {
81 method: 'POST',
82 headers: {
83 'Content-Type': 'application/json',
84 },
85 body: JSON.stringify(data),
86 })
87 .then(response => {
88 if (!response.ok) {
89 return response.json().then(errorData => {
90 alert(errorData.message || 'Unknown error');
91 throw new Error(errorData.message || 'Unknown error');
92 });
93 }
94 return response.json();
95 })
96 .then(data => {
97 console.log('Parsed data:', data);
98 if (data.success) {
99 const name=data.name;
100 const surname=data.surname;
101 const personalisedSection=document.getElementById("personalised");
102 personalisedSection.innerHTML=`Добредојде, ${name} ${surname}!`;
103 updateUIBasedOnRole(data.userRole);
104 }
105 })
106 .catch(error => {
107 console.error('Error:', error);
108 })
109 .finally(() => {
110 // Close the form after handling the response
111 toggleForm('loginForm', false);
112 });
113});
114
115setupFormHandlers('loginBtn', 'loginForm', 'closeBtn');
116setupFormHandlers('signInBtn', 'signInForm', 'closeSignInBtn');
Note: See TracBrowser for help on using the repository browser.