This commit is contained in:
amazuecos
2024-10-15 17:25:01 +00:00
13 changed files with 40 additions and 27 deletions

View File

@ -2,6 +2,7 @@
return [ return [
"chat" => "Mensajería", "chat" => "Mensajería",
"messages" => "Mensajes",
"modal" => [ "modal" => [
"new_hebra" => "Nueva hebra", "new_hebra" => "Nueva hebra",
"title" => "Título", "title" => "Título",

View File

@ -210,6 +210,7 @@ class ChatModel extends Model
->join("chat_departments","chat_departments.id = chats.chat_department_id","left") ->join("chat_departments","chat_departments.id = chats.chat_department_id","left")
->join("pedidos","pedidos.id = chats.pedido_id","left") ->join("pedidos","pedidos.id = chats.pedido_id","left")
->whereIn("pedidos.id",$pedidos) ->whereIn("pedidos.id",$pedidos)
->where("chats.chat_department_id is NOT NULL",NULL,FALSE)
->get()->getResultObject(); ->get()->getResultObject();
$chatMessageModel = model(ChatMessageModel::class); $chatMessageModel = model(ChatMessageModel::class);
$count = 0; $count = 0;
@ -237,6 +238,7 @@ class ChatModel extends Model
->join("chat_departments","chat_departments.id = chats.chat_department_id","left") ->join("chat_departments","chat_departments.id = chats.chat_department_id","left")
->join("facturas","facturas.id = chats.factura_id","left") ->join("facturas","facturas.id = chats.factura_id","left")
->whereIn("facturas.id",$facturas) ->whereIn("facturas.id",$facturas)
->where("chats.chat_department_id is NOT NULL",NULL,FALSE)
->get()->getResultObject(); ->get()->getResultObject();
$chatMessageModel = model(ChatMessageModel::class); $chatMessageModel = model(ChatMessageModel::class);
$count = 0; $count = 0;
@ -264,6 +266,7 @@ class ChatModel extends Model
->join("chat_departments","chat_departments.id = chats.chat_department_id","left") ->join("chat_departments","chat_departments.id = chats.chat_department_id","left")
->join("presupuestos","presupuestos.id = chats.presupuesto_id","left") ->join("presupuestos","presupuestos.id = chats.presupuesto_id","left")
->whereIn("presupuestos.id",$presupuestos) ->whereIn("presupuestos.id",$presupuestos)
->where("chats.chat_department_id is NOT NULL",NULL,FALSE)
->get()->getResultObject(); ->get()->getResultObject();
$chatMessageModel = model(ChatMessageModel::class); $chatMessageModel = model(ChatMessageModel::class);
$count = 0; $count = 0;

View File

@ -15,17 +15,21 @@
<li class="nav-item"> <li class="nav-item">
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false">Chat</button> <button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false">Chat</button>
</li> </li>
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<li class="nav-item"> <li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false">Mensajes internos</button> <button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false">Mensajes internos</button>
</li> </li>
<?php } ?>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane fade show active" id="navs-pills-top-chat" role="tabpanel"> <div class="tab-pane fade show active" id="navs-pills-top-chat" role="tabpanel">
<?= view("themes/vuexy/components/chat_factura", data: ["modelId" => $modelId,"type" => "factura"]) ?> <?= view("themes/vuexy/components/chat_factura", data: ["modelId" => $modelId,"type" => "factura"]) ?>
</div> </div>
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<div class="tab-pane fade" id="navs-pills-top-internal-messages" role="tabpanel"> <div class="tab-pane fade" id="navs-pills-top-internal-messages" role="tabpanel">
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId,"type" => "factura"]) ?> <?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId,"type" => "factura"]) ?>
</div> </div>
<?php } ?>
</div> </div>
</div> </div>
</div> </div>

View File

