From 96ac1510ae5c2232bd536afb0b90b0576362bb57 Mon Sep 17 00:00:00 2001 From: Eder Moraes <54563944+edermcastro@users.noreply.github.com> Date: Tue, 27 Jan 2026 01:15:00 -0300 Subject: [PATCH] =?UTF-8?q?Adicionado=20switch=20na=20tela=20de=20sele?= =?UTF-8?q?=C3=A7=C3=A3o=20do=20colaborador=20que=20permite=20ativar=20ou?= =?UTF-8?q?=20desativar=20auto=20inicio=20junto=20ao=20sistema=20operacion?= =?UTF-8?q?al?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 45 +++++++++++++++++++++++++++++++++++++++++---- operator.js | 13 ++++++++++++- operator_preload.js | 2 ++ package.json | 2 +- settings.json | 3 +++ 5 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 settings.json diff --git a/main.js b/main.js index 5fd746c..fa4dede 100644 --- a/main.js +++ b/main.js @@ -13,12 +13,47 @@ let operatorWin; let updateWin; const dataPath = path.join(__dirname, 'data.json'); // Caminho para o JSON (backup local) +const settingsPath = path.join(app.getPath('userData'), 'settings.json'); // Caminho para as configurações const apiUrl = 'https://autoatend.linco.work/api/v1/'; -// const apiUrl = 'http://_lara10-autoatend.devel/api/v1/'; +//? Função para ler as configurações +function getSettings() { + try { + if (fs.existsSync(settingsPath)) { + const settingsData = fs.readFileSync(settingsPath, 'utf-8'); + return JSON.parse(settingsData); + } + } catch (error) { + console.error('Erro ao ler arquivo de configurações:', error); + } + return {}; // Retorna objeto vazio se o arquivo não existir ou houver erro +} + +//? Função para salvar as configurações +function saveSettings(settings) { + try { + fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2)); + } catch (error) { + console.error('Erro ao salvar arquivo de configurações:', error); + } +} + +ipcMain.handle('get-setting', (event, key) => { + const settings = getSettings(); + return settings[key]; +}); + +ipcMain.on('set-setting', (event, key, value) => { + const settings = getSettings(); + settings[key] = value; + saveSettings(settings); + app.relaunch(); + app.exit(); +}); +//! final de configurações + +//!pusher const pusherUrl = 'aa.linco.work'; -// const pusherUrl = 'localhost'; - autoUpdater.autoDownload = false; autoUpdater.autoInstallOnAppQuit = true; @@ -352,7 +387,9 @@ if (!gotTheLock) { app.whenReady().then(async () => { //define a inicialização automatica do aplicativo ao entrar no windows - setAutoLaunch(true); + const settings = getSettings(); + const enableAutoStart = settings.autostart === undefined ? true : settings.autostart; + setAutoLaunch(enableAutoStart); // Verifica se o usuário já está autenticado const token = await getAuthToken(); diff --git a/operator.js b/operator.js index 8dd796c..68d230b 100644 --- a/operator.js +++ b/operator.js @@ -3,9 +3,17 @@ const selectButton = document.getElementById('select-button'); const errorMessage = document.getElementById('error-message'); const quitButton = document.getElementById('sair-button'); const verionSpan = document.getElementById('version'); +const autoStartSwitch = document.getElementById('active-switch'); // Carrega a lista de operadores ao iniciar window.addEventListener('DOMContentLoaded', async () => { + //... (código existente) + + // Carrega o estado do autostart + const autostart = await window.electronAPI.getSetting('autostart'); + autoStartSwitch.checked = autostart === undefined ? true : autostart; + + try { const response = await window.electronAPI.getOperators(); @@ -88,7 +96,10 @@ window.electronAPI.onOperatorResponse((response) => { // Se for bem-sucedido, o processo principal fechará esta janela }); - +autoStartSwitch.addEventListener('change', () => { + const isEnabled = autoStartSwitch.checked; + window.electronAPI.setSetting('autostart', isEnabled); +}); quitButton.addEventListener('click',()=>{ window.electronAPI.quitApp(); diff --git a/operator_preload.js b/operator_preload.js index 9c22702..9def02b 100644 --- a/operator_preload.js +++ b/operator_preload.js @@ -6,4 +6,6 @@ contextBridge.exposeInMainWorld('electronAPI', { showVersion: (version) => ipcRenderer.on('show-version', version), onOperatorResponse: (callback) => ipcRenderer.on('operator-response', (_event, response) => callback(response)), quitApp : () => ipcRenderer.send('sair'), + getSetting: (key) => ipcRenderer.invoke('get-setting', key), + setSetting: (key, value) => ipcRenderer.send('set-setting', key, value), }); \ No newline at end of file diff --git a/package.json b/package.json index 72feba7..a1a285e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "autoatendcolab", - "version": "1.1.4", + "version": "1.1.5", "main": "main.js", "isBuildNow": true, "scripts": { diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..b69ecb0 --- /dev/null +++ b/settings.json @@ -0,0 +1,3 @@ +{ + "autostart": false +} \ No newline at end of file