|
|
|
@ -11,25 +11,47 @@
|
|
|
|
|
{{session('error')}} |
|
|
|
|
</div> |
|
|
|
|
@endif |
|
|
|
|
<div class="header flex flex-col items-center gap-4 mt-2 mb-8"> |
|
|
|
|
<div class="flex justify-between items-center w-full mb-5"> |
|
|
|
|
<div class="header flex flex-col"> |
|
|
|
|
<div class="flex items-center gap-3 w-full mb-5 " style="justify-content: space-between;"> |
|
|
|
|
<h1 class=" text-gray-900 dark:text-gray-100 text-3xl font-bold text-center"> |
|
|
|
|
Mensagens de Sistema |
|
|
|
|
</h1> |
|
|
|
|
@can('store_system_message') |
|
|
|
|
<button class="bg-blue-500 hover:bg-opacity-90 transition-all text-white py-2 px-6 rounded text-base overflow-hidden" @click="modal = !modal" type="button">Cadastrar Mensagens</button> |
|
|
|
|
<button class="bg-blue-500 hover:bg-opacity-90 transition-all text-white py-2 px-6 rounded text-base overflow-hidden" @click="modal = !modal" type="button">Cadastrar Mensagens</button> |
|
|
|
|
@endcan |
|
|
|
|
</div> |
|
|
|
|
<form class="filtros flex items-center gap-3 " method="get" action="{{route('systemMessage')}}"> |
|
|
|
|
<div class="flex-1 flex flex-col gap-1" style="max-width: 300px;"> |
|
|
|
|
<label class="text-gray-900 dark:text-gray-100">Canal: </label> |
|
|
|
|
<select id="filtroCanal" class="w-full dark:bg-gray-800 placeholder:text-gray-800 dark:placeholder:text-gray-100 dark:text-gray-100" name="channel"> |
|
|
|
|
<option value="" {{ empty($selected->channel) ? 'selected disabled' : '' }}>--------------------</option> |
|
|
|
|
@foreach($channels as $channel) |
|
|
|
|
<option value="{{ $channel->id}}" {{ !empty($selected->channel) && ($channel->id == $selected->channel) ? 'selected' : '' }}> |
|
|
|
|
{{ $channel->title }} |
|
|
|
|
</option> |
|
|
|
|
@endforeach |
|
|
|
|
</select> |
|
|
|
|
</div> |
|
|
|
|
<div class="flex-1 flex flex-col gap-1" style="max-width: 300px;"> |
|
|
|
|
<label class="text-gray-900 dark:text-gray-100">Fila: </label> |
|
|
|
|
<select id="filtroFila" class="w-full dark:bg-gray-800 placeholder:text-gray-800 dark:placeholder:text-gray-100 dark:text-gray-100" name="queue"></select> |
|
|
|
|
</div> |
|
|
|
|
<div class="flex-1 flex flex-col gap-1" style="background-color: transparent; margin-top: 25px;"> |
|
|
|
|
<button class="lg:ml-auto ml-0 bg-blue-900 hover:bg-opacity-90 transition-all text-white py-2 px-6 rounded text-lg overflow-hidden">Pesquisar</button> |
|
|
|
|
</div> |
|
|
|
|
</form> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div class="body mt-4 overflow-auto rounded-lg shadow"> |
|
|
|
|
<table class="w-full"> |
|
|
|
|
<thead class="bg-gray-50 dark:bg-gray-700 dark:text-gray-100"> |
|
|
|
|
<tr> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left ">ID</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">ID</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">Texto</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">Ordem</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">Momento</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">Fila</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">Canal</th> |
|
|
|
|
<th class="p-3 text-sm font-semibold tracking-wide text-left">Ações</th> |
|
|
|
|
</tr> |
|
|
|
|
</thead> |
|
|
|
@ -41,6 +63,8 @@
|
|
|
|
|
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 sequence sequence-{{$systemMessage->id}}">{{$systemMessage->ordem}}</td> |
|
|
|
|
|
|
|
|
|
<td class="p-3 text-sm text-gray-700 dark:text-gray-100">{{$systemMessage->momento}}</td> |
|
|
|
|
<td class="p-3 text-sm text-gray-700 dark:text-gray-100">{{$systemMessage->name_queue}}</td> |
|
|
|
|
<td class="p-3 text-sm text-gray-700 dark:text-gray-100">{{$systemMessage->name_channel}}</td> |
|
|
|
|
<td class="p-3 text-sm font-bold flex items-center gap-2 flex-wrap"> |
|
|
|
|
@can('edit_system_message') |
|
|
|
|
<button class="bg-blue-600 text-white p-2 rounded w-full text-lg" title="editar mensagem" onclick="atualizasystemMessage(<?= $systemMessage->id ?>)"><i class="fas fa-edit"></i></button>
|
|
|
|
@ -63,9 +87,72 @@
|
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<x-modal.insert.modalSystemMessage></x-modalSystemMessage> |
|
|
|
|
<x-modal.edit.modalEditSystemMessage></x-modalEditSystemMessage> |
|
|
|
|
<x-modal.insert.modalSystemMessage :channels="$channels" :queues="$queues"></x-modalSystemMessage> |
|
|
|
|
<x-modal.edit.modalEditSystemMessage :channels="$channels" :queues="$queues"></x-modalEditSystemMessage> |
|
|
|
|
|
|
|
|
|
<script> let queues = []; </script> |
|
|
|
|
@foreach($queues as $queue) |
|
|
|
|
<script> |
|
|
|
|
queues.push({id:{{$queue->id}}, id_number: {{$queue->id_number}}, nome: "{{$queue->name}}"}); |
|
|
|
|
</script> |
|
|
|
|
@endforeach |
|
|
|
|
|
|
|
|
|
<script src="{{ asset('js/views/systemMessages/cadastroSystemMessage.js') }}"></script> |
|
|
|
|
<script> |
|
|
|
|
const selectedChannel = "<?php isset($selected->channel) ? print($selected->channel) : print("") ?>";
|
|
|
|
|
const selectedQueue = "<?php isset($selected->queue) ? print($selected->queue) : print("") ?>";
|
|
|
|
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
|
|
const channelSelect = document.getElementById('filtroCanal'); |
|
|
|
|
const queueSelect = document.getElementById('filtroFila'); |
|
|
|
|
|
|
|
|
|
function updateFiltroQueues(selectedChannelId) { |
|
|
|
|
const filteredQueues = queues.filter(queue => queue.id_number === selectedChannelId); |
|
|
|
|
|
|
|
|
|
// Limpa as opções anteriores |
|
|
|
|
queueSelect.innerHTML = ''; |
|
|
|
|
|
|
|
|
|
const option = document.createElement('option'); |
|
|
|
|
option.value = ""; |
|
|
|
|
option.textContent = "--------------------"; |
|
|
|
|
|
|
|
|
|
if (selectedQueue != null ) { |
|
|
|
|
option.selected = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
queueSelect.appendChild(option); |
|
|
|
|
|
|
|
|
|
// Adiciona as novas opções |
|
|
|
|
filteredQueues.forEach(queue => { |
|
|
|
|
const option = document.createElement('option'); |
|
|
|
|
option.value = queue.id; |
|
|
|
|
option.textContent = queue.nome; |
|
|
|
|
|
|
|
|
|
if (selectedQueue == queue.id ) { |
|
|
|
|
option.selected = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
queueSelect.appendChild(option); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Mostra a div de fila se houver filas correspondentes |
|
|
|
|
if (filteredQueues.length > 0) { |
|
|
|
|
queueDiv.style.display = 'block'; |
|
|
|
|
} else { |
|
|
|
|
queueDiv.style.display = 'none'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (selectedChannel != null) { |
|
|
|
|
updateFiltroQueues(+selectedChannel); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Adiciona o evento de mudança no select de canal |
|
|
|
|
channelSelect.addEventListener('change', function() { |
|
|
|
|
const selectedChannelId = parseInt(channelSelect.value); |
|
|
|
|
updateFiltroQueues(selectedChannelId); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<script src="{{ asset('js/views/systemMessages/cadastroSystemMessage.js') }}" channels="{{$channels}}"; queues="{{$queues}}";></script> |
|
|
|
|
</x-app-layout> |