mirror of
https://github.com/stagehacks/Cue-View.git
synced 2026-07-26 09:18:39 +00:00
pretty loose files
This commit is contained in:
+1
-1
@@ -20,6 +20,6 @@ module.exports = {
|
||||
'no-use-before-define': 'off',
|
||||
'space-infix-ops': 'warn',
|
||||
'no-bitwise': 'off',
|
||||
'no-restricted-globals': 'off'
|
||||
'no-restricted-globals': 'off',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -42,4 +42,3 @@ jobs:
|
||||
node-version: 18
|
||||
- run: npm ci
|
||||
- run: npm run release
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||

|
||||
|
||||
# Cue View
|
||||
|
||||
A dashboard for everything in your show.
|
||||
|
||||
+1
-3
@@ -88,14 +88,12 @@
|
||||
<th>Pin:</th>
|
||||
<td><input id="device-settings-pin" type="checkbox" /></td>
|
||||
</tr>
|
||||
<tbody id="device-settings-fields">
|
||||
</tbody>
|
||||
<tbody id="device-settings-fields"></tbody>
|
||||
</table>
|
||||
|
||||
<h3>No Device Selected</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="all-devices"></div>
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
const { app, BrowserWindow, Menu, ipcMain, nativeTheme, dialog } = require('electron');
|
||||
const {
|
||||
app,
|
||||
BrowserWindow,
|
||||
Menu,
|
||||
ipcMain,
|
||||
nativeTheme,
|
||||
dialog,
|
||||
} = require('electron');
|
||||
const { autoUpdater } = require('electron-updater');
|
||||
const path = require('path');
|
||||
|
||||
@@ -10,7 +17,6 @@ let manualUpdateCheck = false;
|
||||
let menuObj;
|
||||
let mainWindow;
|
||||
|
||||
|
||||
const menuTemplate = [
|
||||
...(isMac ? [{ role: 'appMenu' }] : []),
|
||||
{
|
||||
@@ -19,17 +25,17 @@ const menuTemplate = [
|
||||
{
|
||||
label: 'Clear Saved Data',
|
||||
id: 'resetViews',
|
||||
click (menuItem, window, event) {
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send('resetViews');
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Reload App',
|
||||
role: 'reload'
|
||||
role: 'reload',
|
||||
},
|
||||
{ type: 'separator' },
|
||||
...(isMac ? [{ role: 'close' }] : [{ role: 'quit' }])
|
||||
]
|
||||
...(isMac ? [{ role: 'close' }] : [{ role: 'quit' }]),
|
||||
],
|
||||
},
|
||||
{ role: 'editMenu' },
|
||||
{
|
||||
@@ -42,31 +48,31 @@ const menuTemplate = [
|
||||
accelerator: 'CommandOrControl+1',
|
||||
id: 'window1',
|
||||
enabled: true,
|
||||
click (menuItem, window, event) {
|
||||
mainWindow.webContents.send('loadSlot',1);
|
||||
}
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send('loadSlot', 1);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Arrangement 2',
|
||||
accelerator: 'CommandOrControl+2',
|
||||
id: 'window2',
|
||||
enabled: true,
|
||||
click (menuItem, window, event) {
|
||||
mainWindow.webContents.send('loadSlot',2);
|
||||
}
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send('loadSlot', 2);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Arrangement 3',
|
||||
accelerator: 'CommandOrControl+3',
|
||||
id: 'window3',
|
||||
enabled: true,
|
||||
click (menuItem, window, event) {
|
||||
mainWindow.webContents.send('loadSlot',3);
|
||||
}
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send('loadSlot', 3);
|
||||
},
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{ role: 'toggleDevTools' }
|
||||
]
|
||||
{ role: 'toggleDevTools' },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Device',
|
||||
@@ -76,9 +82,9 @@ const menuTemplate = [
|
||||
accelerator: 'CommandOrControl+F',
|
||||
id: 'deviceSearch',
|
||||
enabled: true,
|
||||
click (menuItem, window, event) {
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send('searchAll');
|
||||
}
|
||||
},
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{
|
||||
@@ -88,23 +94,23 @@ const menuTemplate = [
|
||||
accelerator: 'CommandOrControl+P',
|
||||
id: 'devicePin',
|
||||
enabled: false,
|
||||
click (menuItem, window, event) {
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send(
|
||||
'setActiveDevicePinned',
|
||||
menuItem.checked
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Delete',
|
||||
accelerator: 'CommandOrControl+Backspace',
|
||||
id: 'deviceDelete',
|
||||
enabled: false,
|
||||
click (menuItem, window, event) {
|
||||
click(menuItem, window, event) {
|
||||
mainWindow.webContents.send('deleteActive');
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Help',
|
||||
@@ -112,67 +118,64 @@ const menuTemplate = [
|
||||
submenu: [
|
||||
{
|
||||
label: 'About',
|
||||
role: 'about'
|
||||
role: 'about',
|
||||
},
|
||||
{
|
||||
label: 'Check for Updates',
|
||||
click: ()=>{
|
||||
click: () => {
|
||||
// set manual update flag
|
||||
manualUpdateCheck = true
|
||||
manualUpdateCheck = true;
|
||||
autoUpdater.checkForUpdates();
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Enable Auto Update',
|
||||
click: ()=>{
|
||||
mainWindow.webContents.send('setAutoUpdate',!autoUpdate);
|
||||
}
|
||||
}
|
||||
]
|
||||
click: () => {
|
||||
mainWindow.webContents.send('setAutoUpdate', !autoUpdate);
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
const windowMac = {
|
||||
width: 1500,
|
||||
height: 900,
|
||||
titleBarStyle: 'hiddenInset',
|
||||
transparent: true,
|
||||
frame: false,
|
||||
show: false,
|
||||
// backgroundColor: "#333333",
|
||||
vibrancy: 'window',
|
||||
visualEffectState: 'followWindow',
|
||||
webPreferences: {
|
||||
contextIsolation: false,
|
||||
nodeIntegration: true,
|
||||
preload: path.join(__dirname, 'preload.js'),
|
||||
},
|
||||
}
|
||||
|
||||
const windowWin = {
|
||||
width: 1500,
|
||||
height: 900,
|
||||
backgroundColor: "#333333",
|
||||
titleBarStyle: 'hiddenInset',
|
||||
transparent: true,
|
||||
frame: false,
|
||||
show: false,
|
||||
// backgroundColor: "#333333",
|
||||
vibrancy: 'window',
|
||||
visualEffectState: 'followWindow',
|
||||
webPreferences: {
|
||||
contextIsolation: false,
|
||||
nodeIntegration: true,
|
||||
preload: path.join(__dirname, 'preload.js'),
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
if (isWin)
|
||||
{
|
||||
app.setAppUserModelId(app.name);
|
||||
const windowWin = {
|
||||
width: 1500,
|
||||
height: 900,
|
||||
backgroundColor: '#333333',
|
||||
webPreferences: {
|
||||
contextIsolation: false,
|
||||
nodeIntegration: true,
|
||||
preload: path.join(__dirname, 'preload.js'),
|
||||
},
|
||||
};
|
||||
|
||||
if (isWin) {
|
||||
app.setAppUserModelId(app.name);
|
||||
}
|
||||
|
||||
const createWindow = () => {
|
||||
|
||||
nativeTheme.themeSource = 'dark';
|
||||
|
||||
if(isMac){
|
||||
|
||||
if (isMac) {
|
||||
mainWindow = new BrowserWindow(windowMac);
|
||||
}else{
|
||||
} else {
|
||||
mainWindow = new BrowserWindow(windowWin);
|
||||
}
|
||||
|
||||
@@ -192,7 +195,7 @@ const createWindow = () => {
|
||||
|
||||
app.whenReady().then(() => {
|
||||
createWindow();
|
||||
|
||||
|
||||
app.on('activate', () => {
|
||||
if (BrowserWindow.getAllWindows().length === 0) createWindow();
|
||||
});
|
||||
@@ -224,134 +227,134 @@ ipcMain.on('setDevicePin', (event, arg) => {
|
||||
menuObj.getMenuItemById('devicePin').checked = arg;
|
||||
});
|
||||
|
||||
|
||||
// Autoupdate logic
|
||||
ipcMain.on('checkForUpdates', (event, arg)=>{
|
||||
ipcMain.on('checkForUpdates', (event, arg) => {
|
||||
autoUpdater.checkForUpdates();
|
||||
})
|
||||
});
|
||||
|
||||
ipcMain.on('setAutoUpdate', (event, _autoUpdate) => {
|
||||
autoUpdate = _autoUpdate;
|
||||
|
||||
ipcMain.on('setAutoUpdate', (event, _autoUpdate)=>{
|
||||
autoUpdate = _autoUpdate
|
||||
|
||||
// update menu item for enabling/disabling auto update
|
||||
menuTemplate[menuTemplate.length-1].submenu[2].label = autoUpdate ? 'Disable Auto Update' : 'Enable Auto Update';
|
||||
menuTemplate[menuTemplate.length - 1].submenu[2].label = autoUpdate
|
||||
? 'Disable Auto Update'
|
||||
: 'Enable Auto Update';
|
||||
menuObj = Menu.buildFromTemplate(menuTemplate);
|
||||
Menu.setApplicationMenu(menuObj);
|
||||
})
|
||||
});
|
||||
|
||||
// this can be set to true to bypass the download update dialog and skip straight to install prompt
|
||||
autoUpdater.autoDownload = false;
|
||||
|
||||
autoUpdater.on('update-available', (updateInfo) => {
|
||||
|
||||
// skip prompting to download if autoDownload is set
|
||||
if(autoUpdater.autoDownload){
|
||||
if (autoUpdater.autoDownload) {
|
||||
return;
|
||||
}
|
||||
|
||||
const msg = `Version v${updateInfo.version} is available. Would you like to download it?`
|
||||
const msg = `Version v${updateInfo.version} is available. Would you like to download it?`;
|
||||
const title = 'Update Available';
|
||||
|
||||
let dialogOpts = {}
|
||||
let dialogOpts = {};
|
||||
|
||||
if(isMac){
|
||||
if (isMac) {
|
||||
dialogOpts = {
|
||||
type: 'info',
|
||||
buttons: ['Download', 'Cancel'],
|
||||
title: 'Update Available',
|
||||
message: title,
|
||||
detail: msg
|
||||
}
|
||||
}else{
|
||||
detail: msg,
|
||||
};
|
||||
} else {
|
||||
dialogOpts = {
|
||||
type: 'info',
|
||||
buttons: ['Download', 'Cancel'],
|
||||
title: 'Update Available',
|
||||
message: msg
|
||||
}
|
||||
message: msg,
|
||||
};
|
||||
}
|
||||
|
||||
dialog.showMessageBox(mainWindow,dialogOpts).then((returnValue) => {
|
||||
|
||||
dialog.showMessageBox(mainWindow, dialogOpts).then((returnValue) => {
|
||||
// download was clicked
|
||||
if (returnValue.response === 0){
|
||||
if (returnValue.response === 0) {
|
||||
autoUpdater.downloadUpdate();
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
autoUpdater.on('update-downloaded',(event)=>{
|
||||
autoUpdater.on('update-downloaded', (event) => {
|
||||
const title = 'Update Downloaded';
|
||||
const msg = `Version v${event.version} has been downloaded. Would you like to install this update now?`
|
||||
const msg = `Version v${event.version} has been downloaded. Would you like to install this update now?`;
|
||||
|
||||
let dialogOpts = {}
|
||||
|
||||
if(isMac){
|
||||
let dialogOpts = {};
|
||||
|
||||
if (isMac) {
|
||||
dialogOpts = {
|
||||
type: 'info',
|
||||
buttons: ['Install', 'Later'],
|
||||
title: 'Update Available',
|
||||
message: title,
|
||||
detail: msg
|
||||
}
|
||||
}else{
|
||||
detail: msg,
|
||||
};
|
||||
} else {
|
||||
dialogOpts = {
|
||||
type: 'info',
|
||||
buttons: ['Install', 'Later'],
|
||||
title: 'Update Available',
|
||||
message: msg
|
||||
}
|
||||
message: msg,
|
||||
};
|
||||
}
|
||||
|
||||
dialog.showMessageBox(mainWindow,dialogOpts).then((returnValue) => {
|
||||
if (returnValue.response === 0) autoUpdater.quitAndInstall()
|
||||
})
|
||||
})
|
||||
|
||||
autoUpdater.on('update-not-available',(updateInfo)=>{
|
||||
if(manualUpdateCheck){
|
||||
let dialogOpts = {}
|
||||
const msg = `There is no update available at this time. Latest version is v${updateInfo.version}`
|
||||
if(isMac){
|
||||
dialog.showMessageBox(mainWindow, dialogOpts).then((returnValue) => {
|
||||
if (returnValue.response === 0) autoUpdater.quitAndInstall();
|
||||
});
|
||||
});
|
||||
|
||||
autoUpdater.on('update-not-available', (updateInfo) => {
|
||||
if (manualUpdateCheck) {
|
||||
let dialogOpts = {};
|
||||
const msg = `There is no update available at this time. Latest version is v${updateInfo.version}`;
|
||||
if (isMac) {
|
||||
dialogOpts = {
|
||||
type: 'info',
|
||||
buttons: ['Ok'],
|
||||
title: 'No Update Available',
|
||||
message: 'No Update Available',
|
||||
detail: msg
|
||||
}
|
||||
}else{
|
||||
detail: msg,
|
||||
};
|
||||
} else {
|
||||
dialogOpts = {
|
||||
type: 'info',
|
||||
buttons: ['Ok'],
|
||||
title: 'No Update Available',
|
||||
message: msg
|
||||
}
|
||||
message: msg,
|
||||
};
|
||||
}
|
||||
dialog.showMessageBox(mainWindow,dialogOpts)
|
||||
dialog.showMessageBox(mainWindow, dialogOpts);
|
||||
// revert manual update flag
|
||||
manualUpdateCheck = false;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
autoUpdater.on('error',(error,message)=>{
|
||||
let dialogOpts = {}
|
||||
|
||||
if(isMac){
|
||||
autoUpdater.on('error', (error, message) => {
|
||||
let dialogOpts = {};
|
||||
|
||||
if (isMac) {
|
||||
dialogOpts = {
|
||||
type: 'error',
|
||||
buttons: ['Ok'],
|
||||
title: 'Update Error',
|
||||
message: 'Update Error',
|
||||
detail: error.message
|
||||
}
|
||||
}else{
|
||||
detail: error.message,
|
||||
};
|
||||
} else {
|
||||
dialogOpts = {
|
||||
type: 'error',
|
||||
buttons: ['Ok'],
|
||||
title: 'Update Error',
|
||||
message: error.message
|
||||
}
|
||||
message: error.message,
|
||||
};
|
||||
}
|
||||
|
||||
dialog.showMessageBox(mainWindow,dialogOpts)
|
||||
})
|
||||
dialog.showMessageBox(mainWindow, dialogOpts);
|
||||
});
|
||||
|
||||
+38
-35
@@ -1,41 +1,44 @@
|
||||
const notarize = require('@electron/notarize');
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
module.exports = async function (params) {
|
||||
if (process.platform !== 'darwin') {
|
||||
console.log('Only need to notarize MacOS, skipping')
|
||||
return
|
||||
}
|
||||
|
||||
const appId = 'com.stagehacks.cueview'
|
||||
if (process.platform !== 'darwin') {
|
||||
console.log('Only need to notarize MacOS, skipping');
|
||||
return;
|
||||
}
|
||||
|
||||
const appPath = path.join(
|
||||
params.appOutDir,
|
||||
`${params.packager.appInfo.productFilename}.app`
|
||||
)
|
||||
const appId = 'com.stagehacks.cueview';
|
||||
|
||||
if (!fs.existsSync(appPath)) {
|
||||
console.error('App file not found skipping notarization.');
|
||||
return;
|
||||
}
|
||||
|
||||
if(process.env.APPLE_ID === undefined || process.env.APPLE_ID_PASSWORD === undefined){
|
||||
console.log('Apple ID and Password must be set in order to notarize.')
|
||||
return;
|
||||
}
|
||||
const appPath = path.join(
|
||||
params.appOutDir,
|
||||
`${params.packager.appInfo.productFilename}.app`
|
||||
);
|
||||
|
||||
try {
|
||||
console.log(`Notarizing ${appId} found at ${appPath}`)
|
||||
await notarize.notarize({
|
||||
appBundleId: appId,
|
||||
appPath,
|
||||
appleId: process.env.APPLE_ID,
|
||||
appleIdPassword: process.env.APPLE_ID_PASSWORD,
|
||||
})
|
||||
console.log(`Done notarizing ${appId}`)
|
||||
} catch (error) {
|
||||
console.log('There was an error notarizing.')
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
if (!fs.existsSync(appPath)) {
|
||||
console.error('App file not found skipping notarization.');
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
process.env.APPLE_ID === undefined ||
|
||||
process.env.APPLE_ID_PASSWORD === undefined
|
||||
) {
|
||||
console.log('Apple ID and Password must be set in order to notarize.');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
console.log(`Notarizing ${appId} found at ${appPath}`);
|
||||
await notarize.notarize({
|
||||
appBundleId: appId,
|
||||
appPath,
|
||||
appleId: process.env.APPLE_ID,
|
||||
appleIdPassword: process.env.APPLE_ID_PASSWORD,
|
||||
});
|
||||
console.log(`Done notarizing ${appId}`);
|
||||
} catch (error) {
|
||||
console.log('There was an error notarizing.');
|
||||
console.error(error);
|
||||
}
|
||||
};
|
||||
|
||||
+60
-54
@@ -16,13 +16,13 @@ window.init = function init() {
|
||||
ipcRenderer.send('enableSearchAll');
|
||||
|
||||
// load autoUpdate setting from storage and send to main process
|
||||
const autoUpdate = JSON.parse(localStorage.getItem('autoUpdate'))
|
||||
if(autoUpdate !== undefined && autoUpdate !== null){
|
||||
if(autoUpdate){
|
||||
const autoUpdate = JSON.parse(localStorage.getItem('autoUpdate'));
|
||||
if (autoUpdate !== undefined && autoUpdate !== null) {
|
||||
if (autoUpdate) {
|
||||
ipcRenderer.send('checkForUpdates');
|
||||
}
|
||||
// send message so main process knows the state of autoUpdate
|
||||
ipcRenderer.send('setAutoUpdate', autoUpdate)
|
||||
ipcRenderer.send('setAutoUpdate', autoUpdate);
|
||||
}
|
||||
|
||||
PLUGINS.init(() => {
|
||||
@@ -35,31 +35,39 @@ window.init = function init() {
|
||||
SEARCH.searchAll();
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-table').onclick = function settingsClick(e) {
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-name').onchange = function nameChange(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActiveName(e.target.value);
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-plugin-dropdown').onchange = function dropdownChange(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActiveType(e.target.value);
|
||||
};
|
||||
document.getElementById('device-settings-table').onclick =
|
||||
function settingsClick(e) {
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-ip').onchange = function ipChange(e) {
|
||||
document.getElementById('device-settings-name').onchange =
|
||||
function nameChange(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActiveName(e.target.value);
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-plugin-dropdown').onchange =
|
||||
function dropdownChange(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActiveType(e.target.value);
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-ip').onchange = function ipChange(
|
||||
e
|
||||
) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActiveIP(e.target.value);
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-port').onchange = function portChange(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActivePort(e.target.value);
|
||||
};
|
||||
document.getElementById('device-settings-port').onchange =
|
||||
function portChange(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.changeActivePort(e.target.value);
|
||||
};
|
||||
|
||||
document.getElementById('device-settings-pin').onchange = function pinChange(e) {
|
||||
document.getElementById('device-settings-pin').onchange = function pinChange(
|
||||
e
|
||||
) {
|
||||
e.stopPropagation();
|
||||
if (e.target.checked) {
|
||||
VIEW.pinActiveDevice();
|
||||
@@ -68,7 +76,6 @@ window.init = function init() {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
document.getElementById('save-slot-1').onclick = function slot1click(e) {
|
||||
e.stopPropagation();
|
||||
SAVESLOTS.loadSlot(1);
|
||||
@@ -84,10 +91,11 @@ window.init = function init() {
|
||||
SAVESLOTS.loadSlot(3);
|
||||
};
|
||||
|
||||
document.getElementById('refresh-device-button').onclick = function refreshClick(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.refreshActive();
|
||||
};
|
||||
document.getElementById('refresh-device-button').onclick =
|
||||
function refreshClick(e) {
|
||||
e.stopPropagation();
|
||||
DEVICE.refreshActive();
|
||||
};
|
||||
|
||||
document.getElementById('device-list').onclick = function listClick(e) {
|
||||
e.stopPropagation();
|
||||
@@ -97,26 +105,25 @@ window.init = function init() {
|
||||
}
|
||||
};
|
||||
|
||||
document.getElementById('add-device-button').onchange = function addDeviceClick(e) {
|
||||
DEVICE.registerDevice({
|
||||
type: e.target.value,
|
||||
defaultName: 'New Device',
|
||||
port: undefined,
|
||||
addresses: [],
|
||||
});
|
||||
e.target.selectedIndex = 0;
|
||||
document.getElementById('add-device-button').onchange =
|
||||
function addDeviceClick(e) {
|
||||
DEVICE.registerDevice({
|
||||
type: e.target.value,
|
||||
defaultName: 'New Device',
|
||||
port: undefined,
|
||||
addresses: [],
|
||||
});
|
||||
e.target.selectedIndex = 0;
|
||||
|
||||
SAVESLOTS.saveAll();
|
||||
};
|
||||
SAVESLOTS.saveAll();
|
||||
};
|
||||
|
||||
document.onkeyup = function keyUp(e) {
|
||||
if(e.key === 'ArrowUp'){
|
||||
if (e.key === 'ArrowUp') {
|
||||
VIEW.selectPreviousDevice();
|
||||
|
||||
}else if(e.key === 'ArrowDown'){
|
||||
} else if (e.key === 'ArrowDown') {
|
||||
VIEW.selectNextDevice();
|
||||
|
||||
}else if(e.key === 'Tab'){
|
||||
} else if (e.key === 'Tab') {
|
||||
if (
|
||||
document.activeElement.tagName !== 'INPUT' &&
|
||||
document.activeElement.tagName !== 'SELECT'
|
||||
@@ -124,10 +131,11 @@ window.init = function init() {
|
||||
document.getElementById('device-settings-name').select();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
document.getElementById('device-list-col').onclick = function deviceListClick(e) {
|
||||
document.getElementById('device-list-col').onclick = function deviceListClick(
|
||||
e
|
||||
) {
|
||||
try {
|
||||
document
|
||||
.querySelector('#device-list .active-device')
|
||||
@@ -170,22 +178,20 @@ ipcRenderer.on('resetViews', (event, message) => {
|
||||
});
|
||||
|
||||
ipcRenderer.on('loadSlot', (event, slot) => {
|
||||
if(slot){
|
||||
if (slot) {
|
||||
SAVESLOTS.loadSlot(slot);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// message from main process to set autoUpdate state
|
||||
ipcRenderer.on('setAutoUpdate',(event,autoUpdate)=>{
|
||||
localStorage.setItem('autoUpdate',autoUpdate);
|
||||
if(autoUpdate){
|
||||
ipcRenderer.on('setAutoUpdate', (event, autoUpdate) => {
|
||||
localStorage.setItem('autoUpdate', autoUpdate);
|
||||
if (autoUpdate) {
|
||||
ipcRenderer.send('checkForUpdates');
|
||||
}
|
||||
// message to main process that we have updated the state
|
||||
ipcRenderer.send('setAutoUpdate',autoUpdate);
|
||||
})
|
||||
|
||||
ipcRenderer.send('setAutoUpdate', autoUpdate);
|
||||
});
|
||||
|
||||
function switchClass(element, className) {
|
||||
try {
|
||||
@@ -195,4 +201,4 @@ function switchClass(element, className) {
|
||||
}
|
||||
element.classList.add(className);
|
||||
}
|
||||
window.switchClass = switchClass;
|
||||
window.switchClass = switchClass;
|
||||
|
||||
Reference in New Issue
Block a user