@ -15,17 +15,21 @@
<li class="nav-item"> <li class="nav-item">
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false">Chat</button> <button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false">Chat</button>
</li> </li>
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<li class="nav-item"> <li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false">Mensajes internos</button> <button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false">Mensajes internos</button>
</li> </li>
<?php } ?>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane fade show active" id="navs-pills-top-chat" role="tabpanel"> <div class="tab-pane fade show active" id="navs-pills-top-chat" role="tabpanel">
<?= view("themes/vuexy/components/chat_pedido", data: ["modelId" => $modelId, "type" => "pedido"]) ?> <?= view("themes/vuexy/components/chat_pedido", data: ["modelId" => $modelId, "type" => "pedido"]) ?>
</div> </div>
<div class="tab-pane fade" id="navs-pills-top-internal-messages" role="tabpanel"> <?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => "pedido"]) ?> <div class="tab-pane fade" id="navs-pills-top-internal-messages" role="tabpanel">
</div> <?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => "pedido"]) ?>
</div>
<?php } ?>
</div> </div>
</div> </div>
</div> </div>

View File

@ -15,17 +15,21 @@
<li class="nav-item"> <li class="nav-item">
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false">Chat</button> <button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false">Chat</button>
</li> </li>
<?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<li class="nav-item"> <li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false">Mensajes internos</button> <button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false">Mensajes internos</button>
</li> </li>
<?php } ?>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane fade show active" id="navs-pills-top-chat" role="tabpanel"> <div class="tab-pane fade show active" id="navs-pills-top-chat" role="tabpanel">
<?= view("themes/vuexy/components/chat_presupuesto", data: ["modelId" => $modelId, "type" => "presupuesto"]) ?> <?= view("themes/vuexy/components/chat_presupuesto", data: ["modelId" => $modelId, "type" => "presupuesto"]) ?>
</div> </div>
<div class="tab-pane fade" id="navs-pills-top-internal-messages" role="tabpanel"> <?php if (auth()->user()->inGroup('admin') || auth()->user()->inGroup('beta')) { ?>
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => "presupuesto"]) ?> <div class="tab-pane fade" id="navs-pills-top-internal-messages" role="tabpanel">
</div> <?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => "presupuesto"]) ?>
</div>
<?php } ?>
</div> </div>
</div> </div>
</div> </div>

View File

@ -37,16 +37,6 @@
<!-- CHAT LIST --> <!-- CHAT LIST -->
</ul> </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>
</div> </div>
<!-- /Chat contacts --> <!-- /Chat contacts -->

View File

@ -1,4 +1,4 @@
<div class="container-xl flex-grow-1 container-p-y" id="chat-presupuesto" data-id="<?= $modelId ?>"> <div id="chat-presupuesto" data-id="<?= $modelId ?>">
<div class="app-chat card overflow-hidden"> <div class="app-chat card overflow-hidden">
<div class="row g-0"> <div class="row g-0">

View File

@ -122,7 +122,7 @@ $picture = "/assets/img/default-user.png";
<div class="dropdown-menu dropdown-menu-end py-0"> <div class="dropdown-menu dropdown-menu-end py-0">
<div class="dropdown-menu-header border-bottom"> <div class="dropdown-menu-header border-bottom">
<div class="dropdown-header d-flex align-items-center py-3"> <div class="dropdown-header d-flex align-items-center py-3">
<h5 class="text-body mb-0 me-auto">Chats</h5> <h5 class="text-body mb-0 me-auto"><?= lang("Chat.messages") ?></h5>
</div> </div>
</div> </div>

View File

@ -54,14 +54,15 @@ class Chat {
if (this.chatContactsBody[0]) { if (this.chatContactsBody[0]) {
this.scrollbarContacts = new PerfectScrollbar(this.chatContactsBody[0], { this.scrollbarContacts = new PerfectScrollbar(this.chatContactsBody[0], {
wheelPropagation: false, wheelPropagation: false,
suppressScrollX: true suppressScrollX: true,
}); });
} }
if (this.chatHistoryBody[0]) { if (this.chatHistoryBody[0]) {
this.scrollbarChatHistory = new PerfectScrollbar(this.chatHistoryBody[0], { this.scrollbarChatHistory = new PerfectScrollbar(this.chatHistoryBody[0], {
wheelPropagation: false, wheelPropagation: false,
suppressScrollX: true suppressScrollX: true,
}); });
} }
} }

