|
|
@ -34,7 +34,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const createKeyPad = () => { |
|
|
|
const createKeyPad = () => { |
|
|
|
// Função para verificar e definir o tema inicial
|
|
|
|
// Funcao para verificar e definir o tema inicial
|
|
|
|
const initialThemeMode = sessionStorage.getItem("themeMode") || "light"; |
|
|
|
const initialThemeMode = sessionStorage.getItem("themeMode") || "light"; |
|
|
|
const simplesipStateCall = (initialStateCall) => { |
|
|
|
const simplesipStateCall = (initialStateCall) => { |
|
|
|
let stateCall = initialStateCall; |
|
|
|
let stateCall = initialStateCall; |
|
|
@ -71,9 +71,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
//RECEBENDO CHAMADA
|
|
|
|
//RECEBENDO CHAMADA
|
|
|
|
let otherNumber = "Indefinido"; |
|
|
|
let otherNumber = "Indefinido"; |
|
|
|
UASimplesIP.simplesipEvento.on("incomingcall", function (callerNumber) { |
|
|
|
UASimplesIP.simplesipEvento.on("incomingcall", function (callerNumber) { |
|
|
|
if (otherNumber) { |
|
|
|
|
|
|
|
otherNumber = callerNumber; |
|
|
|
otherNumber = callerNumber; |
|
|
|
} |
|
|
|
|
|
|
|
stateCurrent.setStateCall("incomingcall"); |
|
|
|
stateCurrent.setStateCall("incomingcall"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
//FAZENDO CHAMADA
|
|
|
|
//FAZENDO CHAMADA
|
|
|
@ -81,7 +79,8 @@ const KeypadSimplesIP = (function () { |
|
|
|
stateCurrent.setStateCall("outgoingcall"); |
|
|
|
stateCurrent.setStateCall("outgoingcall"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
//EM CHAMADA
|
|
|
|
//EM CHAMADA
|
|
|
|
UASimplesIP.simplesipEvento.on("incall", function () { |
|
|
|
UASimplesIP.simplesipEvento.on("incall", function (calleNumber) { |
|
|
|
|
|
|
|
otherNumber = calleNumber; |
|
|
|
stateCurrent.setStateCall("incall"); |
|
|
|
stateCurrent.setStateCall("incall"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
//NA HOME
|
|
|
|
//NA HOME
|
|
|
@ -96,7 +95,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
const simplesipCreateContainer = (themeMode) => { |
|
|
|
const simplesipCreateContainer = (themeMode) => { |
|
|
|
let simplesipContainer = document.querySelector(".simplesipContainer"); |
|
|
|
let simplesipContainer = document.querySelector(".simplesipContainer"); |
|
|
|
|
|
|
|
|
|
|
|
// Verifica se já existe um container, e se existir, remove-o
|
|
|
|
// Verifica se ja existe um container, e se existir, remove-o
|
|
|
|
if (simplesipContainer) { |
|
|
|
if (simplesipContainer) { |
|
|
|
simplesipContainer.remove(); |
|
|
|
simplesipContainer.remove(); |
|
|
|
} |
|
|
|
} |
|
|
@ -116,7 +115,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
|
|
|
|
|
|
|
|
let titles = document.querySelector(".simplesipTitles"); |
|
|
|
let titles = document.querySelector(".simplesipTitles"); |
|
|
|
if (titles) { |
|
|
|
if (titles) { |
|
|
|
// Remover todos os próximos irmãos de titles
|
|
|
|
// Remover todos os pr�ximos irmaos de titles
|
|
|
|
let proximoIrmao = titles.nextSibling; |
|
|
|
let proximoIrmao = titles.nextSibling; |
|
|
|
while (proximoIrmao) { |
|
|
|
while (proximoIrmao) { |
|
|
|
let irmaoRemovido = proximoIrmao; |
|
|
|
let irmaoRemovido = proximoIrmao; |
|
|
@ -170,7 +169,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
|
|
|
|
|
|
|
|
const titleConfig = document.createElement("div"); |
|
|
|
const titleConfig = document.createElement("div"); |
|
|
|
titleConfig.id = "titleConfig"; |
|
|
|
titleConfig.id = "titleConfig"; |
|
|
|
titleConfig.textContent = "Configurações do usuário"; |
|
|
|
titleConfig.textContent = "Configurações de usuário"; |
|
|
|
|
|
|
|
|
|
|
|
const formScreen = document.createElement("form"); |
|
|
|
const formScreen = document.createElement("form"); |
|
|
|
formScreen.id = "form"; |
|
|
|
formScreen.id = "form"; |
|
|
@ -219,7 +218,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
}); |
|
|
|
}); |
|
|
|
divUnregister.appendChild(textoUnregister); |
|
|
|
divUnregister.appendChild(textoUnregister); |
|
|
|
divUnregister.appendChild(unregisterBtn); |
|
|
|
divUnregister.appendChild(unregisterBtn); |
|
|
|
// Função para criar elementos <label> com suas respectivas legendas
|
|
|
|
// Funcao para criar elementos <label> com suas respectivas legendas
|
|
|
|
const createLabelAndInput = ( |
|
|
|
const createLabelAndInput = ( |
|
|
|
labelText, |
|
|
|
labelText, |
|
|
|
inputName, |
|
|
|
inputName, |
|
|
@ -269,7 +268,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
"Insira a senha do ramal" |
|
|
|
"Insira a senha do ramal" |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// Adicionar botões ao formulário
|
|
|
|
// Adicionar bot�es ao formulario
|
|
|
|
const divBtns = document.createElement("div"); |
|
|
|
const divBtns = document.createElement("div"); |
|
|
|
divBtns.classList.add("divBtns"); |
|
|
|
divBtns.classList.add("divBtns"); |
|
|
|
divBtns.appendChild(btnCancel); |
|
|
|
divBtns.appendChild(btnCancel); |
|
|
@ -289,7 +288,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
configScreen.appendChild(formScreen); |
|
|
|
configScreen.appendChild(formScreen); |
|
|
|
container.appendChild(configScreen); |
|
|
|
container.appendChild(configScreen); |
|
|
|
|
|
|
|
|
|
|
|
// Função para preencher os inputs com os valores do localStorage
|
|
|
|
// Funcao para preencher os inputs com os valores do localStorage
|
|
|
|
const fillInputsFromLocalStorage = () => { |
|
|
|
const fillInputsFromLocalStorage = () => { |
|
|
|
inputServidor.querySelector("input").value = |
|
|
|
inputServidor.querySelector("input").value = |
|
|
|
localStorage.getItem("servidor") || ""; |
|
|
|
localStorage.getItem("servidor") || ""; |
|
|
@ -306,9 +305,9 @@ const KeypadSimplesIP = (function () { |
|
|
|
// Preencha os inputs com os valores armazenados no localStorage
|
|
|
|
// Preencha os inputs com os valores armazenados no localStorage
|
|
|
|
fillInputsFromLocalStorage(); |
|
|
|
fillInputsFromLocalStorage(); |
|
|
|
|
|
|
|
|
|
|
|
// Adicione um ouvinte de eventos para o evento submit do formulário
|
|
|
|
// Adicione um ouvinte de eventos para o evento submit do formulario
|
|
|
|
formScreen.addEventListener("submit", function (event) { |
|
|
|
formScreen.addEventListener("submit", function (event) { |
|
|
|
event.preventDefault(); // Evita que o formulário seja enviado normalmente
|
|
|
|
event.preventDefault(); // Evita que o formulario seja enviado normalmente
|
|
|
|
|
|
|
|
|
|
|
|
// Coleta os valores dos inputs
|
|
|
|
// Coleta os valores dos inputs
|
|
|
|
const servidor = inputServidor.querySelector("input").value; |
|
|
|
const servidor = inputServidor.querySelector("input").value; |
|
|
@ -324,7 +323,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
localStorage.setItem("ramal", ramal); |
|
|
|
localStorage.setItem("ramal", ramal); |
|
|
|
localStorage.setItem("senha", senha); |
|
|
|
localStorage.setItem("senha", senha); |
|
|
|
|
|
|
|
|
|
|
|
// Salva primeiramente os valores nas configurações do agente
|
|
|
|
// Salva primeiramente os valores nas configura��es do agente
|
|
|
|
UASimplesIP.config.PROTOCOLO = "wss"; |
|
|
|
UASimplesIP.config.PROTOCOLO = "wss"; |
|
|
|
UASimplesIP.config.SERVIDOR = servidor; |
|
|
|
UASimplesIP.config.SERVIDOR = servidor; |
|
|
|
UASimplesIP.config.PORTA = porta; |
|
|
|
UASimplesIP.config.PORTA = porta; |
|
|
@ -335,7 +334,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
if (servidor === "" || ramal === "" || senha === "") { |
|
|
|
if (servidor === "" || ramal === "" || senha === "") { |
|
|
|
simplesipCreateAlert( |
|
|
|
simplesipCreateAlert( |
|
|
|
container, |
|
|
|
container, |
|
|
|
"Por favor, insira os dados necessários" |
|
|
|
"Por favor, insira os dados necess�rios" |
|
|
|
); |
|
|
|
); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
stateCurrent.setStateCall("home"); |
|
|
|
stateCurrent.setStateCall("home"); |
|
|
@ -343,13 +342,13 @@ const KeypadSimplesIP = (function () { |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}; |
|
|
|
}; |
|
|
|
// Variável para controlar se uma tela de alerta já está sendo exibida
|
|
|
|
// Vari�vel para controlar se uma tela de alerta ja est� sendo exibida
|
|
|
|
let isAlertDisplayed = false; |
|
|
|
let isAlertDisplayed = false; |
|
|
|
|
|
|
|
|
|
|
|
const simplesipCreateAlert = (container, message) => { |
|
|
|
const simplesipCreateAlert = (container, message) => { |
|
|
|
// Verifica se uma tela de alerta já está sendo exibida
|
|
|
|
// Verifica se uma tela de alerta ja est� sendo exibida
|
|
|
|
if (isAlertDisplayed) { |
|
|
|
if (isAlertDisplayed) { |
|
|
|
return; // Sai da função se uma tela de alerta já estiver sendo exibida
|
|
|
|
return; // Sai da Funcao se uma tela de alerta ja estiver sendo exibida
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const createAlert = document.createElement("div"); |
|
|
|
const createAlert = document.createElement("div"); |
|
|
@ -365,17 +364,17 @@ const KeypadSimplesIP = (function () { |
|
|
|
btnAlert.id = "btnAlert"; |
|
|
|
btnAlert.id = "btnAlert"; |
|
|
|
btnAlert.textContent = "OK"; |
|
|
|
btnAlert.textContent = "OK"; |
|
|
|
btnAlert.addEventListener("click", () => { |
|
|
|
btnAlert.addEventListener("click", () => { |
|
|
|
// Remove a tela de alerta ao clicar no botão "OK"
|
|
|
|
// Remove a tela de alerta ao clicar no botao "OK"
|
|
|
|
container.removeChild(createAlert); |
|
|
|
container.removeChild(createAlert); |
|
|
|
// Atualiza a variável para indicar que a tela de alerta foi removida
|
|
|
|
// Atualiza a vari�vel para indicar que a tela de alerta foi removida
|
|
|
|
isAlertDisplayed = false; |
|
|
|
isAlertDisplayed = false; |
|
|
|
}); |
|
|
|
}); |
|
|
|
createAlert.appendChild(btnAlert); |
|
|
|
createAlert.appendChild(btnAlert); |
|
|
|
|
|
|
|
|
|
|
|
// Adiciona a tela de alerta ao contêiner
|
|
|
|
// Adiciona a tela de alerta ao cont�iner
|
|
|
|
container.appendChild(createAlert); |
|
|
|
container.appendChild(createAlert); |
|
|
|
|
|
|
|
|
|
|
|
// Atualiza a variável para indicar que uma tela de alerta está sendo exibida
|
|
|
|
// Atualiza a vari�vel para indicar que uma tela de alerta est� sendo exibida
|
|
|
|
isAlertDisplayed = true; |
|
|
|
isAlertDisplayed = true; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@ -392,7 +391,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
const bnTransfer = createButtonTransfer(); |
|
|
|
const bnTransfer = createButtonTransfer(); |
|
|
|
const keyPadIncall = createKeypadIncall(); |
|
|
|
const keyPadIncall = createKeypadIncall(); |
|
|
|
|
|
|
|
|
|
|
|
//Configura outro display pra mostrar com quem está falando
|
|
|
|
//Configura outro display pra mostrar com quem est� falando
|
|
|
|
const displayOtherNumber = document.createElement("div"); |
|
|
|
const displayOtherNumber = document.createElement("div"); |
|
|
|
const userIcon = document.createElement("img"); |
|
|
|
const userIcon = document.createElement("img"); |
|
|
|
userIcon.src = userImg; |
|
|
|
userIcon.src = userImg; |
|
|
@ -407,7 +406,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
otherNumberText.textContent = otherNumber; |
|
|
|
otherNumberText.textContent = otherNumber; |
|
|
|
displayOtherNumber.appendChild(otherNumberText); |
|
|
|
displayOtherNumber.appendChild(otherNumberText); |
|
|
|
|
|
|
|
|
|
|
|
//Cria display que mostra todas as opções da chamada
|
|
|
|
//Cria display que mostra todas as op��es da chamada
|
|
|
|
const displayInCall = document.createElement("div"); |
|
|
|
const displayInCall = document.createElement("div"); |
|
|
|
displayInCall.classList.add("displayInCall"); |
|
|
|
displayInCall.classList.add("displayInCall"); |
|
|
|
displayInCall.id = "displayInCall"; |
|
|
|
displayInCall.id = "displayInCall"; |
|
|
@ -560,7 +559,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
if (storedNumberCall != "") { |
|
|
|
if (storedNumberCall != "") { |
|
|
|
numberOutgoingCall.textContent = "Ligando para " + storedNumberCall; |
|
|
|
numberOutgoingCall.textContent = "Ligando para " + storedNumberCall; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
numberOutgoingCall.textContent = "Digite um número e tente novamente"; |
|
|
|
numberOutgoingCall.textContent = "Digite um n�mero e tente novamente"; |
|
|
|
} |
|
|
|
} |
|
|
|
container.appendChild(numberOutgoingCall); |
|
|
|
container.appendChild(numberOutgoingCall); |
|
|
|
|
|
|
|
|
|
|
@ -723,7 +722,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
header.appendChild(simplesipClearDisplay); |
|
|
|
header.appendChild(simplesipClearDisplay); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// Função para lidar com cliques nos botões
|
|
|
|
// Funcao para lidar com cliques nos bot�es
|
|
|
|
const handleClick = (buttonValue) => { |
|
|
|
const handleClick = (buttonValue) => { |
|
|
|
const display = document.getElementById("display"); |
|
|
|
const display = document.getElementById("display"); |
|
|
|
const maxLength = 11; |
|
|
|
const maxLength = 11; |
|
|
@ -787,14 +786,14 @@ const KeypadSimplesIP = (function () { |
|
|
|
const defineStatusAgent = (status) => { |
|
|
|
const defineStatusAgent = (status) => { |
|
|
|
const circleElements = document.querySelectorAll(".circle"); |
|
|
|
const circleElements = document.querySelectorAll(".circle"); |
|
|
|
|
|
|
|
|
|
|
|
// Verifica se circleElements não é undefined e se tem comprimento maior que zero
|
|
|
|
// Verifica se circleElements nao e undefined e se tem comprimento maior que zero
|
|
|
|
if (circleElements && circleElements.length > 0) { |
|
|
|
if (circleElements && circleElements.length > 0) { |
|
|
|
// Remove qualquer uma dessas classes antes de atualizar
|
|
|
|
// Remove qualquer uma dessas classes antes de atualizar
|
|
|
|
circleElements.forEach((circle) => |
|
|
|
circleElements.forEach((circle) => |
|
|
|
circle.classList.remove("online", "away", "busy", "unknown", "error") |
|
|
|
circle.classList.remove("online", "away", "busy", "unknown", "error") |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// Atualiza conforme o parâmetro passado
|
|
|
|
// Atualiza conforme o par�metro passado
|
|
|
|
switch (status) { |
|
|
|
switch (status) { |
|
|
|
case "registered": |
|
|
|
case "registered": |
|
|
|
if (circleElements[0]) { |
|
|
|
if (circleElements[0]) { |
|
|
@ -947,7 +946,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
simplesipContainer.classList.remove("dark"); |
|
|
|
simplesipContainer.classList.remove("dark"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Aplicar o tema apenas onde há uma classe light ou dark
|
|
|
|
// Aplicar o tema apenas onde h� uma classe light ou dark
|
|
|
|
const elementosComClasse = document.querySelectorAll( |
|
|
|
const elementosComClasse = document.querySelectorAll( |
|
|
|
"#simplesipContainer .light, #simplesipContainer .dark" |
|
|
|
"#simplesipContainer .light, #simplesipContainer .dark" |
|
|
|
); |
|
|
|
); |
|
|
@ -984,7 +983,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
nextElement = nextElement.nextElementSibling; |
|
|
|
nextElement = nextElement.nextElementSibling; |
|
|
|
} |
|
|
|
} |
|
|
|
const btnMinimize = document.getElementById("btn-minimize"); |
|
|
|
const btnMinimize = document.getElementById("btn-minimize"); |
|
|
|
isKeyPadMinimized = !isKeyPadMinimized; // Inverter a variável aqui
|
|
|
|
isKeyPadMinimized = !isKeyPadMinimized; // Inverter a vari�vel aqui
|
|
|
|
if (isKeyPadMinimized) { |
|
|
|
if (isKeyPadMinimized) { |
|
|
|
btnMinimize.classList.remove("btn-minimize"); |
|
|
|
btnMinimize.classList.remove("btn-minimize"); |
|
|
|
btnMinimize.classList.add("btn-expand"); |
|
|
|
btnMinimize.classList.add("btn-expand"); |
|
|
@ -1019,7 +1018,7 @@ const KeypadSimplesIP = (function () { |
|
|
|
|
|
|
|
|
|
|
|
function startTimer() { |
|
|
|
function startTimer() { |
|
|
|
if (!timer) { |
|
|
|
if (!timer) { |
|
|
|
// Verifica se o timer já está em execução
|
|
|
|
// Verifica se o timer ja esta em execu�ao
|
|
|
|
timer = setInterval(attTimer, 1000); |
|
|
|
timer = setInterval(attTimer, 1000); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|