feat: module toggles in POS config and Instance Manager

- Add GET/PUT /pos/api/config/modules endpoints in POS config_bp.py
- Update sidebar.js to filter nav items based on enabled modules
- Add Modules section to POS config.html with toggles for WhatsApp, Marketplace, MercadoLibre
- Add module load/save logic to POS config.js
- Preload modules in app-init.js for sidebar caching

- Add tenant module management to Instance Manager
  - get_tenant_modules / update_tenant_modules in tenant_service.py
  - GET/PUT /api/tenants/<id>/modules endpoints in tenants_bp.py
  - Add modules modal to manager index.html
  - Add module editing UI and logic to manager.js
  - Add toggle-switch CSS to manager.css
This commit is contained in:
2026-05-28 00:21:52 +00:00
parent 999591e248
commit 718fa06888
26 changed files with 2614 additions and 429 deletions

View File

@@ -251,7 +251,58 @@
</div>
<!-- ===============================================================
SECTION 3: USUARIOS Y PERMISOS
SECTION 3: MÓDULOS E INTEGRACIONES
=============================================================== -->
<div class="settings-section">
<div class="settings-section__header">
<div class="settings-section__icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg>
</div>
<div>
<div class="settings-section__title">Módulos e Integraciones</div>
<div class="settings-section__desc">Activa o desactiva funcionalidades del menú para este tenant</div>
</div>
</div>
<div class="settings-card">
<div class="toggle-row">
<div class="toggle-row__info">
<span class="toggle-row__label">WhatsApp</span>
<span class="toggle-row__desc">Mostrar el menú de WhatsApp Bridge y chat</span>
</div>
<label class="toggle">
<input type="checkbox" id="cfg-module-whatsapp" checked />
<span class="toggle__slider"></span>
</label>
</div>
<div class="toggle-row">
<div class="toggle-row__info">
<span class="toggle-row__label">Marketplace</span>
<span class="toggle-row__desc">Mostrar el menú de Marketplace interno</span>
</div>
<label class="toggle">
<input type="checkbox" id="cfg-module-marketplace" checked />
<span class="toggle__slider"></span>
</label>
</div>
<div class="toggle-row">
<div class="toggle-row__info">
<span class="toggle-row__label">MercadoLibre</span>
<span class="toggle-row__desc">Mostrar el menú de integración con MercadoLibre</span>
</div>
<label class="toggle">
<input type="checkbox" id="cfg-module-meli" checked />
<span class="toggle__slider"></span>
</label>
</div>
<div style="margin-top:var(--space-4);text-align:right;">
<button class="btn btn--primary" onclick="Config.saveModules()">Guardar módulos</button>
</div>
</div>
</div>
<!-- ===============================================================
SECTION 4: USUARIOS Y PERMISOS
=============================================================== -->
<div class="settings-section">
<div class="settings-section__header">