View File

@ -5,7 +5,9 @@ $(document).ready(() => {
let chat = new Chat($("#chat-factura")) let chat = new Chat($("#chat-factura"))
chat.init() chat.init()
chat.initFactura() chat.initFactura()
if($("#internal_messages_chat").length > 0){
let internalMessages = new InternalMessages($("#internal_messages_chat")) let internalMessages = new InternalMessages($("#internal_messages_chat"))
internalMessages.init() internalMessages.init()
}
}) })

View File

@ -5,7 +5,9 @@ $(document).ready(() => {
let chat = new Chat($("#chat-pedido")) let chat = new Chat($("#chat-pedido"))
chat.init() chat.init()
chat.initPedido() chat.initPedido()
let internalMessages = new InternalMessages($("#internal_messages_chat")) if($("#internal_messages_chat").length > 0){
internalMessages.init() let internalMessages = new InternalMessages($("#internal_messages_chat"))
internalMessages.init()
}
}) })

View File

@ -5,7 +5,9 @@ $(document).ready(() => {
let chat = new Chat($("#chat-presupuesto")) let chat = new Chat($("#chat-presupuesto"))
chat.init() chat.init()
chat.initPresupuesto() chat.initPresupuesto()
if($("#internal_messages_chat").length > 0){
let internalMessages = new InternalMessages($("#internal_messages_chat")) let internalMessages = new InternalMessages($("#internal_messages_chat"))
internalMessages.init() internalMessages.init()
}
}) })

View File

@ -7,7 +7,7 @@ a.send-msg-btn {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.layout-horizontal .app-chat { .layout-horizontal .app-chat {
height: calc(100vh - 11.5rem - 2.2rem) !important; height: calc(100vh - 20rem - 2.2rem) !important;
} }
} }
@media (max-width: 992px) { @media (max-width: 992px) {
@ -35,7 +35,7 @@ a.send-msg-btn {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.layout-horizontal .app-chat .app-chat-contacts { .layout-horizontal .app-chat .app-chat-contacts {
height: calc(100vh - 11.5rem - 2.2rem); height: calc(100vh - 20rem - 2.2rem);
} }
} }
@media (min-width: 992px) { @media (min-width: 992px) {
@ -97,7 +97,7 @@ a.send-msg-btn {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.layout-horizontal .app-chat .app-chat-sidebar-left { .layout-horizontal .app-chat .app-chat-sidebar-left {
height: calc(100vh - 11.5rem - 2.2rem); height: calc(100vh - 20rem - 2.2rem);
} }
} }
.app-chat .app-chat-sidebar-left.show { .app-chat .app-chat-sidebar-left.show {
@ -119,7 +119,7 @@ a.send-msg-btn {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.layout-horizontal .app-chat .app-chat-history { .layout-horizontal .app-chat .app-chat-history {
height: calc(100vh - 11.5rem - 2.2rem); height: calc(100vh - 20rem - 2.2rem);
} }
} }
.app-chat .app-chat-history .chat-history-header { .app-chat .app-chat-history .chat-history-header {
@ -182,7 +182,7 @@ a.send-msg-btn {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.layout-horizontal .app-chat .app-chat-sidebar-right { .layout-horizontal .app-chat .app-chat-sidebar-right {
height: calc(100vh - 11.5rem - 2.2rem); height: calc(100vh - 20rem - 2.2rem);
} }
} }
.app-chat .app-chat-sidebar-right.show { .app-chat .app-chat-sidebar-right.show {