95 lines
3.4 KiB
JavaScript
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();
|
|
}); |