fix(admin): resolver pantalla en blanco al editar ficha de usuario (GET /admin/users/edit/:id)
This commit is contained in:
@@ -382,28 +382,63 @@ const handleUserAdd = async (req, res) => {
|
||||
title: 'Nuevo Usuario — Edu-Space Admin',
|
||||
user: null,
|
||||
roles,
|
||||
document_types
|
||||
document_types,
|
||||
error: req.query.error || null,
|
||||
msg: req.query.msg || null
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error in user add:', err.message);
|
||||
res.render('admin/users/form', { title: 'Nuevo Usuario', user: null, roles: MOCK_ROLES, document_types: [] });
|
||||
res.render('admin/users/form', {
|
||||
title: 'Nuevo Usuario — Edu-Space Admin',
|
||||
user: null,
|
||||
roles: MOCK_ROLES,
|
||||
document_types: [],
|
||||
error: req.query.error || null,
|
||||
msg: null
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const handleUserEdit = async (req, res) => {
|
||||
try {
|
||||
const { users, roles, document_types } = await fetchUsersAndRoles(req.apiClient);
|
||||
const userId = req.params.id || req.query.id;
|
||||
const targetUser = (userId ? users.find(u => String(u.id) === String(userId)) : null) || users[0] || MOCK_USERS[0];
|
||||
const { users, roles, document_types } = await fetchUsersAndRoles(req.apiClient);
|
||||
let targetUser = userId ? users.find(u => String(u.id) === String(userId)) : null;
|
||||
|
||||
// Si no se encontró en la lista general y hay userId, intentar fetch individual
|
||||
if (!targetUser && userId && req.apiClient) {
|
||||
try {
|
||||
const singleRes = await req.apiClient.get(`/users/${userId}`);
|
||||
if (singleRes.data && (singleRes.data.user || singleRes.data.data)) {
|
||||
targetUser = singleRes.data.user || singleRes.data.data;
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(`User ${userId} not found via single endpoint:`, e.message);
|
||||
}
|
||||
}
|
||||
|
||||
targetUser = targetUser || (userId ? null : users[0]) || MOCK_USERS[0];
|
||||
|
||||
const userName = targetUser ? (targetUser.name || `${targetUser.first_name || ''} ${targetUser.last_name || ''}`.trim() || targetUser.email || `Usuario #${targetUser.id}`) : 'Usuario';
|
||||
|
||||
res.render('admin/users/form', {
|
||||
title: `Editar Usuario: ${targetUser.name} — Edu-Space Admin`,
|
||||
title: `Editar Usuario: ${userName} — Edu-Space Admin`,
|
||||
user: targetUser,
|
||||
roles,
|
||||
document_types
|
||||
document_types,
|
||||
error: req.query.error || null,
|
||||
msg: req.query.msg || null
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error in user edit:', err.message);
|
||||
res.render('admin/users/form', { title: 'Editar Usuario', user: MOCK_USERS[0], roles: MOCK_ROLES, document_types: [] });
|
||||
res.render('admin/users/form', {
|
||||
title: 'Editar Usuario — Edu-Space Admin',
|
||||
user: MOCK_USERS[0],
|
||||
roles: MOCK_ROLES,
|
||||
document_types: [],
|
||||
error: 'No se pudo cargar la información del usuario.',
|
||||
msg: null
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user