Spaces:
Sleeping
Sleeping
| /** | |
| * Profile Page Logic - Aadhaar Pro | |
| */ | |
| document.addEventListener('DOMContentLoaded', () => { | |
| initProfilePage(); | |
| }); | |
| function initProfilePage() { | |
| loadProfile(); | |
| setupProfileForm(); | |
| } | |
| /** | |
| * Fetch user info and populate both card and form | |
| */ | |
| async function loadProfile() { | |
| try { | |
| const res = await fetch('/api/user/info'); | |
| const user = await res.json(); | |
| // Update Summary Card | |
| const summaryName = document.getElementById('left-user-name'); | |
| const summaryRole = document.getElementById('left-user-role'); | |
| const summaryEmail = document.getElementById('left-user-email'); | |
| const summaryPhone = document.getElementById('left-user-phone'); | |
| const summaryAddress = document.getElementById('left-user-address'); | |
| if (summaryName) summaryName.innerText = user.name || 'User'; | |
| if (summaryRole) summaryRole.innerText = (user.role || 'retailer').toUpperCase(); | |
| if (summaryEmail) summaryEmail.innerText = user.email || 'Email not set'; | |
| if (summaryPhone) summaryPhone.innerText = user.phone || 'N/A'; | |
| if (summaryAddress) summaryAddress.innerText = user.address || 'Address not set'; | |
| // Update Edit Form | |
| const inputName = document.getElementById('prof-name'); | |
| const inputEmail = document.getElementById('prof-email'); | |
| const inputPhone = document.getElementById('prof-phone'); | |
| const inputRole = document.getElementById('prof-role'); | |
| const inputAddress = document.getElementById('prof-address'); | |
| if (inputName) inputName.value = user.name || ''; | |
| if (inputEmail) inputEmail.value = user.email || ''; | |
| if (inputPhone) inputPhone.value = user.phone || ''; | |
| if (inputRole) inputRole.value = (user.role || '').toUpperCase(); | |
| if (inputAddress) inputAddress.value = user.address || ''; | |
| } catch (err) { | |
| console.error('Error loading profile:', err); | |
| } | |
| } | |
| /** | |
| * Handle form submission | |
| */ | |
| function setupProfileForm() { | |
| const form = document.getElementById('profile-form'); | |
| if (!form) return; | |
| form.addEventListener('submit', async (e) => { | |
| e.preventDefault(); | |
| const data = { | |
| name: document.getElementById('prof-name').value, | |
| email: document.getElementById('prof-email').value, | |
| address: document.getElementById('prof-address').value | |
| }; | |
| try { | |
| const res = await fetch('/api/profile/update', { | |
| method: 'POST', | |
| headers: { 'Content-Type': 'application/json' }, | |
| body: JSON.stringify(data) | |
| }); | |
| const resData = await res.json(); | |
| if (resData.success) { | |
| alert('Profile updated successfully!'); | |
| loadProfile(); // Refresh UI | |
| } else { | |
| alert('Failed to update profile: ' + (resData.error || 'Unknown error')); | |
| } | |
| } catch (err) { | |
| console.error('Update fail:', err); | |
| alert('An error occurred during profile update.'); | |
| } | |
| }); | |
| } | |