Merge branch 'feat/prod_dev_environment' into 'main'

Feat/prod dev environment

See merge request jjimenez/safekat!764
This commit is contained in:
Ignacio Martinez Navajas
2025-05-02 10:56:25 +00:00
7 changed files with 394 additions and 343 deletions

View File

@ -30,10 +30,17 @@ class Test extends BaseController
}
private function index()
public function index()
{
$modelCL = new CatalogoLibroModel();
$this->emailService = service('emailService');
$a= $this->emailService->send('prueba', 'Esto es una prueba', ['imnavajas@coit.es','imnavajas@gmail.com']);
echo var_dump($a);
/*$modelCL = new CatalogoLibroModel();
$modelISK = new IdentificadorIskModel();
// Obtener todos los registros sin isk
@ -46,7 +53,7 @@ class Test extends BaseController
$modelCL->update($registro->id, ['isk' => $isk]);
echo "[" . $i++ . "]Asignado ISK {$isk} a ID {$registro->id}<br>";
}
}*/
}

View File

@ -13,7 +13,7 @@ class EmailService
// Si no estamos en producción, forzar el destinatario a uno fijo
if ($skEnv !== 'production') {
$recipient = 'imnavajas@coit.es'; // <-- Cambia por el correo de pruebas
$recipient = env('MAIL_DEV_RECIPIENT', 'imnavajas@coit.es'); // fallback opcional
}
$settings_model = model('App\Models\Configuracion\ConfigVariableModel');

View File

