Browse Source

alteracoes layout

pull/4/head
guilherme guia 2 years ago
parent
commit
935f370fcc
  1. 40
      app/view/content.php
  2. 2
      app/view/header.php
  3. 19
      index.php
  4. 578
      public/css/styles.css
  5. 68
      public/css/teste
  6. BIN
      public/images/lua.png
  7. BIN
      public/images/send-message.png
  8. BIN
      public/images/seta-para-baixo.png
  9. BIN
      public/images/settings.png
  10. BIN
      public/images/sol.png
  11. 11
      public/index.html
  12. 20
      public/js/config.js
  13. 614
      public/js/main.js
  14. 33
      public/js/requests.js
  15. 907
      public/js/util.js
  16. 6095
      public/js/waveSurfer.js

40
app/view/content.php

@ -13,21 +13,42 @@
<div class="sidebar-header-icons">
<div id="btnsPause"></div>
<img src="<?= $files ?>/images/power.svg" id="exitSystem" alt="Desconectar do Chat" title="Sair do sistema" />
<!-- <img src="<?= $files ?>/images/settings.png" title="Configurações" id="configs"/> -->
<input type="checkbox" class="checkbox-switch" id="input-checkbox-switch">
<label for="input-checkbox-switch" class="label-switch">
<!-- <span><i class="fas fa-sun"></i></span>
<span><i class="fas fa-moon"></i></span> -->
<div class="switch-ball light-mode">
<span><i class="fas fa-sun"></i></span>
</div>
</label>
</div>
</div>
<div class="box-event-buttons">
<button class="btn-atendimento button-selected" id="btnAtendimento">Em atendimento </button>
<button class="btn-fila" id="btnFila">Em espera</button>
</div>
<div class="search">
<i class="fas fa-search search-icon"></i>
<input type="text" class="search-form" placeholder="Search">
</div>
<div class="chats" id="chats"></div>
<div class="chats" id="chats">
</div>
<div class="estatisticas">
</div>
</div>
<div class="main">
<div class="chat-window-header">
<div class="chat-window-header-left" id="headermediaagent">
<span class="btn-exit-chat" id="exitChat"><i class="fas fa-arrow-left"></i></span>
<img class="chat-window-contact-image" src="<?= $files ?>/images/whatsapp.png" />
<div class="contact-name-and-status-container">
<span class="chat-window-contact-name"></span>
<span class="chat-window-contact-status">WhatsApp</span>
</div>
</div>
<div class="chat-window-header-right" id="headerbuttonsagent">
<!-- <div class="chat-window-header-right" id="headerbuttonsagent">
<div class="chat-window-header-right-commands btn-info" id="tranferagent" title="Transferir atendimento">
<img class="chat-window-menu-icon" src="<?= $files ?>/images/redo.svg" />
<span class="chat-window-menu-span"> Transferir</span>
@ -36,7 +57,7 @@
<img class="chat-window-menu-icon" src="<?= $files ?>/images/cross-circle.svg" />
<span class="chat-window-menu-span"> Finalizar</span>
</div>
</div>
</div> -->
</div>
<div class="chat-window" id="chatwindowagent">
@ -56,18 +77,18 @@
</label>
<input id="uploadimage" accept="image/*,video/mp4,video/3gpp,video/quicktime" type="file" multiple="" style="display: none;">
</div>
<div class="type-message-bar" id="typemessagebar">
<div class="type-message-bar-left">
<img src="<?= $files ?>/images/microphone.svg" id="voicerecorder" title="Enviar mensagem de audio" />
<img src="<?= $files ?>/images/clip.svg" id="imgclip" title="Anexar arquivo ou imagem" />
</div>
<div class="type-message-bar-center">
<textarea rows="1" type="text" id="fieldsendmessage" placeholder="Escreva uma mensagem" style="resize: none;"></textarea>
</div>
<div class="type-message-bar-right flex-center">
<img src="<?= $files ?>/images/paper-plane.svg" title="Enviar mensagem" />
<img src="<?= $files ?>/images/microphone.svg" id="voicerecorder" title="Enviar mensagem de audio" class="icons file"/>
<img src="<?= $files ?>/images/clip.svg" id="imgclip" title="Anexar arquivo ou imagem" class="icons file"/>
<img src="<?= $files ?>/images/send-message.png" title="Enviar mensagem" class="icons send"/>
</div>
</div>
</div>
</div>
</div>
@ -90,6 +111,9 @@
</div>
</div>
<script>
let modal = document.getElementById("modalselect");
let span = document.getElementsByClassName("close")[0];

2
app/view/header.php

@ -8,4 +8,6 @@
<title>Simples IP - Simples Client</title>
<link rel="icon" href="<?= $files ?>/images/favicon.ico" />
<link rel="stylesheet" href="<?= $files ?>/css/styles.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"/>
</head>

19
index.php

