async function loadProfile(pushHistory = true) {
const view = showView('profileView');
if (!view) return;
if (pushHistory) {
const url = new URL(window.location.href);
url.searchParams.set('page', 'home');
url.searchParams.set('profile', '1');
url.searchParams.delete('task');
url.searchParams.delete('project');
url.searchParams.delete('tasks');
url.searchParams.delete('version');
url.searchParams.delete('admin');
window.history.pushState({}, '', url);
}
const userId = getCurrentUserId();
const result = await apiGet('/api/user.php', {
api: 'UserInfo',
user_id: userId,
_: Date.now()
});
if (!result.success) {
view.innerHTML = '
Could not load profile.
';
return;
}
renderProfile(result.user);
}
function renderProfile(user) {
currentProfileUser = user;
setText('profileStatus', '');
document.getElementById('profileName').value = user.name ?? '';
document.getElementById('profileEmail').value = user.email ?? '';
document.getElementById('profilePassword').value = '';
document.getElementById('profilePasswordConfirm').value = '';
document.getElementById('profileTheme').value = user.settings?.theme ?? 'dark';
document.getElementById('profileRemovePicture').checked = false;
document.getElementById('profilePictureInput').value = '';
renderProfileAvatar(user.picture);
}
function renderProfileAvatar(picture) {
const preview = document.getElementById('profileAvatarPreview');
if (!preview) return;
if (picture) {
preview.innerHTML = `
`;
return;
}
preview.innerHTML = `
`;
}