@ -5,19 +5,14 @@ $picture = "/assets/img/default-user.png";
?>
<!DOCTYPE html>
<html
lang="<?= $session->get('lang') ?>"
class="h-100 light-style layout-navbar-fixed layout-menu-fixed"
dir="ltr"
data-theme="theme-default"
data-assets-path="<?= site_url('themes/vuexy/') ?>"
<html lang="<?= $session->get('lang') ?>" class="h-100 light-style layout-navbar-fixed layout-menu-fixed" dir="ltr"
data-theme="theme-default" data-assets-path="<?= site_url('themes/vuexy/') ?>"
data-template="vertical-menu-template-no-customizer">
<head>
<meta charset="utf-8">
<meta
name="viewport"
<meta name="viewport"
content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="locale" content="<?= $session->get("lang") ?>">
@ -102,8 +97,7 @@ $picture = "/assets/img/default-user.png";
<div class="layout-page">
<!-- Navbar -->
<nav
class="layout-navbar container-fluid navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme"
<nav class="layout-navbar container-fluid navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme"
id="layout-navbar">
<div class="layout-menu-toggle navbar-nav align-items-xl-center me-3 me-xl-0 d-xl-none">
<a class="nav-item nav-link px-0 me-xl-4" href="javascript:void(0)">
@ -116,24 +110,30 @@ $picture = "/assets/img/default-user.png";
<ul class="navbar-nav flex-row justify-content-start align-items-center ms-auto">
<li class="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">
<a type="btn" href="<?= route_to('maquinistaUserChangeList') ?>" class="btn btn-outline-primary btn-sm w-100">Cambiar usuario</a>
<a type="btn" href="<?= route_to('maquinistaUserChangeList') ?>"
class="btn btn-outline-primary btn-sm w-100">Cambiar usuario</a>
</li>
</ul>
</div>
<?php endif; ?>
<div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse">
<?php if (env('SK_ENVIRONMENT') === 'development'): ?>
<div class="me-auto ms-2">
<span class="badge px-3 py-2" style="background-color: #2E5939; color: #fff;">
Entorno de desarrollo
</span>
</div>
<?php endif; ?>
<ul class="navbar-nav flex-row align-items-center ms-auto">
<li class="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">
<a
class="nav-link dropdown-toggle hide-arrow"
href="javascript:void(0);"
data-bs-toggle="dropdown"
data-bs-auto-close="outside"
id="message-notification-dropdown"
aria-expanded="false">
<a class="nav-link dropdown-toggle hide-arrow" href="javascript:void(0);"
data-bs-toggle="dropdown" data-bs-auto-close="outside"
id="message-notification-dropdown" aria-expanded="false">
<span class="tf-icons ti-md ti ti-message-circle"></span>
<span id="chat-notification-number" class="badge bg-danger text-white badge-notifications d-none"></span>
<span id="chat-notification-number"
class="badge bg-danger text-white badge-notifications d-none"></span>
</a>
<div class="dropdown-menu dropdown-menu-end py-0">
@ -151,8 +151,10 @@ $picture = "/assets/img/default-user.png";
<div class="container-m-nx m-2">
<div class="sidebar-body">
<!-- Contacts -->
<h6 id="chat-message-notification-title"><?= lang("Chat.no_messages_notification") ?> </h6>
<ul class="list-unstyled chat-contact-list mb-0" id="chat-notification-list">
<h6 id="chat-message-notification-title">
<?= lang("Chat.no_messages_notification") ?> </h6>
<ul class="list-unstyled chat-contact-list mb-0"
id="chat-notification-list">
</ul>
</div>
@ -166,9 +168,7 @@ $picture = "/assets/img/default-user.png";
<!-- Search Budgets -->
<li class="nav-item navbar-dropdown dropdown me-3 me-xl-1">
<a
class="nav-link hide-arrow"
href="<?= route_to("buscadorPresupuestosList"); ?>"
<a class="nav-link hide-arrow" href="<?= route_to("buscadorPresupuestosList"); ?>"
title="Acceso directo a buscador de presupuestos">
<i class="ti ti-report-search ti-md"></i>
</a>
@ -177,15 +177,11 @@ $picture = "/assets/img/default-user.png";
<!-- View Mode links -->
<?php
if (auth()->user()->inGroup('beta')) :
if (auth()->user()->inGroup('beta')):
?>
<li class="nav-item dropdown-shortcuts navbar-dropdown dropdown me-2 me-xl-0">
<a
class="nav-link dropdown-toggle hide-arrow"
href="javascript:void(0);"
data-bs-toggle="dropdown"
data-bs-auto-close="outside"
aria-expanded="false">
<a class="nav-link dropdown-toggle hide-arrow" href="javascript:void(0);"
data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
<i class="ti ti-building ti-md"></i>
</a>
<div class="dropdown-menu dropdown-menu-end py-0">
@ -270,11 +266,13 @@ $picture = "/assets/img/default-user.png";
<div class="d-flex">
<div class="flex-shrink-0 me-3">
<div class="avatar avatar">
<img src="<?= getGravatarURL() ?? '' ?>" alt class="h-auto rounded-circle" />
<img src="<?= getGravatarURL() ?? '' ?>" alt
class="h-auto rounded-circle" />
</div>
</div>
<div class="flex-grow-1">
<span class="fw-semibold d-block"><?= auth()->user()->getFullName(); ?></span>
<span
class="fw-semibold d-block"><?= auth()->user()->getFullName(); ?></span>
<small class="text-muted"><?= auth()->user()->getEmail(); ?></small>
</div>
</div>
@ -327,7 +325,8 @@ $picture = "/assets/img/default-user.png";
<!-- Footer -->
<footer class="content-footer footer bg-footer-theme">
<div class="container-fluid">
<div class="footer-container d-flex align-items-center justify-content-between py-2 flex-md-row flex-column">
<div
class="footer-container d-flex align-items-center justify-content-between py-2 flex-md-row flex-column">
<div>
<a href="#" target="_blank" class="fw-semibold">Safekat</a> © <?= date('Y'); ?>
</div>
@ -412,7 +411,7 @@ $picture = "/assets/img/default-user.png";
});
}
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('DOMContentLoaded', function () {
function adjustSidebar4ContentWrapper() {
if ($('#sidebar').hasClass('d-none') && $(window).width() <= 768) {
@ -426,7 +425,7 @@ $picture = "/assets/img/default-user.png";
adjustSidebar4ContentWrapper();
$('#sidebarCollapse').on('click', function() {
$('#sidebarCollapse').on('click', function () {
if ($('#sidebar').hasClass('d-none') && $(window).width() <= 768) {
$('#sidebar').removeClass('d-none d-sm-none d-md-block');
@ -441,7 +440,7 @@ $picture = "/assets/img/default-user.png";
});
$(window).resize(function() {
$(window).resize(function () {
adjustSidebar4ContentWrapper();
});

View File

@ -1,7 +1,11 @@
<?php $menus = getMenuControl(); ?>
<!-- Menu -->
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
<!-- Menu -->
<?php
$skEnv = env('SK_ENVIRONMENT', 'production');
$developmentClass = ($skEnv === 'development') ? 'env-bg' : '';
?>
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme <?= esc($developmentClass) ?>">
<div class="app-brand">
<a href="<?= site_url('home') ?>" class="app-brand-link">
<span class="app-brand-logo">
@ -47,7 +51,8 @@
</li>
<li class="menu-item">
<a href="<?= route_to("clienteplantillapreciosList") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_plantillas_tarifas_clientes") ?>"><?= lang("App.menu_plantillas_tarifas_clientes") ?></div>
<div data-i18n="<?= lang("App.menu_plantillas_tarifas_clientes") ?>">
<?= lang("App.menu_plantillas_tarifas_clientes") ?></div>
</a>
</li>
<?php endif; ?>
@ -99,28 +104,32 @@
<?php if (count(getArrayItem($temp, 'methods', 'activos', true)) > 0): ?>
<li class="menu-item">
<a href="<?= route_to("validacionView") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_pedidos_activos") ?>"><?= lang("App.menu_pedidos_activos") ?></div>
<div data-i18n="<?= lang("App.menu_pedidos_activos") ?>"><?= lang("App.menu_pedidos_activos") ?>
</div>
</a>
</li>
<?php endif; ?>
<?php if (count(getArrayItem($temp, 'methods', 'finalizados', true)) > 0): ?>
<li class="menu-item">
<a href="<?= route_to("listaPedidosFinalizados") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_pedidos_finalizados") ?>"><?= lang("App.menu_pedidos_finalizados") ?></div>
<div data-i18n="<?= lang("App.menu_pedidos_finalizados") ?>">
<?= lang("App.menu_pedidos_finalizados") ?></div>
</a>
</li>
<?php endif; ?>
<?php if (count(getArrayItem($temp, 'methods', 'cancelados', true)) > 0): ?>
<li class="menu-item">
<a href="<?= route_to("listaPedidosCancelados") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_pedidos_cancelados") ?>"><?= lang("App.menu_pedidos_cancelados") ?></div>
<div data-i18n="<?= lang("App.menu_pedidos_cancelados") ?>">
<?= lang("App.menu_pedidos_cancelados") ?></div>
</a>
</li>
<?php endif; ?>
<?php if (count(getArrayItem($temp, 'methods', 'todos', true)) > 0): ?>
<li class="menu-item">
<a href="<?= route_to("listaPedidos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_pedidos_todos") ?>"><?= lang("App.menu_pedidos_todos") ?></div>
<div data-i18n="<?= lang("App.menu_pedidos_todos") ?>"><?= lang("App.menu_pedidos_todos") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -147,7 +156,8 @@
<?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?>
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo") ?>"><?= lang("App.menu_orden_trabajo") ?></div>
<div data-i18n="<?= lang("App.menu_orden_trabajo") ?>"><?= lang("App.menu_orden_trabajo") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -156,7 +166,8 @@
<?php if (count(getArrayItem($temp, 'methods', 'cien', true)) > 0): ?>
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/cien") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo_100") ?>"><?= lang("App.menu_orden_trabajo_100") ?></div>
<div data-i18n="<?= lang("App.menu_orden_trabajo_100") ?>">
<?= lang("App.menu_orden_trabajo_100") ?></div>
</a>
</li>
<?php endif; ?>
@ -165,7 +176,8 @@
<?php if (count(getArrayItem($temp, 'methods', 'finalizado', true)) > 0): ?>
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/finalizado") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo_finalizados") ?>"><?= lang("App.menu_orden_trabajo_finalizados") ?></div>
<div data-i18n="<?= lang("App.menu_orden_trabajo_finalizados") ?>">
<?= lang("App.menu_orden_trabajo_finalizados") ?></div>
</a>
</li>
<?php endif; ?>
@ -174,7 +186,8 @@
<?php if (count(getArrayItem($temp, 'methods', 'pendiente', true)) > 0): ?>
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/pendiente") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo_pendientes") ?>"><?= lang("App.menu_orden_trabajo_pendientes") ?></div>
<div data-i18n="<?= lang("App.menu_orden_trabajo_pendientes") ?>">
<?= lang("App.menu_orden_trabajo_pendientes") ?></div>
</a>
</li>
<?php endif; ?>
@ -207,14 +220,16 @@
<?php if (count(getArrayItem($temp, 'methods', 'vencimiento', true)) > 0): ?>
<li class="menu-item">
<a href="<?= site_url("facturacion/factura/vencimiento") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_facturas_vencimiento") ?>"><?= lang("App.menu_facturas_vencimiento") ?></div>
<div data-i18n="<?= lang("App.menu_facturas_vencimiento") ?>">
<?= lang("App.menu_facturas_vencimiento") ?></div>
</a>
</li>
<?php endif; ?>
<?php if (count(getArrayItem($temp, 'methods', 'nueva', true)) > 0): ?>
<li class="menu-item">
<a href="<?= site_url("facturacion/factura/nueva") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_facturas_nueva") ?>"><?= lang("App.menu_facturas_nueva") ?></div>
<div data-i18n="<?= lang("App.menu_facturas_nueva") ?>"><?= lang("App.menu_facturas_nueva") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -236,8 +251,13 @@
/**
* MENU CONFIGURACION
*/
if (allowMenuSection($menus,
['Calendario', 'Paises', 'Users', 'Group'], 'index')): ?>
if (
allowMenuSection(
$menus,
['Calendario', 'Paises', 'Users', 'Group'],
'index'
)
): ?>
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<i class="menu-icon tf-icons ti ti-adjustments-horizontal"></i>
@ -276,7 +296,8 @@
<?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?>
<li class="menu-item">
<a href="<?= route_to("userGroupList") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_permission_group") ?>"><?= lang("App.menu_permission_group") ?></div>
<div data-i18n="<?= lang("App.menu_permission_group") ?>">
<?= lang("App.menu_permission_group") ?></div>
</a>
</li>
<?php endif; ?>
@ -312,9 +333,9 @@
if (count(getArrayItem($menus, 'name', 'Settings')) > 0): ?>
<!-- Settings -->
<li class="menu-item">
<a href="<?= site_url("settings")?>" class="menu-link">
<a href="<?= site_url("settings") ?>" class="menu-link">
<i class="menu-icon tf-icons ti ti-settings""></i>
<div data-i18n="<?= lang("App.menu_settings") ?>"><?= lang("App.menu_settings") ?></div>
<div data-i18n=" <?= lang("App.menu_settings") ?>"><?= lang("App.menu_settings") ?></div>
</a>
</li>
<?php endif; ?>
@ -328,12 +349,12 @@
<li class="menu-item">
<a href="<?= site_url("activity") ?>" class="menu-link">
<i class="menu-icon tf-icons ti ti-fingerprint""></i>
<div data-i18n="<?= lang("App.menu_activity") ?>"><?= lang("App.menu_activity") ?></div>
<div data-i18n=" <?= lang("App.menu_activity") ?>"><?= lang("App.menu_activity") ?></div>
</a>
</li>
<?php endif; ?>
</ul>
</aside>
<!-- / Menu -->
</aside>
<!-- / Menu -->

