mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
feat : add chat in facturas,presupuestos y pedidos
This commit is contained in:
@ -1,19 +1,20 @@
|
||||
<div class="accordion accordion-bordered mt-3" id="accordionChatFactura">
|
||||
<div class="card accordion-item active">
|
||||
<h2 class="accordion-header" id="headingChatFactura">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionChatFacturaTip" aria-expanded="false" aria-controls="accordionAlbaranesTip">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
||||
data-bs-target="#accordionChatFacturaTip" aria-expanded="false" aria-controls="accordionChatFacturaTip">
|
||||
<h3><?= lang("Chat.chat") ?></h3>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="accordionChatFacturaTip" class="accordion-collapse collapse show" data-bs-parent="#accordionChatPresupuesto">
|
||||
<div id="accordionChatFacturaTip" class="accordion-collapse collapse show"
|
||||
data-bs-parent="#accordionChatFactura">
|
||||
<div class="accordion-body">
|
||||
<div class="container-xxl flex-grow-1 container-p-y" id="chat-presupuesto" data-id="<?= $facturaId ?>">
|
||||
<div class="container-xxl flex-grow-1 container-p-y" id="chat-factura" data-id="<?= $modelId ?>">
|
||||
<div class="app-chat card overflow-hidden">
|
||||
<div class="row g-0">
|
||||
|
||||
<!-- Chat & Contacts -->
|
||||
<div
|
||||
class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
<div class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
id="app-chat-contacts">
|
||||
<div class="sidebar-header">
|
||||
<div class="d-flex align-items-center me-3 me-lg-0">
|
||||
@ -25,19 +26,13 @@
|
||||
<span class="input-group-text" id="basic-addon-search31">
|
||||
<i class="ti ti-search"></i>
|
||||
</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control chat-search-input"
|
||||
placeholder="Buscar..."
|
||||
aria-label="Buscar..."
|
||||
<input type="text" class="form-control chat-search-input"
|
||||
placeholder="Buscar..." aria-label="Buscar..."
|
||||
aria-describedby="basic-addon-search31" />
|
||||
</div>
|
||||
</div>
|
||||
<i
|
||||
class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay
|
||||
data-bs-toggle="sidebar"
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<i class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay data-bs-toggle="sidebar" data-target="#app-chat-contacts"></i>
|
||||
</div>
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
@ -54,22 +49,12 @@
|
||||
</ul>
|
||||
<!-- Contacts -->
|
||||
<ul class="list-unstyled chat-contact-list mb-0" id="contact-list">
|
||||
<!-- <li class="chat-contact-list-item chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0">Contacts</h5>
|
||||
</li>
|
||||
<li class="chat-contact-list-item contact-list-item-0 ">
|
||||
<h6 class="text-muted mb-0">No Contacts Found</h6>
|
||||
</li> -->
|
||||
<!-- <li class="chat-contact-list-item">
|
||||
<a class="d-flex align-items-center">
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">JJ</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="chat-contact-name text-truncate m-0">Jaime Jimenez</h6>
|
||||
</div>
|
||||
</a>
|
||||
</li> -->
|
||||
<li class="chat-contact-list-item chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0">Contacts</h5>
|
||||
</li>
|
||||
<li class="chat-contact-list-item contact-list-item-0 d-none">
|
||||
<h6 class="text-muted mb-0">No Contacts Found</h6>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@ -82,33 +67,32 @@
|
||||
<div class="chat-history-header border-bottom">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex overflow-hidden align-items-center">
|
||||
<i
|
||||
class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar"
|
||||
data-overlay
|
||||
<i class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar" data-overlay
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
<span
|
||||
class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="m-0">Departamento Producción</h6>
|
||||
<small class="user-status text-muted">Consulta sobre el presupuesto P001</small>
|
||||
<small class="user-status text-muted">Consulta sobre el presupuesto
|
||||
P001</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="dropdown d-flex align-self-center">
|
||||
<button
|
||||
class="btn p-0"
|
||||
type="button"
|
||||
id="chat-header-actions"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-haspopup="true"
|
||||
<button class="btn p-0" type="button" id="chat-header-actions"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<i class="ti ti-dots-vertical"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar Conversacion</a>
|
||||
<div class="dropdown-menu dropdown-menu-end d-none"
|
||||
aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar
|
||||
Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar
|
||||
Conversacion</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -122,15 +106,21 @@
|
||||
</div>
|
||||
<!-- Chat message form -->
|
||||
<div class="chat-history-footer shadow-sm">
|
||||
<div class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input
|
||||
class="form-control message-input border-0 me-3 shadow-none"
|
||||
<div
|
||||
class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="Type your message here" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
|
||||
<a class="btn btn-primary d-flex send-msg-btn ">
|
||||
<a class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block d-none">Enviar</span>
|
||||
<span class="align-middle d-md-inline-block">Enviar</span>
|
||||
</a>
|
||||
<a class="btn btn-primary d-flex send-msg-btn"
|
||||
id="send-msg-btn-internal">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block ">Enviar</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -155,7 +145,7 @@
|
||||
<!-- Código JS logica -->
|
||||
<!------------------------------------------------------->
|
||||
<?= $this->section("additionalExternalJs") ?>
|
||||
<script type="module" src="<?= site_url('assets/js/safekat/pages/chatPresupuesto.js') ?>"></script>
|
||||
<script type="module" src="<?= site_url('assets/js/safekat/pages/chatFactura.js') ?>"></script>
|
||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||
<!-- <script src="<?= site_url('js_loader/chat_js') ?>"></script> -->
|
||||
<?= $this->endSection() ?>
|
||||
@ -0,0 +1,152 @@
|
||||
<div class="accordion accordion-bordered mt-3" id="accordionChatGeneral">
|
||||
<div class="card accordion-item active">
|
||||
<h2 class="accordion-header" id="headingChatGeneral">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
||||
data-bs-target="#accordionChatGeneralTip" aria-expanded="false" aria-controls="accordionChatGeneralTip">
|
||||
<h3><?= lang("Chat.chat") ?></h3>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="accordionChatGeneralTip" class="accordion-collapse collapse show"
|
||||
data-bs-parent="#accordionChatGeneral">
|
||||
<div class="accordion-body">
|
||||
<div class="container-xxl flex-grow-1 container-p-y" id="chat-general" data-id="<?= null ?>">
|
||||
<div class="app-chat card overflow-hidden">
|
||||
<div class="row g-0">
|
||||
|
||||
<!-- Chat & Contacts -->
|
||||
<div class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
id="app-chat-contacts">
|
||||
<div class="sidebar-header">
|
||||
<div class="d-flex align-items-center me-3 me-lg-0">
|
||||
<div class="flex-shrink-0 avatar me-3">
|
||||
<span class="avatar-initial rounded-circle bg-label-success">U</span>
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1 input-group input-group-merge rounded-pill">
|
||||
<span class="input-group-text" id="basic-addon-search31">
|
||||
<i class="ti ti-search"></i>
|
||||
</span>
|
||||
<input type="text" class="form-control chat-search-input"
|
||||
placeholder="Buscar..." aria-label="Buscar..."
|
||||
aria-describedby="basic-addon-search31" />
|
||||
</div>
|
||||
</div>
|
||||
<i class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay data-bs-toggle="sidebar" data-target="#app-chat-contacts"></i>
|
||||
</div>
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
|
||||
<!-- Contacts -->
|
||||
<ul class="list-unstyled chat-contact-list mb-0" id="contact-list">
|
||||
<li class="chat-contact-list-item chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0">Contactos</h5>
|
||||
</li>
|
||||
<li class="chat-contact-list-item contact-list-item-0 ">
|
||||
<h6 class="text-muted mb-0">No Contacts Found</h6>
|
||||
</li>
|
||||
<!-- <li class="chat-contact-list-item">
|
||||
<a class="d-flex align-items-center">
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">JJ</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="chat-contact-name text-truncate m-0">Jaime Jimenez</h6>
|
||||
</div>
|
||||
</a>
|
||||
</li> -->
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Chat contacts -->
|
||||
|
||||
<!-- Chat History -->
|
||||
<div class="col app-chat-history bg-body">
|
||||
<div class="chat-history-wrapper ">
|
||||
<div class="chat-history-header border-bottom">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex overflow-hidden align-items-center">
|
||||
<i class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar" data-overlay
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span
|
||||
class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="m-0">Departamento Producción</h6>
|
||||
<small class="user-status text-muted">Consulta sobre el presupuesto
|
||||
P001</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="dropdown d-flex align-self-center">
|
||||
<button class="btn p-0" type="button" id="chat-header-actions"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<i class="ti ti-dots-vertical"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end"
|
||||
aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar
|
||||
Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar
|
||||
Conversacion</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chat-history-body bg-body ">
|
||||
<ul class="list-unstyled chat-history" id="chat-conversation">
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Chat message form -->
|
||||
<div class="chat-history-footer shadow-sm">
|
||||
<div
|
||||
class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="Type your message here" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
<a class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block">Enviar</span>
|
||||
</a>
|
||||
<a class="btn btn-primary d-flex send-msg-btn"
|
||||
id="send-msg-btn-internal">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block ">Enviar</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Chat History -->
|
||||
|
||||
<div class="app-overlay"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->section('css') ?>
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/css/pages/app-chat.css') ?>">
|
||||
<?= $this->endSection() ?>
|
||||
<!------------------------------------------------------->
|
||||
<!-- Código JS logica -->
|
||||
<!------------------------------------------------------->
|
||||
<?= $this->section("additionalExternalJs") ?>
|
||||
<script type="module" src="<?= site_url('assets/js/safekat/pages/chatGeneral.js') ?>"></script>
|
||||
<script src="<?= site_url('themes/vuexy/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') ?>"></script>
|
||||
<!-- <script src="<?= site_url('js_loader/chat_js') ?>"></script> -->
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,147 +1,134 @@
|
||||
<div class="accordion accordion-bordered mt-3" id="accordionChatPedido">
|
||||
<div class="card accordion-item active">
|
||||
<h2 class="accordion-header" id="headingChatPedido">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionChatPedidoTip" aria-expanded="false" aria-controls="accordionAlbaranesTip">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
||||
data-bs-target="#accordionChatPedidoTip" aria-expanded="false" aria-controls="accordionChatPedidoTip">
|
||||
<h3><?= lang("Chat.chat") ?></h3>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="accordionChatPedidoTip" class="accordion-collapse collapse show" data-bs-parent="#accordionChatPedido">
|
||||
<div class="accordion-body">
|
||||
<div class="container-xxl flex-grow-1 container-p-y" id="chat-pedido" data-id="<?= $pedidoId ?>">
|
||||
<div class="container-xxl flex-grow-1 container-p-y" id="chat-pedido" data-id="<?= $modelId ?>">
|
||||
|
||||
<div class="app-chat card overflow-hidden">
|
||||
<div class="row g-0">
|
||||
<div class="app-chat card overflow-hidden">
|
||||
<div class="row g-0">
|
||||
|
||||
<!-- Chat & Contacts -->
|
||||
<div
|
||||
class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
id="app-chat-contacts">
|
||||
<div class="sidebar-header">
|
||||
<div class="d-flex align-items-center me-3 me-lg-0">
|
||||
<div class="flex-shrink-0 avatar me-3">
|
||||
<span class="avatar-initial rounded-circle bg-label-success">U</span>
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1 input-group input-group-merge rounded-pill">
|
||||
<span class="input-group-text" id="basic-addon-search31">
|
||||
<i class="ti ti-search"></i>
|
||||
</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control chat-search-input"
|
||||
placeholder="Buscar..."
|
||||
aria-label="Buscar..."
|
||||
aria-describedby="basic-addon-search31" />
|
||||
</div>
|
||||
<!-- Chat & Contacts -->
|
||||
<div class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
id="app-chat-contacts">
|
||||
<div class="sidebar-header">
|
||||
<div class="d-flex align-items-center me-3 me-lg-0">
|
||||
<div class="flex-shrink-0 avatar me-3">
|
||||
<span class="avatar-initial rounded-circle bg-label-success">U</span>
|
||||
</div>
|
||||
<i
|
||||
class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay
|
||||
data-bs-toggle="sidebar"
|
||||
data-target="#app-chat-contacts"></i>
|
||||
</div>
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
<div class="chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0 px-4 pt-3 pb-2">Pedidos</h5>
|
||||
</div>
|
||||
<!-- Chats -->
|
||||
<ul class="list-unstyled chat-contact-list" id="chat-list">
|
||||
<li class="chat-contact-list-item chat-list-item-0 d-none">
|
||||
<h6 class="text-muted mb-0">No Chats Found</h6>
|
||||
</li>
|
||||
<!-- CHAT LIST -->
|
||||
|
||||
</ul>
|
||||
<!-- Contacts -->
|
||||
<ul class="list-unstyled chat-contact-list mb-0" id="contact-list">
|
||||
<!-- <li class="chat-contact-list-item chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0">Contacts</h5>
|
||||
</li>
|
||||
<li class="chat-contact-list-item contact-list-item-0 ">
|
||||
<h6 class="text-muted mb-0">No Contacts Found</h6>
|
||||
</li> -->
|
||||
<!-- <li class="chat-contact-list-item">
|
||||
<a class="d-flex align-items-center">
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">JJ</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="chat-contact-name text-truncate m-0">Jaime Jimenez</h6>
|
||||
</div>
|
||||
</a>
|
||||
</li> -->
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Chat contacts -->
|
||||
|
||||
<!-- Chat History -->
|
||||
<div class="col app-chat-history bg-body">
|
||||
<div class="chat-history-wrapper ">
|
||||
<div class="chat-history-header border-bottom">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex overflow-hidden align-items-center">
|
||||
<i
|
||||
class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar"
|
||||
data-overlay
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="m-0"></h6>
|
||||
<small class="user-status text-muted"></small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="dropdown d-flex align-self-center">
|
||||
<button
|
||||
class="btn p-0"
|
||||
type="button"
|
||||
id="chat-header-actions"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<i class="ti ti-dots-vertical"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar Conversacion</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chat-history-body bg-body ">
|
||||
<ul class="list-unstyled chat-history" id="chat-conversation">
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Chat message form -->
|
||||
<div class="chat-history-footer shadow-sm">
|
||||
<div class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input
|
||||
class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="Type your message here" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
|
||||
<a class="btn btn-primary d-flex send-msg-btn ">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block d-none">Enviar</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-grow-1 input-group input-group-merge rounded-pill">
|
||||
<span class="input-group-text" id="basic-addon-search31">
|
||||
<i class="ti ti-search"></i>
|
||||
</span>
|
||||
<input type="text" class="form-control chat-search-input"
|
||||
placeholder="Buscar..." aria-label="Buscar..."
|
||||
aria-describedby="basic-addon-search31" />
|
||||
</div>
|
||||
</div>
|
||||
<i class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay data-bs-toggle="sidebar" data-target="#app-chat-contacts"></i>
|
||||
</div>
|
||||
<!-- /Chat History -->
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
<div class="chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0 px-4 pt-3 pb-2">Departamentos</h5>
|
||||
</div>
|
||||
<!-- Chats -->
|
||||
<ul class="list-unstyled chat-contact-list" id="chat-list">
|
||||
<li class="chat-contact-list-item chat-list-item-0 d-none">
|
||||
<h6 class="text-muted mb-0">No Chats Found</h6>
|
||||
</li>
|
||||
<!-- CHAT LIST -->
|
||||
|
||||
<div class="app-overlay"></div>
|
||||
</ul>
|
||||
<!-- Contacts -->
|
||||
<ul class="list-unstyled chat-contact-list mb-0" id="contact-list">
|
||||
<li class="chat-contact-list-item chat-contact-list-item-title">
|
||||
<h5 class="text-primary mb-0">Contactos</h5>
|
||||
</li>
|
||||
<li class="chat-contact-list-item contact-list-item-0 d-none">
|
||||
<h6 class="text-muted mb-0">No Contacts Found</h6>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Chat contacts -->
|
||||
|
||||
<!-- Chat History -->
|
||||
<div class="col app-chat-history bg-body">
|
||||
<div class="chat-history-wrapper ">
|
||||
<div class="chat-history-header border-bottom">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex overflow-hidden align-items-center">
|
||||
<i class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar" data-overlay
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span
|
||||
class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="m-0"></h6>
|
||||
<small class="user-status text-muted"></small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="dropdown d-flex align-self-center">
|
||||
<button class="btn p-0" type="button" id="chat-header-actions"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<i class="ti ti-dots-vertical"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end"
|
||||
aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar
|
||||
Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar
|
||||
Conversacion</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chat-history-body bg-body ">
|
||||
<ul class="list-unstyled chat-history" id="chat-conversation">
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Chat message form -->
|
||||
<div class="chat-history-footer shadow-sm">
|
||||
<div
|
||||
class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="Type your message here" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
|
||||
<a class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block">Enviar</span>
|
||||
</a>
|
||||
<a class="btn btn-primary d-flex send-msg-btn"
|
||||
id="send-msg-btn-internal">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block ">Enviar</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Chat History -->
|
||||
|
||||
<div class="app-overlay"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -149,6 +136,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<?= $this->section('css') ?>
|
||||
|
||||
@ -1,19 +1,21 @@
|
||||
<div class="accordion accordion-bordered mt-3" id="accordionChatPresupuesto">
|
||||
<div class="card accordion-item active">
|
||||
<h2 class="accordion-header" id="headingChatPresupuesto">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionChatPresupuestoTip" aria-expanded="false" aria-controls="accordionAlbaranesTip">
|
||||
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
||||
data-bs-target="#accordionChatPresupuestoTip" aria-expanded="false"
|
||||
aria-controls="accordionChatPresupuestoTip">
|
||||
<h3><?= lang("Chat.chat") ?></h3>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="accordionChatPresupuestoTip" class="accordion-collapse collapse show" data-bs-parent="#accordionChatPresupuesto">
|
||||
<div id="accordionChatPresupuestoTip" class="accordion-collapse collapse show"
|
||||
data-bs-parent="#accordionChatPresupuesto">
|
||||
<div class="accordion-body">
|
||||
<div class="container-xxl flex-grow-1" id="chat-presupuesto" data-id="<?= $modelId ?>">
|
||||
<div class="app-chat card overflow-hidden">
|
||||
<div class="row g-0">
|
||||
|
||||
<!-- Chat & Contacts -->
|
||||
<div
|
||||
class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
<div class="col app-chat-contacts app-sidebar flex-grow-0 overflow-hidden border-end"
|
||||
id="app-chat-contacts">
|
||||
<div class="sidebar-header">
|
||||
<div class="d-flex align-items-center me-3 me-lg-0">
|
||||
@ -25,19 +27,13 @@
|
||||
<span class="input-group-text" id="basic-addon-search31">
|
||||
<i class="ti ti-search"></i>
|
||||
</span>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control chat-search-input"
|
||||
placeholder="Buscar..."
|
||||
aria-label="Buscar..."
|
||||
<input type="text" class="form-control chat-search-input"
|
||||
placeholder="Buscar..." aria-label="Buscar..."
|
||||
aria-describedby="basic-addon-search31" />
|
||||
</div>
|
||||
</div>
|
||||
<i
|
||||
class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay
|
||||
data-bs-toggle="sidebar"
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<i class="ti ti-x cursor-pointer d-lg-none d-block position-absolute mt-2 me-1 top-0 end-0"
|
||||
data-overlay data-bs-toggle="sidebar" data-target="#app-chat-contacts"></i>
|
||||
</div>
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
@ -60,7 +56,7 @@
|
||||
<li class="chat-contact-list-item contact-list-item-0 d-none">
|
||||
<h6 class="text-muted mb-0">No Contacts Found</h6>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@ -73,33 +69,32 @@
|
||||
<div class="chat-history-header border-bottom">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="d-flex overflow-hidden align-items-center">
|
||||
<i
|
||||
class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar"
|
||||
data-overlay
|
||||
<i class="ti ti-menu-2 ti-sm cursor-pointer d-lg-none d-block me-2"
|
||||
data-bs-toggle="sidebar" data-overlay
|
||||
data-target="#app-chat-contacts"></i>
|
||||
<div class="avatar d-block flex-shrink-0">
|
||||
<span class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
<span
|
||||
class="avatar-initial rounded-circle bg-label-primary">P</span>
|
||||
</div>
|
||||
<div class="chat-contact-info flex-grow-1 ms-2">
|
||||
<h6 class="m-0">Departamento Producción</h6>
|
||||
<small class="user-status text-muted">Consulta sobre el presupuesto P001</small>
|
||||
<small class="user-status text-muted">Consulta sobre el presupuesto
|
||||
P001</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="dropdown d-flex align-self-center">
|
||||
<button
|
||||
class="btn p-0"
|
||||
type="button"
|
||||
id="chat-header-actions"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-haspopup="true"
|
||||
<button class="btn p-0" type="button" id="chat-header-actions"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
<i class="ti ti-dots-vertical"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar Conversacion</a>
|
||||
<div class="dropdown-menu dropdown-menu-end"
|
||||
aria-labelledby="chat-header-actions">
|
||||
<a class="dropdown-item" href="javascript:void(0);">Silenciar
|
||||
Conversacion</a>
|
||||
<a class="dropdown-item" href="javascript:void(0);">Limpiar
|
||||
Conversacion</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -113,17 +108,19 @@
|
||||
</div>
|
||||
<!-- Chat message form -->
|
||||
<div class="chat-history-footer shadow-sm">
|
||||
<div class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input
|
||||
class="form-control message-input border-0 me-3 shadow-none"
|
||||
<div
|
||||
class="form-send-message d-flex justify-content-between align-items-center">
|
||||
<input class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="Type your message here" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
|
||||
<a class="btn btn-success d-flex send-msg-btn" id="send-msg-btn-deparment">
|
||||
<a class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block">Enviar</span>
|
||||
</a>
|
||||
<a class="btn btn-success d-flex send-msg-btn" id="send-msg-btn-internal">
|
||||
<a class="btn btn-primary d-flex send-msg-btn"
|
||||
id="send-msg-btn-internal">
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
<span class="align-middle d-md-inline-block ">Enviar</span>
|
||||
</a>
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
<?php if($facturaEntity->estado !='borrador' && (strpos($facturaEntity->numero, "REC ") === 0) ) : ?>
|
||||
<?= view("themes/vuexy/form/facturas/_rectificadaFacturasItems") ?>
|
||||
<?php endif; ?>
|
||||
<?= view("themes/vuexy/components/chat_factura",data:["modelId" => $facturaEntity->id]) ?>
|
||||
|
||||
<div class="pt-4">
|
||||
<?php if($facturaEntity->estado =='borrador') : ?>
|
||||
|
||||
@ -5,12 +5,6 @@
|
||||
<?= $this->section('content'); ?>
|
||||
<!--Content Body-->
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<?= view("themes/vuexy/form/presupuestos/cosidotapablanda/_mensajeria",data:["presupuestoId" => null]) ?>
|
||||
<?= view("themes/vuexy/components/chat_general", data: ["modelId" => null]) ?>
|
||||
</div>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,55 +1,62 @@
|
||||
<?= $this->include("themes/_commonPartialsBs/datatables") ?>
|
||||
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
|
||||
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
|
||||
<?=$this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
|
||||
<?= $this->section("content") ?>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
||||
</div><!--//.card-header -->
|
||||
<form id="pedidoForm" method="post" class="card-body" action="<?= $formAction ?>">
|
||||
<?= csrf_field() ?>
|
||||
<div class="card card-info">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title"><?= $boxTitle ?? $pageTitle ?></h3>
|
||||
</div>
|
||||
<!--//.card-header -->
|
||||
<form id="pedidoForm" method="post" class="card-body" action="<?= $formAction ?>">
|
||||
<?= csrf_field() ?>
|
||||
<div class="card-body">
|
||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||
<?= view("themes/vuexy/form/pedidos/_cabeceraItems") ?>
|
||||
<?= view("themes/vuexy/form/pedidos/_lineasItems") ?>
|
||||
<?php if (!(auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))) : ?>
|
||||
<?= view("themes/vuexy/form/pedidos/_albaranesItems") ?>
|
||||
<?php endif; ?>
|
||||
<?= view("themes/vuexy/form/pedidos/_facturasItems") ?>
|
||||
<?= view("themes/vuexy/components/chat_pedido",data:["pedidoId" => $pedidoEntity->id]) ?>
|
||||
<?= view("themes/vuexy/form/pedidos/_albaranesItems") ?>
|
||||
<?php endif; ?>
|
||||
<?= view("themes/vuexy/form/pedidos/_facturasItems") ?>
|
||||
<?= view("themes/vuexy/components/chat_pedido", data: ["modelId" => $pedidoEntity->id]) ?>
|
||||
</div><!-- /.card-body -->
|
||||
<div class="pt-4">
|
||||
<?= anchor(route_to("listaPresupuestos"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start"]) ?>
|
||||
</div><!-- /.card-footer -->
|
||||
</form>
|
||||
</form>
|
||||
</div><!-- //.card -->
|
||||
</div><!--//.col -->
|
||||
</div><!--//.row -->
|
||||
</div>
|
||||
<!--//.col -->
|
||||
</div>
|
||||
<!--//.row -->
|
||||
<?= view("themes/_commonPartialsBs/_modalConfirmDialog") ?>
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
<?=$this->section('css') ?>
|
||||
<link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.css") ?>">
|
||||
<link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/sk-datatables.css') ?>">
|
||||
<?=$this->endSection() ?>
|
||||
<?= $this->section('css') ?>
|
||||
<link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.css") ?>">
|
||||
<link rel="stylesheet"
|
||||
href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/sk-datatables.css') ?>">
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/dataTables.buttons.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.js") ?>"></script>
|
||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/select/dataTables.select.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.html5.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.print.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/jszip/jszip.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/pdfmake.min.js") ?>" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/vfs_fonts.js") ?>"></script>
|
||||
<?=$this->endSection() ?>
|
||||
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/flatpickr/flatpickr.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/dataTables.buttons.min.js") ?>">
|
||||
</script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.js") ?>">
|
||||
</script>
|
||||
<script src="<?= site_url("themes/vuexy/vendor/libs/datatables-sk/plugins/select/dataTables.select.min.js") ?>">
|
||||
</script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.html5.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.print.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/jszip/jszip.min.js") ?>"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/pdfmake.min.js") ?>"
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/vfs_fonts.js") ?>"></script>
|
||||
<?= $this->endSection() ?>
|
||||
@ -1,4 +1,6 @@
|
||||
import Chat from '../components/chat.js'
|
||||
|
||||
let chat = new Chat($("#chat-factura"))
|
||||
chat.initFactura()
|
||||
chat.init()
|
||||
chat.initFactura()
|
||||
chat._handleListContacts()
|
||||
5
httpdocs/assets/js/safekat/pages/chatGeneral.js
Normal file
5
httpdocs/assets/js/safekat/pages/chatGeneral.js
Normal file
@ -0,0 +1,5 @@
|
||||
import Chat from '../components/chat.js'
|
||||
|
||||
let chat = new Chat($("#chat-general"))
|
||||
chat.init()
|
||||
chat._handleListContacts()
|
||||
@ -2,4 +2,5 @@ import Chat from '../components/chat.js'
|
||||
|
||||
let chat = new Chat($("#chat-pedido"))
|
||||
chat.init()
|
||||
chat.initPedido()
|
||||
chat.initPedido()
|
||||
chat._handleListContacts()
|
||||
@ -2,6 +2,9 @@
|
||||
position: relative;
|
||||
height: calc(100vh - 11.5rem) !important;
|
||||
}
|
||||
a.send-msg-btn {
|
||||
color: white
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.layout-horizontal .app-chat {
|
||||
height: calc(100vh - 11.5rem - 2.2rem) !important;
|
||||
|
||||
Reference in New Issue
Block a user