mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'fix/permisos-mensajeria-sidebar' into 'main'
Fix/permisos mensajeria sidebar See merge request jjimenez/safekat!665
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
return [
|
||||
'apellidos' => 'Apellidos',
|
||||
'cargo' => 'Cargo',
|
||||
'cargo_null' => 'Sin cargo',
|
||||
'cliente' => 'Cliente ID',
|
||||
'cliente-contactos' => 'Contactos de cliente',
|
||||
'clienteId' => 'Cliente ID',
|
||||
|
||||
@ -770,7 +770,7 @@ class ChatModel extends Model
|
||||
->join("users u", "u.id = cm.sender_id", 'left')
|
||||
->where("chats.presupuesto_id is NOT NULL", NULL, FALSE);
|
||||
|
||||
if (auth()->user()->inGroup("admin") == false) {
|
||||
if (auth()->user()->inGroup("cliente-administrador","cliente")) {
|
||||
$query->where('presupuestos.cliente_id', auth()->user()->cliente_id)
|
||||
->where("chats.chat_department_id is NOT NULL", NULL, FALSE);
|
||||
}
|
||||
@ -801,7 +801,7 @@ class ChatModel extends Model
|
||||
->join("presupuestos", "presupuestos.id = pedidos_linea.presupuesto_id", 'left')
|
||||
->where("chats.pedido_id is NOT NULL", NULL, FALSE);
|
||||
|
||||
if (auth()->user()->inGroup("admin") == false) {
|
||||
if (auth()->user()->inGroup("cliente-administrador","cliente")) {
|
||||
$query->where('presupuestos.cliente_id', auth()->user()->cliente_id)
|
||||
->where("chats.chat_department_id is NOT NULL", NULL, FALSE);
|
||||
}
|
||||
@ -831,12 +831,10 @@ class ChatModel extends Model
|
||||
->join("facturas", "facturas.id = chats.factura_id", "left")
|
||||
->where("chats.factura_id is NOT NULL", NULL, FALSE);
|
||||
|
||||
if (auth()->user()->inGroup("admin") == false) {
|
||||
if (auth()->user()->inGroup("admin") == false) {
|
||||
if (auth()->user()->inGroup("cliente-administrador","cliente")) {
|
||||
$query->where('facturas.cliente_id', auth()->user()->cliente_id)
|
||||
->where("chats.chat_department_id is NOT NULL", NULL, FALSE);
|
||||
}
|
||||
}
|
||||
return $query->groupBy('chatMessageId');
|
||||
}
|
||||
public function createNewDirectChat(string $title, string $message, array $users)
|
||||
|
||||
@ -596,7 +596,7 @@ class ClienteModel extends \App\Models\BaseModel
|
||||
$query = $this->builder()->select([
|
||||
"cliente_contactos.id",
|
||||
"CONCAT(COALESCE(cliente_contactos.nombre,''),' ',COALESCE(cliente_contactos.apellidos,'')) as name",
|
||||
'cliente_contactos.cargo as description'
|
||||
"COALESCE(cliente_contactos.cargo,'".lang("ClienteContactos.cargo_null")."') as description"
|
||||
])
|
||||
->join('cliente_contactos', 'cliente_contactos.cliente_id = clientes.id', 'left')
|
||||
->where('cliente_contactos.deleted_at',null)
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
</div>
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
<div class="mb-0 px-4 pt-3 pb-2">
|
||||
<select class="form-control chat-search-client"></select>
|
||||
</div>
|
||||
@ -68,7 +68,7 @@
|
||||
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
|
||||
<div class="ml-2 px-2">
|
||||
<button type="button" class="btn btn-danger btn-sm exit-chat">
|
||||
@ -121,7 +121,7 @@
|
||||
placeholder="<?= lang('Chat.write_message_placeholder') ?>" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
<button type="button" class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment" disabled>
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
|
||||
@ -13,19 +13,19 @@
|
||||
<div class="nav-align-top">
|
||||
<ul class="nav nav-pills mb-4" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link <?=!auth()->user()->inGroup('cliente-editor','cliente') ? "" : "active" ?>" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false"><?=lang('Chat.messages_client')?></button>
|
||||
<button type="button" class="nav-link <?=!auth()->user()->inGroup('cliente-administrador','cliente') ? "" : "active" ?>" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false"><?=lang('Chat.messages_client')?></button>
|
||||
</li>
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')) { ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')) { ?>
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false"><?=lang('Chat.messages_internal')?></button>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade <?=!auth()->user()->inGroup('cliente-editor','cliente') ? "" : "show active" ?>" id="navs-pills-top-chat" role="tabpanel">
|
||||
<div class="tab-pane fade <?=!auth()->user()->inGroup('cliente-administrador','cliente') ? "" : "show active" ?>" id="navs-pills-top-chat" role="tabpanel">
|
||||
<?= view("themes/vuexy/components/chat_factura", data: ["modelId" => $modelId,"type" => "factura"]) ?>
|
||||
</div>
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')) { ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')) { ?>
|
||||
<div class="tab-pane fade show active" id="navs-pills-top-internal-messages" role="tabpanel">
|
||||
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId,"type" => "factura"]) ?>
|
||||
</div>
|
||||
|
||||
@ -13,19 +13,19 @@
|
||||
<div class="nav-align-top">
|
||||
<ul class="nav nav-pills mb-4" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link <?=!auth()->user()->inGroup('cliente-editor','cliente') ? "" : "active" ?>" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false"><?=lang('Chat.messages_client')?></button>
|
||||
<button type="button" class="nav-link <?=!auth()->user()->inGroup('cliente-administrador','cliente') ? "" : "active" ?>" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false"><?=lang('Chat.messages_client')?></button>
|
||||
</li>
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')) { ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')) { ?>
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false"><?=lang('Chat.messages_internal')?></button>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade <?=!auth()->user()->inGroup('cliente-editor','cliente') ? "" : "show active" ?>" id="navs-pills-top-chat" role="tabpanel">
|
||||
<div class="tab-pane fade <?=!auth()->user()->inGroup('cliente-administrador','cliente') ? "" : "show active" ?>" id="navs-pills-top-chat" role="tabpanel">
|
||||
<?= view("themes/vuexy/components/chat_pedido", data: ["modelId" => $modelId, "type" => "pedido"]) ?>
|
||||
</div>
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')) { ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')) { ?>
|
||||
<div class="tab-pane fade show active" id="navs-pills-top-internal-messages" role="tabpanel">
|
||||
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => "pedido"]) ?>
|
||||
</div>
|
||||
|
||||
@ -13,19 +13,19 @@
|
||||
<div class="nav-align-top">
|
||||
<ul class="nav nav-pills mb-4" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link <?= !auth()->user()->inGroup('cliente-editor','cliente') ? "" : "active" ?>" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false"><?= lang('Chat.messages_client') ?></button>
|
||||
<button type="button" class="nav-link <?= !auth()->user()->inGroup('cliente-administrador','cliente') ? "" : "active" ?>" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-chat" aria-controls="navs-pills-top-internal-chat" aria-selected="false"><?= lang('Chat.messages_client') ?></button>
|
||||
</li>
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')) { ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')) { ?>
|
||||
<li class="nav-item">
|
||||
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-pills-top-internal-messages" aria-controls="navs-pills-top-internal-messages" aria-selected="false"><?= lang('Chat.messages_internal') ?></button>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade <?= !auth()->user()->inGroup('cliente-editor','cliente') ? "" : "show active" ?>" id="navs-pills-top-chat" role="tabpanel">
|
||||
<div class="tab-pane fade <?= !auth()->user()->inGroup('cliente-administrador','cliente') ? "" : "show active" ?>" id="navs-pills-top-chat" role="tabpanel">
|
||||
<?= view("themes/vuexy/components/chat_presupuesto", data: ["modelId" => $modelId, "type" => "presupuesto"]) ?>
|
||||
</div>
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')) { ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')) { ?>
|
||||
<div class="tab-pane fade show active" id="navs-pills-top-internal-messages" role="tabpanel">
|
||||
<?= view("themes/vuexy/components/internal_messages", data: ["modelId" => $modelId, "type" => "presupuesto"]) ?>
|
||||
</div>
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
<div class="chat-contact-list-item-title">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
<div class="mb-0 px-4 pt-3 pb-2">
|
||||
<select class="form-control chat-search-client"></select>
|
||||
</div>
|
||||
@ -67,7 +67,7 @@
|
||||
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
|
||||
<div class="ml-2 px-2">
|
||||
<button type="button" class="btn btn-danger btn-sm exit-chat">
|
||||
@ -118,7 +118,7 @@
|
||||
<input class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="<?= lang('Chat.write_message_placeholder') ?>" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
<button type="button" class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment" disabled>
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
<hr class="container-m-nx m-0" />
|
||||
<div class="sidebar-body">
|
||||
<div class="chat-contact-list-item-title">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
<div class="mb-0 px-4 pt-3 pb-2">
|
||||
<select class="form-control chat-search-client"></select>
|
||||
</div>
|
||||
@ -69,7 +69,7 @@
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
|
||||
<div class="ml-2 px-2">
|
||||
<button type="button" class="btn btn-danger btn-sm exit-chat">
|
||||
@ -117,7 +117,7 @@
|
||||
<input class="form-control message-input border-0 me-3 shadow-none"
|
||||
placeholder="<?= lang('Chat.write_message_placeholder') ?>" />
|
||||
<div class="message-actions d-flex align-items-center">
|
||||
<?php if (!auth()->user()->inGroup('cliente-editor','cliente')): ?>
|
||||
<?php if (!auth()->user()->inGroup('cliente-administrador','cliente')): ?>
|
||||
<button type="button" class="btn btn-primary d-flex send-msg-btn" style="color:white"
|
||||
id="send-msg-btn-deparment" disabled>
|
||||
<i class="ti ti-send me-md-1 me-0"></i>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/**
|
||||
* MENU MENSAJES
|
||||
*/
|
||||
if (auth()->user()->inGroup('cliente-editor')) {
|
||||
if (!auth()->user()->inGroup('cliente-administrador','cliente')) {
|
||||
?>
|
||||
<!-- Mensajeria -->
|
||||
<li class="menu-item">
|
||||
|
||||
@ -7,6 +7,7 @@ class MessagesDatatable {
|
||||
this.datatablePresupuestoMessageItem = this.item.find("#tablePresupuestoMessages")
|
||||
this.datatablePedidoMessageItem = this.item.find("#tablePedidoMessages")
|
||||
this.datatableFacturaMessageItem = this.item.find("#tableFacturaMessages")
|
||||
this.focusTable = this.datatableItem
|
||||
this.columnDefs = [
|
||||
]
|
||||
this.datatableColumns = [
|
||||
@ -49,7 +50,7 @@ class MessagesDatatable {
|
||||
init() {
|
||||
this.item.on('click', '.btn-notification-viewed', (event) => {
|
||||
const chatMessageId = $(event.currentTarget).data('id')
|
||||
$(`#dropdown-viewed-${chatMessageId}`).empty()
|
||||
this.focusTable.find(`#dropdown-viewed-${chatMessageId}`).empty()
|
||||
this.handleDropUp(chatMessageId)
|
||||
})
|
||||
|
||||
@ -160,27 +161,15 @@ class MessagesDatatable {
|
||||
const notifications = response.data.notifications
|
||||
|
||||
if (notifications.length > 0) {
|
||||
|
||||
notifications.forEach(user => {
|
||||
if (user.userFullName || user.userName) {
|
||||
|
||||
$(`#dropdown-viewed-${chat_message_id}`)
|
||||
console.log(user.userFullName)
|
||||
this.focusTable.find(`#dropdown-viewed-${chat_message_id}`)
|
||||
.append(this.addDropUpItem(user))
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
// if (viewedNotifications.length > 0) {
|
||||
|
||||
// viewedNotifications.forEach(user => {
|
||||
// if (user.userFullName || user.userName) {
|
||||
|
||||
// $(`#dropdown-viewed-${chat_message_id}`)
|
||||
// .append(this.addDropUpItem(user))
|
||||
// }
|
||||
|
||||
// });
|
||||
// }
|
||||
}
|
||||
handleDropUpError() { }
|
||||
addDropUpItem(user)
|
||||
|
||||
@ -40,15 +40,19 @@ class MessagePage {
|
||||
|
||||
$("#navs-top-align-all-tab").on("click",()=>{
|
||||
this.messageDatatable.datatable.ajax.reload()
|
||||
this.messageDatatable.focusTable = this.messageDatatable.datatableItem
|
||||
})
|
||||
$("#navs-top-align-presupuestos-tab").on("click",()=>{
|
||||
this.messageDatatable.datatablePresupuestoMessage.ajax.reload()
|
||||
this.messageDatatable.focusTable = this.messageDatatable.datatablePresupuestoMessageItem
|
||||
})
|
||||
$("#navs-top-align-pedidos-tab").on("click",()=>{
|
||||
this.messageDatatable.datatablePedidoMessage.ajax.reload()
|
||||
this.messageDatatable.focusTable = this.messageDatatable.datatablePedidoMessageItem
|
||||
})
|
||||
$("#navs-top-align-facturas-tab").on("click",()=>{
|
||||
this.messageDatatable.datatableFacturaMessage.ajax.reload()
|
||||
this.messageDatatable.focusTable = this.messageDatatable.datatableFacturaMessageItem
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user