View File

@ -1,5 +1,9 @@
<!-- Menu -->
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
<?php
$skEnv = env('SK_ENVIRONMENT', 'production');
$developmentClass = ($skEnv === 'development') ? 'env-bg' : '';
?>
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme <?= esc($developmentClass) ?>">
<div class="app-brand">
<a href="<?= site_url('home') ?>" class="app-brand-link">
<span class="app-brand-logo">

View File

@ -1,7 +1,11 @@
<?php $menus = getMenuControl(); ?>
<!-- Menu -->
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
<?php
$skEnv = env('SK_ENVIRONMENT', 'production');
$developmentClass = ($skEnv === 'development') ? 'env-bg' : '';
?>
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme <?= esc($developmentClass) ?>">
<div class="app-brand">
<a href="<?= site_url('home') ?>" class="app-brand-link">
<span class="app-brand-logo">
@ -48,7 +52,8 @@
<li class="menu-item">
<a href="<?= route_to("clienteplantillapreciosList") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_plantillas_tarifas_clientes") ?>">
<?= lang("App.menu_plantillas_tarifas_clientes") ?></div>
<?= lang("App.menu_plantillas_tarifas_clientes") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -75,7 +80,8 @@
<li class="menu-item">
<a href="<?= site_url("presupuestos/presupuestomaquetacion") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_presupuestomaquetacion_todos") ?>">
<?= lang("App.menu_presupuestomaquetacion_todos") ?></div>
<?= lang("App.menu_presupuestomaquetacion_todos") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -83,7 +89,8 @@
<li class="menu-item">
<a href="<?= site_url("presupuestos/presupuestomaquetacion/nuevo") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_presupuestomaquetacion_nuevo") ?>">
<?= lang("App.menu_presupuestomaquetacion_nuevo") ?></div>
<?= lang("App.menu_presupuestomaquetacion_nuevo") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -91,7 +98,8 @@
<li class="menu-item">
<a href="<?= site_url("presupuestos/presupuestomaquetacion/borrador") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_presupuestomaquetacion_borrador") ?>">
<?= lang("App.menu_presupuestomaquetacion_borrador") ?></div>
<?= lang("App.menu_presupuestomaquetacion_borrador") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -99,7 +107,8 @@
<li class="menu-item">
<a href="<?= site_url("presupuestos/presupuestomaquetacion/aceptados") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_presupuestomaquetacion_aceptados") ?>">
<?= lang("App.menu_presupuestomaquetacion_aceptados") ?></div>
<?= lang("App.menu_presupuestomaquetacion_aceptados") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -134,7 +143,8 @@
<li class="menu-item">
<a href="<?= route_to("listaPedidosFinalizados") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_pedidos_finalizados") ?>">
<?= lang("App.menu_pedidos_finalizados") ?></div>
<?= lang("App.menu_pedidos_finalizados") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -142,7 +152,8 @@
<li class="menu-item">
<a href="<?= route_to("listaPedidosCancelados") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_pedidos_cancelados") ?>">
<?= lang("App.menu_pedidos_cancelados") ?></div>
<?= lang("App.menu_pedidos_cancelados") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -188,7 +199,8 @@
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/cien") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo_100") ?>">
<?= lang("App.menu_orden_trabajo_100") ?></div>
<?= lang("App.menu_orden_trabajo_100") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -198,7 +210,8 @@
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/finalizado") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo_finalizados") ?>">
<?= lang("App.menu_orden_trabajo_finalizados") ?></div>
<?= lang("App.menu_orden_trabajo_finalizados") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -208,7 +221,8 @@
<li class="menu-item">
<a href="<?= site_url("produccion/ordentrabajo/pendiente") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_orden_trabajo_pendientes") ?>">
<?= lang("App.menu_orden_trabajo_pendientes") ?></div>
<?= lang("App.menu_orden_trabajo_pendientes") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -243,7 +257,8 @@
<li class="menu-item">
<a href="<?= site_url("facturacion/factura/vencimiento") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_facturas_vencimiento") ?>">
<?= lang("App.menu_facturas_vencimiento") ?></div>
<?= lang("App.menu_facturas_vencimiento") ?>
</div>
</a>
</li>
<?php endif; ?>
@ -321,7 +336,8 @@
<li class="menu-item">
<a href="<?= route_to("userGroupList") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_permission_group") ?>">
<?= lang("App.menu_permission_group") ?></div>
<?= lang("App.menu_permission_group") ?>
</div>
</a>
</li>
<?php endif; ?>

View File

@ -3,6 +3,10 @@
* File include item demo only specific css only
******************************************************************************/
.env-bg {
background-color: #2E5939 !important;
}
.light-style .menu .app-brand.demo {
height: 64px;
}