AutoAtendCOLAB/operator.js

95 lines
3.4 KiB
JavaScript

const operatorSelect = document.getElementById('operator-select');
const selectButton = document.getElementById('select-button');
const errorMessage = document.getElementById('error-message');
const quitButton = document.getElementById('sair-button');
const verionSpan = document.getElementById('version');
// Carrega a lista de operadores ao iniciar
window.addEventListener('DOMContentLoaded', async () => {
try {
const response = await window.electronAPI.getOperators();
//colabs/list
if (response.success) {
// Preenche o select com os operadores
response.operators.forEach(operator => {
const option = document.createElement('option');
option.value = operator.name;
option.textContent = operator.name;
option.setAttribute('data-sala', operator.sala);
option.setAttribute('data-servicos', operator.servicos);
option.setAttribute('data-id', operator.id);
operatorSelect.appendChild(option);
});
} else {
// Exibe mensagem de erro
errorMessage.textContent = response.message;
errorMessage.style.display = 'block';
// Se houver operadores de fallback, preenche com eles
if (response.operators && response.operators.length > 0) {
response.operators.forEach(operator => {
const option = document.createElement('option');
option.value = operator.name;
option.textContent = operator.name;
operatorSelect.appendChild(option);
});
}
}
} catch (error) {
errorMessage.textContent = `Erro ao carregar operadores: ${error.message}`;
errorMessage.style.display = 'block';
}
});
// Habilita/desabilita o botão com base na seleção
operatorSelect.addEventListener('change', () => {
selectButton.disabled = !operatorSelect.value;
});
// Envia o operador selecionado
selectButton.addEventListener('click', () => {
const selectedOperatorValue = operatorSelect.value;
if (selectedOperatorValue) {
const selectedOption = operatorSelect.options[operatorSelect.selectedIndex];
const selectedOperator = {
value: selectedOperatorValue,
name: selectedOperatorValue, // Assuming name is the same as value
sala: selectedOption.getAttribute('data-sala'),
servicos: selectedOption.getAttribute('data-servicos'),
id: selectedOption.getAttribute('data-id'),
};
selectButton.disabled = true;
selectButton.textContent = 'Processando...';
window.electronAPI.selectOperator(selectedOperator);
}
});
window.electronAPI.showVersion((version) => {
verionSpan.textContent = `${version}`;
});
// Recebe resposta do processo de seleção
window.electronAPI.onOperatorResponse((response) => {
if (!response.success) {
// Exibe mensagem de erro
errorMessage.textContent = response.message;
errorMessage.style.display = 'block';
selectButton.disabled = false;
selectButton.textContent = 'Continuar';
}
// Se for bem-sucedido, o processo principal fechará esta janela
});
quitButton.addEventListener('click',()=>{
window.electronAPI.quitApp();
});