feat: nombre y logo de empresa configurables (solo dev, no desplegado a prod)

Nueva marca configurable desde Configuracion -> Empresa (solo superadmin): nombre y logo,
guardados en system_settings (mismo patron que SMTP, sin tabla nueva). Nuevo endpoint publico
GET /api/company (+ /logo) para que login/registro/recuperacion de clave puedan mostrar la marca
antes de iniciar sesion. Sin configurar, se ve "LinkedCorp" y el logo estatico de siempre.

Probado en dev (build + Playwright: panel de Configuracion, sidebar expandido/compacto, login
publico), sin desplegar a produccion por pedido explicito del usuario -- este commit sirve de
punto de control en git antes de decidir el despliegue.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-09-15 14:42:15 -05:00
parent 7ba4a89d49
commit 2a1bdf1ba9
27 changed files with 336 additions and 37 deletions
+1
View File
@@ -44,6 +44,7 @@ export const api = {
patch: (path, body) => request('PATCH', path, { body }),
delete: (path) => request('DELETE', path),
postForm: (path, formData) => request('POST', path, { body: formData, isForm: true }),
putForm: (path, formData) => request('PUT', path, { body: formData, isForm: true }),
setToken: (token) => {
if (token) localStorage.setItem('plc_token', token);
else localStorage.removeItem('plc_token');
+12
View File
@@ -0,0 +1,12 @@
import { api } from './api.js';
export const getCompanyInfo = () => api.get('/company');
export function updateCompanyInfo({ name, logoFile }) {
const form = new FormData();
if (name !== undefined) form.append('name', name);
if (logoFile) form.append('logo', logoFile);
return api.putForm('/company', form);
}
export const companyLogoUrl = () => api.downloadUrl('/company/logo');