@ -23,34 +23,21 @@ if ($geturl['t'] == 'gerar' && $post['passwd'] == 'S1MPL3S1P_CH4T') {
];
$token = $crypt->encrypt(json_encode($info, true));
echo "Token: <input type='text' value='{$token}' size='90'><br><br>";
echo "<a href='http://{$post['servidor']}:8001/?t=$token' target='_blank'><b>Ir para</b></a>";
// echo "<a href='http://{$post['servidor']}:8001/?t=$token' target='_blank'><b>Ir para</b></a>";
echo "<a href='http://localhost:8001/?t=$token' target='_blank'><b>Ir para</b></a>";
exit;
}
/**
id_empresa
id_number
my_uniqueid
obj_queue
obj_server
obj_ws
**/
if ($geturl['t']) {
$json = json_decode($crypt->decrypt(str_replace(' ', '+', $geturl['t'])), true);
$objs = [
<<<<<<< HEAD
'id_empresa' => $json['id_empresa'],
'obj_server' => $json['servidor'],
'my_uniqueid' => $json['matricula'],
'obj_queue' => $json['fila'],
=======
'id_number' => $json['id_number'],
'id_empresa' => $json['id_empresa'],
'obj_server' => $json['servidor'],
'my_uniqueid' => $json['matricula'],
'obj_queue' => $json['fila'],
>>>>>>> 1e181ff (ajustes de funcionalidades)
'obj_ws' => $json['websocket'],
'session_uniqueid' => null,
'obj_notification' => null,

578
public/css/styles.css

@ -15,11 +15,17 @@ body {
height: 100%;
}
img {
max-width: 100%;
display: block;
}
html {
font-size: 62.5%;
}
body {
/* background-color: #41444d; */
font-family: "Segoe UI", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
@ -29,16 +35,18 @@ a {
}
/* Variables */
:root {
html {
--background-green: #fdfdfd;
--background-beige: #fdfdfd;
--sidebar-header: #ededed;
--bg-light-dark: #fff;
--notifications-text-color: rgba(48, 48, 48, 0.96);
--notifications-link-color: rgba(48, 48, 48, 0.85);
--notifications-background-color: #9de1fe;
--search-bar-bg: #f6f6f6;
--white: #ffffff;
--text-gray: #919191;
--text-primary: #262626;
--text-secondary: #262626;
--chat-border: #ededed;
--messenger-color: #0280f5;
--whatsapp-color: #24d366;
@ -47,15 +55,116 @@ a {
--chat-window-scrollbar-color: #bab3ae;
--box-shadow-color: #d5d5d5;
--backround-chat-panel: #fdfdfd;
--chat-hover-color: #f5f5f5;
--chat-active-color: #ebebeb;
--chat-hover-color: #e8e8e8;
/* --chat-hover-color: red; */
--chat-active-color: #d7d7d7;
--chat-window-beige: #fdfdfd;
--sender-message-green: #20416A;
--events-message: #f3f3f3;
--sender-message-green: #20416a;
--sender-message: #fff;
--events-message: #fff;
/* --events-message: #fff; */
--type-message-bar: #f0f0f0;
--backgroup-icons-upload: #E9E9E9;
--background-color-message-receive: #E9E9E9;
--color-message-receive: #FFF;
--backgroup-icons-upload: #e9e9e9;
--background-color-message-receive: #e9e9e9;
--receive-message: #e9e9e9;
--color-message-receive: #fff;
--bg: #f3f5f7;
--color-moon: #f1c40f;
}
/* Personalizações */
.box-event-buttons {
width: 100%;
padding: 1rem 1.5rem;
background-color: var(--bg);
/* padding: 1rem 1.5rem; */
/* border-radius: 1rem; */
display: flex;
justify-content: space-around;
}
.estatisticas {
border-top: 2px solid var(--bg);
/* background-color: var(--bg); */
padding: 1rem 1.5rem;
gap: 0.5rem;
display: flex;
flex-direction: column;
align-items: start;
}
.estatisticas span {
font-size: 1.4rem;
font-weight: 700;
line-height: 14px;
color: var(--text-primary);
}
.box-event-buttons button {
cursor: pointer;
width: 50%;
border-radius: 1rem;
font-size: 1.3rem;
border: 0;
padding: 1.5rem 2rem;
color: var(--text-primary);
transition: .2s ease-in;
background: transparent;
}
.button-selected {
background-color: var(--bg-light-dark) !important;
font-weight: bold;
}
.search {
position: relative;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem 3rem;
}
.search input {
width: 100%;
font-size: 1.5rem;
color: var(--text-primary);
border-radius: 1.5rem;
background-color: var(--bg);
border: 0;
/* outline-color: var(--); */
padding: 1.5rem 2rem 1.5rem 3rem;
}
.search input::placeholder {
color: var(--text-primary);
}
.search-icon {
position: absolute;
left: 3.9rem;
font-size: 1.7rem;
width: 1.8rem;
color: var(--text-primary);
}
.btn-exit-chat {
display: none;
padding: 0.5rem;
}
.btn-exit-chat i {
font-size: 1.5rem;
color: var(--text-primary);
}
/************
@ -80,6 +189,7 @@ a {
grid-row: 1 / -1;
width: 100%;
border: 1px solid rgba(0, 0, 0, 0.1);
background-color: var(--bg-light-dark);
box-shadow: 0 0 2rem 1rem rgba(0, 0, 0, 0.3);
}
@ -89,7 +199,7 @@ a {
.sidebar {
grid-column: 1 / 2;
background: var(--white);
/* background: var(--white); */
border-right: 1px solid rgba(226, 226, 226, 0.7);
}
@ -99,7 +209,7 @@ a {
font-size: 10px;
font-weight: 700;
line-height: 14px;
color: #919191;
color: var(--text-primary);
}
.sidebar-name {
@ -112,7 +222,7 @@ a {
/* Sidebar header */
.sidebar-header {
background: var(--sidebar-header);
background: var(--bg-light-dark);
display: flex;
justify-content: space-between;
height: 6rem;
@ -215,17 +325,23 @@ a {
}
.search-bar input::placeholder {
color: var(--text-gray);
color: var(--text-primary);
}
/* Chats */
.chats {
overflow-y: scroll;
overflow-x: hidden;
display: flex;
flex-direction: column;
gap: 1rem;
padding: 0.5rem 3rem;
/* background-color: red; */
}
.chats::-webkit-scrollbar {
width: 0.7rem;
width: 0.6rem;
height: 3rem;
}
@ -236,8 +352,13 @@ a {
.chat {
display: flex;
align-items: center;
background: var(--white);
padding: 1rem 0 0 2rem;
/* background: var(--white); */
padding: 0.5rem 1.5rem;
border-radius: 1rem;
background-color: var(--bg);
/* padding: 1rem 0 0 2rem; */
cursor: pointer;
}
@ -266,7 +387,7 @@ a {
margin-left: 1.5rem;
padding-right: 2rem;
padding-bottom: 1rem;
border-bottom: 1px solid var(--chat-border);
/* border-bottom: 1px solid var(--chat-border); */
}
.chat-right-top {
@ -279,7 +400,7 @@ a {
.contact-name {
font-weight: 500;
font-size: 1.7rem;
color: #585858;
color: var(--text-primary);
}
.chat-message,
@ -300,7 +421,7 @@ a {
}
.chat-message {
color: var(--text-gray);
color: var(--text-primary);
}
.chat-message-group {
@ -330,7 +451,7 @@ a {
.chat-date {
font-size: 1.2rem;
color: var(--text-gray);
color: var(--text-primary);
}
.chat-right-bottom {
@ -393,7 +514,8 @@ a {
.main {
grid-column: 2 / -1;
background: var(--chat-window-beige);
/* background: var(--chat-window-beige); */
background: var(--bg);
position: relative;
}
@ -404,7 +526,7 @@ a {
align-items: center;
height: 6rem;
padding: 1rem 2rem;
background: var(--sidebar-header);
background: var(--bg-light-dark);
cursor: pointer;
}
@ -439,11 +561,12 @@ a {
.chat-window-contact-name {
font-weight: 500;
font-size: 1.7rem;
color: #585858;
/* color: #585858; */
color: var(--text-primary);
}
.chat-window-contact-status {
color: var(--text-gray);
color: var(--text-primary);
font-size: 1.3rem;
}
@ -476,8 +599,9 @@ a {
height: calc(100vh - 78px);
overflow: scroll;
overflow-x: hidden;
background-image: url('../images/wallpaper_simpleschat.png');
background-repeat: repeat;
/* background-image: url("../images/wallpaper_simpleschat.png"); */
/* background-repeat: repeat; */
background-color: var(--bg);
}
.chat-window::-webkit-scrollbar {
@ -504,18 +628,22 @@ a {
.events {
background: var(--events-message);
color: var(--text-primary);
align-self: center;
}
.sender {
background: var(--sender-message-green);
color: var(--color-message-receive);
/* background: var(--bg-light-dark); */
background: var(--sender-message);
color: var(--text-primary);
align-self: flex-end;
border-bottom-right-radius: 0px;
}
.receiver {
background: var(--background-color-message-receive);
background: var(--receive-message);
color: var(--text-primary);
border-bottom-left-radius: 0px;
align-self: flex-start;
}
@ -523,8 +651,22 @@ a {
.sender-message,
.receiver-message {
font-size: 1.4rem;
margin-right: 3rem;
word-break: break-all;
margin-right: 2rem;
/* word-break: break-all; */
}
.receiver-message {
margin-bottom: 1rem;
display: inline-block;
}
.audio {
display: flex;
justify-content: space-between;
align-items: center;
gap: 2rem;
}
.message-column {
@ -532,11 +674,12 @@ a {
flex: 1;
flex-direction: row;
align-items: center;
margin-bottom: 1rem;
}
.message-time,
.audio-message-length {
color: var(--text-gray);
/* color: var(--text-primary); */
font-size: 1rem;
}
@ -548,6 +691,7 @@ a {
.image-message {
width: 33rem;
height: 33rem;
position: relative;
padding: 0.5rem;
cursor: pointer;
@ -613,6 +757,7 @@ input[type="range"]:focus {
outline: none;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
background: #30b6b6;
@ -622,6 +767,7 @@ input[type="range"]::-webkit-slider-thumb {
border-radius: 50%;
}
input[type="range"] {
background: #d8d8d8;
width: 100%;
@ -685,12 +831,12 @@ input[type="range"] {
.type-window-image h1 {
font-size: 40px;
color: var(--chat-window-scrollbar-color);
color: var(--text-primary);
}
.type-window-image h2 {
font-size: 20px;
color: var(--chat-window-scrollbar-color);
color: var(--text-primary);
}
.type-window-image img {
@ -705,7 +851,8 @@ input[type="range"] {
left: 0;
width: 100%;
display: flex;
background: var(--type-message-bar);
background: var(--bg-light-dark);
padding: 1rem 2rem 1rem;
justify-content: space-between;
align-items: center;
@ -722,9 +869,10 @@ input[type="range"] {
flex: 1;
position: absolute;
bottom: 50px;
right: 65px;
overflow: hidden;
height: 120px;
margin-left: -40px;
/* margin-left: -40px; */
z-index: 9999;
}
@ -748,7 +896,10 @@ input[type="range"] {
margin: 0 5px;
}
.type-message-bar-center input, textarea {
.type-message-bar-center input,
textarea {
background-color: var(--bg);
color: var(--text-primary);
width: 100%;
outline: none;
border: none;
@ -764,16 +915,33 @@ input[type="range"] {
.type-message-bar-right {
margin-left: 2rem;
justify-content: center;
display: flex;
gap: 1rem;
}
.type-message-bar-right .icons {
padding: 1rem;
border-radius: 0.5rem;
width: 38px;
height: 38px;
}
.file {
background-color: #fff;
}
.send {
background-color: #268d61;
}
#myImg {
width: 100%;
height: 300px;
border-radius: 5px;
transition: 0.3s;
}
#myImg:hover {
opacity: 0.7;
}
@ -794,6 +962,9 @@ input[type="range"] {
background-color: rgba(0, 0, 0, 0.4);
}
/* Modal Content */
.modal-content {
position: relative;
@ -802,18 +973,27 @@ input[type="range"] {
margin: auto;
padding: 0;
border: 1px solid #888;
width: 30%;
max-width: 600px;
width: 90%;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.4s;
animation-name: animatetop;
animation-duration: 0.4s
animation-duration: 0.4s;
}
.modal-content-body {
/* .modal-content-body {
display: flex;
justify-content: center;
align-items: center;
}
} */
.modal-content-body-item {
flex-direction: column;
@ -824,28 +1004,29 @@ input[type="range"] {
flex: 1;
}
/* Add Animation */
@-webkit-keyframes animatetop {
from {
top: -300px;
opacity: 0
opacity: 0;
}
to {
top: 0;
opacity: 1
opacity: 1;
}
}
@keyframes animatetop {
from {
top: -300px;
opacity: 0
opacity: 0;
}
to {
top: 0;
opacity: 1
opacity: 1;
}
}
@ -858,7 +1039,7 @@ input[type="range"] {
.close:hover,
.close:focus {
color: #FFF;
color: #fff;
text-decoration: none;
cursor: pointer;
}
@ -869,7 +1050,7 @@ input[type="range"] {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
padding: 5px 16px;
background-color: var(--sidebar-header);
background-color: var(--bg-light-dark);
color: #585858;
}
@ -878,6 +1059,7 @@ input[type="range"] {
}
.modal-body {
margin: auto;
padding: 10px 16px;
}
@ -903,9 +1085,180 @@ input[type="range"] {
font-size: 16px;
}
.label-switch {
background-color: var(--bg);
border-radius: 5rem;
height: 30px;
width: 55px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 5px;
position: relative;
font-size: 1.8rem;
}
/* .light-mode {
} */
.fa-sun {
color: #f39c12;
}
.fa-moon {
color: var(--color-moon);
}
.checkbox-switch {
opacity: 0;
position: absolute;
}
.checkbox-switch:checked + .label-switch .switch-ball {
transform: translateX(22px);
}
.switch-ball {
transition: 0.4s ease;
/* top: 4px; */
/* left: 6px; */
border-radius: 10rem;
/* background-color: #fff; */
height: 24px;
width: 24px;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--sender-message);
position: absolute;
}
/*
.select-pause {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: 0.5rem;
padding: 1rem 1.5rem;
background-image: url('../images/seta-para-baixo.png');
background: #eeeeee;
width: 100%;
border: 1px solid #ddd;
outline: 0;
} */
.select-pause {
overflow: hidden;
width: 100%;
}
.select-pause select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: 0.5rem;
width: 100%;
height: 4.8rem;
font-size: 1.8rem;
padding: 1.3rem 1.5rem;
background-color: var(--bg);
color: var(--text-primary);
position: relative;
text-indent: 0.01px;
text-overflow: "";
}
.select-pause i {
position: absolute;
right: 25px;
top: 42%;
font-size: 1.5rem;
}
.select-pause select::-ms-expand {
display: none;
}
/* @-webkit-keyframes switch-animation {
from {
left: 2px;
}
to {
left: 4px;
}
} */
/*
.box-interface {
margin-top: 1.5rem;
background-color: #f7f7f7;
padding: 0.5rem;
width: 25%;
display: flex;
align-items: center;
}
.box-interface button {
width: 50%;
background-color: transparent;
border-radius: 1rem;
border: 0;
padding: 1.5rem 2rem;
} */
.modal-footer2 {
border-top: solid 1px var(--backgroup-icons-upload);
display: flex;
align-items: center;
flex-direction: row;
padding: 2px 16px;
}
.modal-footer-content2 {
display: flex;
flex-direction: row;
margin: 10px;
}
.modal-text2 {
font-size: 16px;
}
.modal-list-radio2 {
font-size: 16px;
}
/**
* FLEXBOX JUSTIFY CONTENT
* FLEXBOX
*/
.d-flex {
display: flex;
}
.align-items-center{
align-items: center;
}
.flex-center {
justify-content: center;
}
@ -914,6 +1267,10 @@ input[type="range"] {
justify-content: right;
}
/**
* FLEXBOX SIZE
*/
@ -926,7 +1283,7 @@ input[type="range"] {
*/
.btn-danger {
padding: 5px 15px 5px;
color: #FFF;
color: #fff;
border: solid 1px transparent;
border-radius: 20px;
background-color: #f77070;
@ -942,7 +1299,7 @@ input[type="range"] {
.btn-info {
padding: 5px 15px 5px;
color: #FFF;
color: #fff;
border: solid 1px transparent;
border-radius: 20px;
background-color: #70aff7;
@ -958,7 +1315,7 @@ input[type="range"] {
.btn-send {
padding: 7px 9px 7px;
color: #FFF;
color: #fff;
border: solid 1px transparent;
border-radius: 20px;
background-color: #e5e5e5;
@ -966,14 +1323,14 @@ input[type="range"] {
.btn-default {
padding: 5px 5px 5px;
color: #FFF;
color: #fff;
border: solid 1px transparent;
border-radius: 20px;
background-color: #D8D8D8;
background-color: #d8d8d8;
}
.btn-default:hover {
background-color: #CDCDCD;
background-color: #cdcdcd;
}
.fz-10 {
@ -1008,7 +1365,7 @@ input[type="range"] {
}
.status-disabled {
color: #D8D8D8
color: #d8d8d8;
}
.select-notification {
@ -1016,22 +1373,26 @@ input[type="range"] {
}
.opacity-3 {
opacity: 0.3
opacity: 0.3;
}
.opacity-8 {
opacity: 0.5;
}
.cursor-pointer {
cursor: pointer;
}
@media (max-width: 1310px) {
/* @media (max-width: 1310px) {
.modal-content {
width: 42%;
}
}
} */
@media (max-width: 1240px) {
#welcometomessage h1,h2{
#welcometomessage h1,
h2 {
font-size: 30px;
}
@ -1051,9 +1412,9 @@ input[type="range"] {
font-size: 0.9rem;
}
.type-message-bar-icons-upload{
margin-left: 20px
}
/* .type-message-bar-icons-upload {
margin-left: 20px;
} */
.chats {
height: 85vh;
@ -1071,7 +1432,8 @@ input[type="range"] {
grid-template-columns: 35em 1fr;
}
#welcometomessage h1,h2{
#welcometomessage h1,
h2 {
font-size: 20px;
}
@ -1087,40 +1449,94 @@ input[type="range"] {
font-size: 0.8rem;
}
.chats {
height: 80vh;
/* .modal-content {
width: 50%;
} */
}
.modal-content{
width: 50%;
@media (max-width: 850px) {
.app {
grid-template-columns: 33em 1fr;
}
}
@media (max-width: 680px){
@media (max-width: 900px) {
.app {
grid-template-columns: 30em 1fr;
display: grid;
grid-template-columns: 1fr;
}
.sidebar {
border-right: none;
}
.btn-exit-chat {
display: block;
}
@media (max-width: 850px){
.app {
grid-template-columns: 33em 1fr;
.main {
display: none;
}
.main.chatAtivo {
display: block;
grid-column: 1 / -1;
}
.sidebar.chatAtivo {
display: none;
}
}
@media (max-height: 820px){
#welcometomessage h1,h2{
font-size: 30px;
@media (max-width: 400px) {
.main {
overflow: hidden;
}
#welcometomessage img {
width: 300px;
.chat-window {
height: calc(100vh - 60px);
}
.type-message-bar-right {
margin: 0;
gap: 0.5rem;
}
.type-message-bar-right .icons {
padding: 1rem;
border-radius: 0.5rem;
}
}
@media (max-width: 330px) {
.type-message-bar-center input,
textarea {
font-size: 1.1rem;
padding: 1rem;
}
}
@media (max-height: 1380px) {
.chats {
height: 82vh;
height: 65vh;
padding-bottom: 20px;
}
}
@media (max-height: 800px) {
.chats {
height: 60vh;
}
}
/*
@media (max-height: 650px) {
.chats {
height: 55vh;
padding-bottom: 30px;
}
}
@media (max-height: 650px) {
.chats {
height: 55vh;
padding-bottom: 30px;
}
} */

68
public/css/teste

@ -0,0 +1,68 @@
@media (max-width: 680px) {
.app {
grid-template-columns: 30em 1fr;
/* grid-template-columns: 1fr; */
}
/* .sidebar {
display: none;
} */
}
@media (max-width: 850px) {
.app {
grid-template-columns: 33em 1fr;
}
}
@media (max-height: 820px) {
#welcometomessage h1,
h2 {
font-size: 30px;
}
#welcometomessage img {
width: 300px;
}
}
@media (max-height: 1380px) {
.chats {
height: 65vh;
padding-bottom: 20px;
}
}
@media (max-height: 700px) {
.type-message-bar {
bottom: 2rem;
}
/* .estatisticas {
display: none;
} */
.chats {
height: 60vh;
padding-bottom: 30px;
}
.type-message-bar {
bottom: 0;
}
}
/* @media (max-height: 650px) {
.chats {
height: 50vh;
padding-bottom: 30px;
}
} */
/*
@media (max-height: 550px) {
.type-message-bar {
bottom: 11rem;
}
}
*/

BIN
public/images/lua.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

BIN
public/images/send-message.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

BIN
public/images/seta-para-baixo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

BIN
public/images/settings.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

BIN
public/images/sol.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 987 B

11
public/index.html

@ -30,16 +30,6 @@
</div>
</div>
<div class="sidebar-notifications">
<img src="images/notifications.svg" />
<div class="sidebar-notifications-message">
<span>Get Notified of New Messages</span>
<a href="#">Turn on desktop notifications <img src="images/gt-arrow.svg" /></a>
</div>
</div>
<!-- Sidebar search chat -->
<div class="search-chat">
@ -134,7 +124,6 @@
<script>
let modal = document.getElementById("modalselect");
let span = document.getElementsByClassName("close")[0];
span.onclick = function () {
modal.style.display = "none";
}

20
public/js/config.js

@ -1,10 +1,10 @@
const ws = localStorage.getItem('obj_ws')
<<<<<<< HEAD
const server_api = localStorage.getItem('obj_server')
=======
const server_api = `http://${localStorage.getItem('obj_server')}`
const supervisor_api = localStorage.getItem('supervisor_api') ? localStorage.getItem('supervisor_api') : localStorage.getItem('obj_server')
>>>>>>> 1e181ff (ajustes de funcionalidades)
let mediaRecorder
const icontypes = ['csv', 'doc', 'pdf', 'txt', 'xls', 'zip', 'ppt']
const path = 'public'
const ws = localStorage.getItem("obj_ws");
const server_api = `http://${localStorage.getItem("obj_server")}`;
const supervisor_api = localStorage.getItem("supervisor_api")
? localStorage.getItem("supervisor_api")
: localStorage.getItem("obj_server");
let mediaRecorder;
const icontypes = ["csv", "doc", "pdf", "txt", "xls", "zip", "ppt"];
const path = "public";
const html = document.querySelector("html");
let abrirMensagem = false;

614
public/js/main.js

@ -2,237 +2,282 @@
* EVENTOS GERADOS PELO USUARIO DA APLICACAO
*/
$(function () {
connect(ws)
notifications()
connect(ws);
notifications();
// waveSurferStart();
/**
* VOICE RECORDER
*/
$('.modal-content-body').on('click', '#stoprecorder', () => {
$('#msgRecorder').text('Paramos de gravar sua voz!')
mediaRecorder.stop()
})
$('#voicerecorder').on('click', () => {
recorderVoice()
})
$(".modal-content-body").on("click", "#stoprecorder", () => {
$("#msgRecorder").text("Paramos de gravar sua voz!");
mediaRecorder.stop();
});
// Chama fila de atendimento
// $("#btnFila").on("click", () => {
// notifications();
// });
// $("#btnAtendimento").on("click", () => {
// notifications();
// });
$("#exitChat").on("click", () => {
abrirMensagem = false;
abrirTela();
// removeMensagemBody();
});
$(".box-event-buttons button").on("click", (e) => {
click_btn(e);
});
$("#voicerecorder").on("click", () => {
recorderVoice();
});
/** FIM VOICE RECORDER */
/** EVENTOS DE CLICK NO BODY */
$("body").mouseup(function () {
$('#uploadfiles').fadeOut('slow')
$("#uploadfiles").fadeOut(200);
});
/** INICIO DAS FUNCIONALIDADES */
startSendImage()
startSendFile()
startPause()
startTransfer()
startFinalizar()
exitSystem()
startSendImage();
startSendFile();
startPause();
startTransfer();
startFinalizar();
exitSystem();
startFooter();
/** INICIA COM O HEADER DO CONTATO VAZIO */
startChannelMessage()
startChannelMessage();
/** INICIA O CHAT NO FINAL DA CONVERSA */
$('.chats').on('click', function(){
scrollDown()
})
$(".chats").on("click", function () {
scrollDown();
});
$(".checkbox-switch").on("change", ({ target }) => {
changeInterfaceTheme(target);
});
/** ENVIA AS MSG PELO ENTER */
$('#fieldsendmessage').bind('keyup', function(ev){
$("#fieldsendmessage").bind("keyup", function (ev) {
if (ev.keyCode == 13 && $(this).val().trim().length > 0) {
sendMessage()
sendMessage();
}
})
});
$('#fieldsendmessage').on('keyup', () => {
$("#fieldsendmessage").on("keyup", () => {
if ($(this).val().trim().length == 0) {
$(this).val('')
$(this).val("");
}
resizeSendMsg()
})
$('.type-message-bar-right').on('click',() => {
sendMessage()
})
$('#imgclip').on('click', function(){
modalStart()
$("#uploadimage").val('')
$('#uploadfile').val('')
if($('#uploadfiles').is(':hidden')){
$('#uploadfiles').fadeIn('slow')
resizeSendMsg();
});
$(".type-message-bar-right").on("click", () => {
sendMessage();
});
/** abre modal de configurações*/
$("#configs").on("click", () => {
openConfigs();
});
$("#imgclip").on("click", function () {
modalStart();
$("#uploadimage").val("");
$("#uploadfile").val("");
if ($("#uploadfiles").is(":hidden")) {
$("#uploadfiles").fadeIn(200);
} else {
$('#uploadfiles').fadeOut('slow')
$("#uploadfiles").fadeOut(200);
}
})
$('#footer-content-right').on('click', '#footersend', () => {
sendMedia(mediaRecorder)
$('#modalselect').css({display: 'none'})
})
supervisorAgente()
});
})
$("#footer-content-right").on("click", "#footersend", () => {
sendMedia(mediaRecorder);
// $("#modalselect").css({ display: "none" });
});
supervisorAgente();
});
/**
* EVENTOS DE CLICK PARA SELECIONAR A SESSAO DE MENSAGEM/CONVERSA E RECUPERAR AS MENSAGENS JA TROCADAS NO ATENDIMENTO
* @param {*} id
*/
const selectNotification = (id) => {
marcarMensagemVista(id)
marcarMensagemVista(id);
listaMensagem(id).then(() => {
let uniqueid
let number
let name
let dataContact
let protocolo
const dataRequest = JSON.parse(localStorage.getItem('obj_contact'))
<<<<<<< HEAD
listarAtendimentoAgente(localStorage.getItem('my_uniqueid'))
=======
listarAtendimentoAgente(localStorage.getItem('id_empresa'), localStorage.getItem('my_uniqueid'))
>>>>>>> 1e181ff (ajustes de funcionalidades)
const allNotifications = JSON.parse(localStorage.getItem('obj_notification'))
console.log(allNotifications)
hideButtons(false)
allNotifications.data.forEach(e => {
$('#' + e.uniqueid.replace('.', `\\.`)).removeClass('select-notification')
let uniqueid;
let number;
let name;
let dataContact;
let protocolo;
const dataRequest = JSON.parse(localStorage.getItem("obj_contact"));
listarAtendimentoAgente(
localStorage.getItem("id_empresa"),
localStorage.getItem("my_uniqueid")
);
const allNotifications = JSON.parse(
localStorage.getItem("obj_notification")
);
hideButtons(false);
allNotifications.data.forEach((e) => {
$("#" + e.uniqueid.replace(".", `\\.`)).removeClass(
"select-notification"
);
if (e.uniqueid == id && e.status == 0) {
hideButtons(true)
hideButtons(true);
}
})
$('#' + id.replace('.', `\\.`)).addClass('select-notification')
});
$("#" + id.replace(".", `\\.`)).addClass("select-notification");
allNotifications.data.forEach(e => {
allNotifications.data.forEach((e) => {
if (e.uniqueid == id && e.status == 0) {
hideButtons(true)
hideButtons(true);
}
})
});
if (dataRequest.data.length > 0) {
dataContact = dataRequest.data.filter(e => {
dataContact = dataRequest.data.filter((e) => {
if (id.trim() == e.uniqueid) {
return true
return true;
}
})
});
}
allNotifications.data.forEach(e => {
allNotifications.data.forEach((e) => {
if (id === e.uniqueid) {
uniqueid = e.uniqueid
name = e.nome
number = e.cliente_id
protocolo = e.protocolo
uniqueid = e.uniqueid;
name = e.nome;
number = e.cliente_id;
protocolo = e.protocolo;
}
})
});
localStorage.removeItem('session_window')
localStorage.removeItem('session_uniqueid')
localStorage.setItem('session_uniqueid', uniqueid)
localStorage.setItem('session_window', number)
localStorage.removeItem("session_window");
localStorage.removeItem("session_uniqueid");
localStorage.setItem("session_uniqueid", uniqueid);
localStorage.setItem("session_window", number);
$('.chat-window-contact-name').text(name)
$('.chat-window-contact-status').text('Protocolo: ' + protocolo)
$(".chat-window-contact-name").text(name);
$(".chat-window-contact-status").text("Protocolo: " + protocolo);
/** REMOVE AS MSG NA E CONSTRIO A TELA NOVAMENTE (EVITAR DUPLICAR) */
$('.chat-window .sender').remove()
$('.chat-window .receiver').remove()
$('.chat-window .events').remove()
alertNotification(localStorage.getItem('session_uniqueid'),'remove')
dataContact.forEach(e => {
const datesend = e.msg_date ? converdata(new Date(e.msg_date).getTime()) : 'algumas horas';
<<<<<<< HEAD
let typesend = localStorage.getItem('my_uniqueid') == e.src ? 'sender': 'receiver'
=======
let typesend = localStorage.getItem('my_uniqueid') == e.dst ? 'receiver' : 'sender'
>>>>>>> 1e181ff (ajustes de funcionalidades)
if(e.type == 'text'){
$('.chat-window').append(`
$(".chat-window .sender").remove();
$(".chat-window .receiver").remove();
$(".chat-window .events").remove();
alertNotification(localStorage.getItem("session_uniqueid"), "remove");
dataContact.forEach((e) => {
const datesend = e.msg_date
? converdata(new Date(e.msg_date).getTime())
: "algumas horas";
let typesend =
localStorage.getItem("my_uniqueid") == e.dst ? "receiver" : "sender";
if (e.type == "text") {
$(".chat-window").append(`
<div class="${typesend}">
<span class="${typesend}-message">${e.content}</span>
<span class="${typesend}-message">${e.content.replace(
/\r?\n/g,
"<br>"
)}</span>
<br/>
<span class="message-time">${datesend}</span>
</div>`
)
</div>`);
}
if(e.type == 'finish' || e.type == 're_start'){
$('.chat-window').append(`
if (e.type == "finish" || e.type == "re_start") {
$(".chat-window").append(`
<div class="events">
<span class="events-message">${e.content}</span>
</div>`
)
</div>`);
}
if(e.type != 'text'){
if (e.type != "text") {
const sendobj = {
filename: e.file_name,
id_provedor: e.id_provedor,
type: e.type,
mimetype: e.mimetype,
from: typesend
}
messageTypeMedia(sendobj)
from: typesend,
};
messageTypeMedia(sendobj);
}
if(e.de == localStorage.getItem('my_uniqueid')){
const datereceived = e.datetime ? converdata(e.datetime) : 'algumas horas';
if(e.type == 'text'){
$('.chat-window').append(`
if (e.de == localStorage.getItem("my_uniqueid")) {
const datereceived = e.datetime
? converdata(e.datetime)
: "algumas horas";
if (e.type == "text") {
$(".chat-window").append(`
<div class="${typesend}">
<span class="${typesend}-message">${e.msg}</span>
<br/>
<span class="message-time">${datereceived}</span>
</div>`)
} else if (e.type == 'audio' || e.type == 'voice'){
</div>`);
} else if (e.type == "audio" || e.type == "voice") {
// const audio = `<audio controls>
// <source src="data:audio/mpeg;base64,${e.msg}"></source>
// </audio>`;
// $(".chat-window").append(`
// <div class="${typesend}">
// <span class="${typesend}-message">${audio}</span>
// <br/>
// <span class="message-time">${datereceived}</span>
// </div>`);
const audio = `<audio controls>
<source src="data:audio/mpeg;base64,${e.msg}"></source>
</audio>`
$('.chat-window').append(`
</audio>`;
$(".chat-window").append(`
<div class="${typesend}">
<span class="${typesend}-message">${audio}</span>
<br/>
<span class="message-time">${datereceived}</span>
</div>`)
} else if (e.type == 'document'){
icontypes.forEach(l => {
</div>`);
} else if (e.type == "document") {
icontypes.forEach((l) => {
if (e.filename.indexOf(l) >= 0) {
$('.chat-window').append(`
$(".chat-window").append(`
<div class="${typesend}">
<span class="${typesend}-message message-column">
<a href="http://${server_api}/link/${e.uniqueid}/${window.btoa('application/' + l)}" target="_blank">
<a href="http://${server_api}/link/${
e.uniqueid
}/${window.btoa("application/" + l)}" target="_blank">
<img src="${path}/images/icons/${l}-file.png" style="max-width: 60px">
</a>
</span>
${e.filename}
<br/>
<span class="message-time">${datereceived}</span>
</div>`)
</div>`);
}
})
} else if (e.type == 'image'){
const fileimg = `data:${e.mimetype};base64,` + e.msg
$('.chat-window').append(`
});
} else if (e.type == "image") {
const fileimg = `data:${e.mimetype};base64,` + e.msg;
$(".chat-window").append(`
<div class="${typesend}">
<span class="${typesend}-message"><img src="${fileimg}" style="max-width: 200px; max-height: 150px"></span>
<br/>
<span class="message-time">${datereceived}</span>
</div>`)
</div>`);
}
}
})
scrollDown()
})
startNotification()
}
});
scrollDown();
});
abrirMensagem = true;
startNotification();
};
/**
* REALIZA O ENVIO DE MENSAGEM ATRAVEZ DA API
@ -240,105 +285,120 @@ const selectNotification = (id) => {
* @returns
*/
const sendMessage = (obj = {}) => {
const sendNumber = localStorage.getItem('session_window')
const myUniqueid = localStorage.getItem('my_uniqueid')
const agent = JSON.parse(localStorage.getItem('obj_status'))
let sendContent = (typeof obj.fileContent === "undefined") ? $('#fieldsendmessage').val() : obj.content
let name = agent.data.nome ? agent.data.nome : 'Atendente'
let uniqueid = localStorage.getItem('session_uniqueid')
let media = obj.media ? obj.media : 'whatsapp'
let type = obj.type ? obj.type : 'text'
let mimetype = obj.mimetype ? obj.mimetype : 'text'
let filename = obj.filename ? obj.filename : Date.now()
const sendNumber = localStorage.getItem("session_window");
const myUniqueid = localStorage.getItem("my_uniqueid");
const agent = JSON.parse(localStorage.getItem("obj_status"));
let sendContent =
typeof obj.fileContent === "undefined"
? $("#fieldsendmessage").val()
: obj.content;
let name = agent.data.nome ? agent.data.nome : "Atendente";
let uniqueid = localStorage.getItem("session_uniqueid");
let media = obj.media ? obj.media : "whatsapp";
let type = obj.type ? obj.type : "text";
let mimetype = obj.mimetype ? obj.mimetype : "text";
let filename = obj.filename ? obj.filename : Date.now();
if (!sendContent) {
return
return;
}
let dataSend = {
"event": {
"type": "mensagem",
"contact": {
"name": name,
"number": myUniqueid,
"matricula": myUniqueid
event: {
type: "mensagem",
contact: {
name: name,
number: myUniqueid,
matricula: myUniqueid,
},
"mensagem": {
"uniqueid": uniqueid,
"dst": sendNumber,
"id_provedor": `${uniqueid}_${Date.now()}`,
"type": type,
"mimetype": mimetype,
"media": media,
"content": sendContent,
"status": "sended"
}
}
}
mensagem: {
uniqueid: uniqueid,
dst: sendNumber,
id_provedor: `${uniqueid}_${Date.now()}`,
type: type,
mimetype: mimetype,
media: media,
content: sendContent,
status: "sended",
},
},
};
if(type != 'audio'){
dataSend.event.mensagem.file_name = filename
if (type != "audio") {
dataSend.event.mensagem.file_name = filename;
}
enviarMensagem(dataSend)
enviarMensagem(dataSend);
let msgContent = type == 'text' ? sendContent : obj.fileContent
$('.chat-window').append(`
let msgContent = type == "text" ? sendContent : obj.fileContent;
$(".chat-window").append(`
<div class="sender">
<span class="sender-message">${msgContent}</span>
<span class="sender-message">${msgContent.replace(
/\r?\n/g,
"<br>"
)}</span>
<br/>
<span class="message-time">${converdata(Date.now())}</span>
</div>`)
scrollDown()
</div>`);
scrollDown();
/** LIMPA O CAMPO DE ENVIO DE MENSAGEM */
$('#fieldsendmessage').val("")
}
$("#fieldsendmessage").val("");
};
/**
* ATUALIZA AS MENSAGEM QUE SAO RECEBIDAS NA TELA DO ATENDIMENTO
* Os dados são transmitidos pelo evento de WS
* Os dados s<EFBFBD>o transmitidos pelo evento de WS
* @param {*} ev
*/
const viewMessage = (ev) => {
const sessionOpen = localStorage.getItem('session_uniqueid')
const datesend = ev.event?.mensagem.datetime ? converdata(ev.event?.mensagem.datetime, true) : 'algumas horas';
const sessionOpen = localStorage.getItem("session_uniqueid");
const datesend = ev.event?.mensagem.datetime
? converdata(ev.event?.mensagem.datetime, true)
: "algumas horas";
if (ev.event?.mensagem.uniqueid == sessionOpen) {
marcarMensagemVista(sessionOpen)
marcarMensagemVista(sessionOpen);
switch (ev.event?.mensagem.type) {
case 'text':
$('.chat-window').append(`
case "text":
$(".chat-window").append(`
<div class="receiver">
<span class="receiver-message">${ev.event.mensagem.content}</span>
<br/>
<span class="message-time">${datesend}</span>
</div>`)
break
case 'finish':
case 're_start':
$('.chat-window').append(`
</div>`);
break;
case "finish":
case "re_start":
$(".chat-window").append(`
<div class="events">
<span class="events-message">${ev.event.mensagem.content}</span>
</div>`)
break
}
const mediaDownload = ["image", "voice", "document", "audio", "video", "sticker"]
</div>`);
break;
}
const mediaDownload = [
"image",
"voice",
"document",
"audio",
"video",
"sticker",
];
if (mediaDownload.indexOf(ev.event?.mensagem.type) >= 0) {
const sendobj = {
filename: ev.event?.mensagem.file_name,
id_provedor: ev.event?.mensagem.id_provedor,
type: ev.event?.mensagem.type,
mimetype: ev.event?.mensagem.mimetype,
from: 'receiver'
}
messageTypeMedia(sendobj)
}
scrollDown()
from: "receiver",
};
messageTypeMedia(sendobj);
}
scrollDown();
}
};
/**
* APRESENTA AS NOVAS NOTIFICACOES DE ATENDIMENTO NA TELA DO ATENDENTE
@ -346,118 +406,142 @@ const viewMessage = (ev) => {
* @param {*} data
*/
const receiveNotification = (data) => {
let validate = null
let validate = null;
switch (data.event?.type) {
case "mensagem":
if(data.event.mensagem.uniqueid != localStorage.getItem('session_uniqueid')){
if (
data.event.mensagem.uniqueid != localStorage.getItem("session_uniqueid")
) {
notifyMe(data.event.contact.name, {
body: data.event.mensagem.content,
icon: `images/${data.event.mensagem.media}.png`,
silent: true
})
soundNotification(`${path}/sound/notification.mp3`)
silent: true,
});
soundNotification(`${path}/sound/notification.mp3`);
}
/** VALIDA O NUMERO, VERIFICA SE O TEM ALGMA MSG INICIAL, SE JA TEVE UM NUMERO NA VERIFICACAO */
listarAtendimentoAgente(localStorage.getItem('id_empresa'), localStorage.getItem('my_uniqueid'))
validate = JSON.parse(localStorage.getItem('obj_notification'))
listarAtendimentoAgente(
localStorage.getItem("id_empresa"),
localStorage.getItem("my_uniqueid")
);
validate = JSON.parse(localStorage.getItem("obj_notification"));
const vald = validate.data.filter((e) => {
return data.event?.mensagem.uniqueid == e.uniqueid
})
return data.event?.mensagem.uniqueid == e.uniqueid;
});
if(data.event?.contact.number != localStorage.getItem('session_window')){
alertNotification(data.event.mensagem.uniqueid)
if (
data.event?.contact.number != localStorage.getItem("session_window")
) {
alertNotification(data.event.mensagem.uniqueid);
}
if (data.event?.mensagem.uniqueid && data.event?.contact.number && vald.length == 0) {
notifications(
{
if (
data.event?.mensagem.uniqueid &&
data.event?.contact.number &&
vald.length == 0
) {
notifications({
uniqueid: data.event?.mensagem.uniqueid,
cliente_id: data.event?.contact.number,
context: data.event?.mensagem.media,
profile_name: data.event?.contact.name,
data_reg: data.event?.mensagem.datetime,
status: 1,
action: 'mensagem',
}
)
action: "mensagem",
});
}
break
break;
case "actions":
let obj
let obj;
switch (data.event.mensagem.type) {
case 'start':
case 'transfer':
case 'att_status':
obj = {}
break
case 'finish':
case 're_start':
case "start":
case "transfer":
case "att_status":
obj = {};
break;
case "finish":
case "re_start":
obj = {
uniqueid: data.event?.mensagem.uniqueid,
action: data.event.mensagem.type,
};
break;
}
break
}
notifications(obj)
break
notifications(obj);
break;
}
}
};
/**
* MANTEM TODAS AS MENSAGENS ARMAZENADAS NO LOCALSTORAGE, SEMPRE QUE ENVIA E RECEBE SERA GUARDADO
* @param {*} ev
*/
const keepMensage = (ev) => {
let msg = JSON.parse(localStorage.getItem('keep_msg'))
let msg = JSON.parse(localStorage.getItem("keep_msg"));
if (!msg) {
msg = { data: [] }
msg = { data: [] };
}
if (ev.event?.contact && ev.event?.mensagem.content) {
msg.data.push(ev)
localStorage.removeItem('keep_msg');
localStorage.setItem('keep_msg', JSON.stringify(msg))
}
msg.data.push(ev);
localStorage.removeItem("keep_msg");
localStorage.setItem("keep_msg", JSON.stringify(msg));
}
};
/**
* FUNCAO PARA CAPTURAR O ARQUIVO A SER ENVIADO
*/
const sendMedia = (media = null) => {
let rec
let filename
let rec;
let filename;
if ($("#footer-content-left audio").length) {
if(media.state == 'recording'){
if (media.state == "recording") {
media.stop();
}
let el = $("#footer-content-left audio")[0].src
fileContent = $("#footer-content-left audio")[0].outerHTML
sendMessage({ content: el.replace("data:", "").replace(/^.+,/, ""), type: 'audio', mimetype: 'audio/mpeg', fileContent })
return
let el = $("#footer-content-left audio")[0].src;
fileContent = $("#footer-content-left audio")[0].outerHTML;
sendMessage({
content: el.replace("data:", "").replace(/^.+,/, ""),
type: "audio",
mimetype: "audio/mpeg",
fileContent,
});
return;
} else if ($("#uploadfile")[0].files[0]) {
let el = $("#uploadfile")[0].files[0]
rec = new Blob([el], { type : el.type })
let filesent = $("#myImg")
filesent[0].id = Date.now()
imgContent = filesent.css({'max-width': '60px'})[0].outerHTML
fileContent = `<a href="${URL.createObjectURL(rec)}" target="_blank">${imgContent}</a>`
filename = el.name
let el = $("#uploadfile")[0].files[0];
rec = new Blob([el], { type: el.type });
let filesent = $("#myImg");
filesent[0].id = Date.now();
imgContent = filesent.css({ "max-width": "60px" })[0].outerHTML;
fileContent = `<a href="${URL.createObjectURL(
rec
)}" target="_blank">${imgContent}</a>`;
filename = el.name;
} else {
rec = $("#uploadimage")[0].files[0]
let filesent = $("#myImg")
filesent[0].id = Date.now()
fileContent = filesent.css({'max-width': '350px'})[0].outerHTML
$("#myImg").empty()
rec = $("#uploadimage")[0].files[0];
let filesent = $("#myImg");
filesent[0].id = Date.now();
fileContent = filesent.css({ "max-width": "350px" })[0].outerHTML;
$("#myImg").empty();
}
const file = new FileReader();
file.onload = function () {
const typefile = rec.type.split("/")[0].indexOf('image') >= 0 ? rec.type.split("/")[0] : 'document'
sendMessage({ content: file.result.replace("data:", "").replace(/^.+,/, ""), type: typefile, mimetype: rec.type, fileContent, filename })
}
const typefile =
rec.type.split("/")[0].indexOf("image") >= 0
? rec.type.split("/")[0]
: "document";
sendMessage({
content: file.result.replace("data:", "").replace(/^.+,/, ""),
type: typefile,
mimetype: rec.type,
fileContent,
filename,
});
};
file.readAsDataURL(rec);
}
};

33
public/js/requests.js

@ -16,12 +16,6 @@ const listaMensagem = (uniqueid) => new Promise((resolve) => {
$.ajax({
url: `${server_api}/messages/${uniqueid}`,
type: "GET",
<<<<<<< HEAD
data: {
uniqueid
},
=======
>>>>>>> 1e181ff (ajustes de funcionalidades)
success: function (res) {
localStorage.removeItem('obj_contact')
localStorage.setItem('obj_contact', JSON.stringify(res))
@ -33,17 +27,11 @@ const listaMensagem = (uniqueid) => new Promise((resolve) => {
})
})
const listarAgentesDisponivel = (id_empresa) => new Promise((resolve) => {
$.ajax({
url: `${server_api}/supervisor/agentes/status/${id_empresa}/livre`,
type: "GET",
<<<<<<< HEAD
data: {
id_empresa,
agente_livre: "true"
},
=======
>>>>>>> 1e181ff (ajustes de funcionalidades)
success: function (res) {
resolve(res)
},
@ -57,12 +45,6 @@ const listarAtendimentoAgente = (id_empresa, matricula) => new Promise((resolve)
$.ajax({
url: `${server_api}/atendimentos/${id_empresa}/${matricula}`,
type: "GET",
<<<<<<< HEAD
data: {
matricula
},
=======
>>>>>>> 1e181ff (ajustes de funcionalidades)
success: function (res) {
localStorage.removeItem('obj_notification')
localStorage.setItem('obj_notification', JSON.stringify(res))
@ -78,12 +60,6 @@ const listarPausasAgente = (id_empresa) => new Promise((resolve) => {
$.ajax({
url: `${server_api}/pausas/${id_empresa}`,
type: "GET",
<<<<<<< HEAD
data: {
id_empresa
},
=======
>>>>>>> 1e181ff (ajustes de funcionalidades)
success: function (res) {
resolve(res)
},
@ -205,13 +181,6 @@ const statusAgente = (id_empresa, matricula) => new Promise((resolve) => {
$.ajax({
url: `${server_api}/supervisor/agentes/${id_empresa}/${matricula}`,
type: "GET",
<<<<<<< HEAD
data: {
matricula,
id_empresa: empresa
},
=======
>>>>>>> 1e181ff (ajustes de funcionalidades)
success: function(res) {
localStorage.removeItem('obj_status')
localStorage.setItem('obj_status', JSON.stringify(res))

907
public/js/util.js

File diff suppressed because it is too large Load Diff

6095
public/js/waveSurfer.js

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save