projectb/main.js
2023-10-11 17:26:00 +05:30

79 lines
2.0 KiB
JavaScript

// main.js
// const { app, BrowserWindow} = require('electron');
const { app, BrowserWindow, ipcMain } = require('electron');
const fs = require('fs');
const path = require('path');
const jquery = require('jquery');
let onlineStatus = true;
const { dialog } = require('electron');
const saveFile = require('./savexml')
require('dotenv').config()
const auto_close= process.env.DISABLE_AUTO_CLOSE;
const auto_close_time = parseInt(process.env.AUTO_CLOSE_TIME) * 1000;
let mainWindow;
async function createWindow() {
mainWindow = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
mainWindow.loadFile('dashboard.html'); // Create an HTML file for your interface
mainWindow.on('closed', function () {
mainWindow = null;
});
setInterval(checkInternetConnection, 5000);
}
async function checkInternetConnection() {
try {
const response = await fetch('https://www.google.com');
if (response.ok && onlineStatus) {
onlineStatus = false;
if (auto_close === 'TRUE') {
}else{
dialog.showMessageBox(mainWindow, {
type: 'info',
message: `Internet is available. Click OK to close the app. Otherwise app will auto close in ${auto_close_time/1000} Seconds`,
buttons: ['OK'],
});
//Send the tigger to AutoSave the question Paper when System come's online
mainWindow.webContents.send('button-click');
setTimeout(() => {
app.quit();
}, auto_close_time);
}
} else if (!response.ok && !onlineStatus) {
onlineStatus = true;
}
} catch (error) {
console.error('Error checking internet connection');
}
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', function () {
if (mainWindow === null) {
createWindow();
}
});