Merge remote-tracking branch 'origin/1.1.x_branch' into 1.2.x_branch
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ build/
|
|||||||
chrome_data/
|
chrome_data/
|
||||||
dist/
|
dist/
|
||||||
/.cache
|
/.cache
|
||||||
|
/temp.json
|
||||||
|
|||||||
@@ -308,16 +308,29 @@ if (!instanceLock) {
|
|||||||
configurePrimaryApp();
|
configurePrimaryApp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const AppFunctions = {
|
||||||
|
closeApplication,
|
||||||
|
detectScript,
|
||||||
|
dialog,
|
||||||
|
getCleanupReleases: () => cleanupReleases,
|
||||||
|
getMainWindow,
|
||||||
|
saveUiSettings,
|
||||||
|
setIsInstalling,
|
||||||
|
setTrayImage,
|
||||||
|
setWindowVisibility,
|
||||||
|
standardIPCReply,
|
||||||
|
unmountAllDrives: MountsIPC.unmountAllDrives,
|
||||||
|
};
|
||||||
|
|
||||||
AppIPC.addListeners(ipcMain, closeApplication, setWindowVisibility);
|
AppIPC.addListeners(ipcMain, AppFunctions);
|
||||||
ConfigIPC.addListeners(ipcMain, standardIPCReply);
|
ConfigIPC.addListeners(ipcMain, AppFunctions);
|
||||||
DaemonIPC.addListeners(ipcMain, standardIPCReply);
|
DaemonIPC.addListeners(ipcMain, AppFunctions);
|
||||||
DependencyIPC.addListeners(ipcMain, standardIPCReply);
|
DependencyIPC.addListeners(ipcMain, AppFunctions);
|
||||||
DownloadIPC.addListeners(ipcMain, standardIPCReply);
|
DownloadIPC.addListeners(ipcMain, AppFunctions);
|
||||||
FilesystemIPC.addListeners(ipcMain, getMainWindow, dialog);
|
FilesystemIPC.addListeners(ipcMain, AppFunctions);
|
||||||
MountsIPC.addListeners(ipcMain, setTrayImage, standardIPCReply);
|
MountsIPC.addListeners(ipcMain, AppFunctions);
|
||||||
PlatformIPC.addListeners(ipcMain, detectScript, saveUiSettings);
|
PlatformIPC.addListeners(ipcMain, AppFunctions);
|
||||||
ReleaseIPC.addListeners(ipcMain, () => cleanupReleases, standardIPCReply);
|
ReleaseIPC.addListeners(ipcMain, AppFunctions);
|
||||||
StateIPC.addListeners(ipcMain);
|
StateIPC.addListeners(ipcMain, AppFunctions);
|
||||||
SystemIPC.addListeners(ipcMain, closeApplication);
|
SystemIPC.addListeners(ipcMain, AppFunctions);
|
||||||
UpgradeIPC.addListeners(ipcMain, setIsInstalling, MountsIPC.unmountAllDrives, standardIPCReply);
|
UpgradeIPC.addListeners(ipcMain, AppFunctions);
|
||||||
|
|||||||
21
src/App.js
21
src/App.js
@@ -14,6 +14,10 @@ import MountItems from './containers/MountItems/MountItems';
|
|||||||
import NewReleases from './components/NewReleases/NewReleases';
|
import NewReleases from './components/NewReleases/NewReleases';
|
||||||
import {notifyError} from './redux/actions/error_actions';
|
import {notifyError} from './redux/actions/error_actions';
|
||||||
import Reboot from './components/Reboot/Reboot';
|
import Reboot from './components/Reboot/Reboot';
|
||||||
|
import {
|
||||||
|
setDismissNewReleasesAvailable,
|
||||||
|
setNewReleasesAvailable
|
||||||
|
} from './redux/actions/release_version_actions';
|
||||||
import ReleaseVersionDisplay from './components/ReleaseVersionDisplay/ReleaseVersionDisplay';
|
import ReleaseVersionDisplay from './components/ReleaseVersionDisplay/ReleaseVersionDisplay';
|
||||||
import {
|
import {
|
||||||
displaySelectAppPlatform,
|
displaySelectAppPlatform,
|
||||||
@@ -73,6 +77,15 @@ class App extends IPCContainer {
|
|||||||
this.props.VersionLookup[Constants.RELEASE_TYPES[this.props.Release]][this.props.ReleaseVersion];
|
this.props.VersionLookup[Constants.RELEASE_TYPES[this.props.Release]][this.props.ReleaseVersion];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleUpgradeIconClicked = () => {
|
||||||
|
if (this.props.UpgradeAvailable) {
|
||||||
|
this.props.setDismissUIUpgrade(false)
|
||||||
|
} else if (this.props.NewReleasesAvailable2.length > 0) {
|
||||||
|
this.props.setNewReleasesAvailable(this.props.NewReleasesAvailable2);
|
||||||
|
this.props.setDismissNewReleasesAvailable(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const selectedVersion = this.getSelectedVersion();
|
const selectedVersion = this.getSelectedVersion();
|
||||||
|
|
||||||
@@ -177,8 +190,9 @@ class App extends IPCContainer {
|
|||||||
textAlign={'center'}
|
textAlign={'center'}
|
||||||
type={'Heading1'}/>
|
type={'Heading1'}/>
|
||||||
<UpgradeIcon
|
<UpgradeIcon
|
||||||
available={this.props.UpgradeAvailable}
|
available={this.props.UpgradeAvailable || (this.props.NewReleasesAvailable2.length > 0)}
|
||||||
clicked={()=>this.props.setDismissUIUpgrade(false)}
|
newReleases={!this.props.UpgradeAvailable && (this.props.NewReleasesAvailable2.length > 0)}
|
||||||
|
clicked={this.handleUpgradeIconClicked}
|
||||||
col={dimensions => dimensions.columns - 6}
|
col={dimensions => dimensions.columns - 6}
|
||||||
colSpan={5}
|
colSpan={5}
|
||||||
row={1}
|
row={1}
|
||||||
@@ -225,6 +239,7 @@ const mapStateToProps = state => {
|
|||||||
MissingDependencies: state.install.MissingDependencies,
|
MissingDependencies: state.install.MissingDependencies,
|
||||||
MountsBusy: state.mounts.MountsBusy,
|
MountsBusy: state.mounts.MountsBusy,
|
||||||
NewReleasesAvailable: state.relver.NewReleasesAvailable,
|
NewReleasesAvailable: state.relver.NewReleasesAvailable,
|
||||||
|
NewReleasesAvailable2: state.relver.NewReleasesAvailable2,
|
||||||
Platform: state.common.Platform,
|
Platform: state.common.Platform,
|
||||||
ProviderState: state.mounts.ProviderState,
|
ProviderState: state.mounts.ProviderState,
|
||||||
RebootRequired: state.common.RebootRequired,
|
RebootRequired: state.common.RebootRequired,
|
||||||
@@ -243,6 +258,8 @@ const mapDispatchToProps = dispatch => {
|
|||||||
loadReleases: ()=> dispatch(loadReleases()),
|
loadReleases: ()=> dispatch(loadReleases()),
|
||||||
notifyError: (msg, critical, callback) => dispatch(notifyError(msg, critical, callback)),
|
notifyError: (msg, critical, callback) => dispatch(notifyError(msg, critical, callback)),
|
||||||
saveState: () => dispatch(saveState()),
|
saveState: () => dispatch(saveState()),
|
||||||
|
setDismissNewReleasesAvailable: dismiss => dispatch(setDismissNewReleasesAvailable),
|
||||||
|
setNewReleasesAvailable: items => dispatch(setNewReleasesAvailable(items)),
|
||||||
setDismissUIUpgrade: dismiss => dispatch(setDismissUIUpgrade(dismiss)),
|
setDismissUIUpgrade: dismiss => dispatch(setDismissUIUpgrade(dismiss)),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 70 KiB |
@@ -17,5 +17,9 @@
|
|||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
opacity: 0.65;
|
color: var(--heading_text_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.UpgradeIcon.Release {
|
||||||
|
color: var(--heading_other_text_color);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import './UpgradeIcon.css';
|
import './UpgradeIcon.css';
|
||||||
import availableImage from '../../assets/images/release_available.png';
|
|
||||||
import ReactTooltip from 'react-tooltip';
|
import ReactTooltip from 'react-tooltip';
|
||||||
|
import {faExclamationTriangle} from '@fortawesome/free-solid-svg-icons';
|
||||||
|
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
||||||
|
|
||||||
export default props => {
|
export default props => {
|
||||||
|
const styles = ['UpgradeIcon'];
|
||||||
let placement = 'left';
|
let placement = 'left';
|
||||||
let toolTipText = 'UI Upgrade Available';
|
let toolTipText = 'UI Upgrade Available';
|
||||||
if (props.release) {
|
if (props.release) {
|
||||||
placement='bottom';
|
placement='bottom';
|
||||||
|
styles.push('Release');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (props.release || props.newReleases) {
|
||||||
toolTipText = 'New Release Available';
|
toolTipText = 'New Release Available';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,10 +22,11 @@ export default props => {
|
|||||||
(
|
(
|
||||||
<div className={'UpgradeIconOwner'}>
|
<div className={'UpgradeIconOwner'}>
|
||||||
<p data-tip='' data-for={placement}>
|
<p data-tip='' data-for={placement}>
|
||||||
<img alt=''
|
<a href={'#'}
|
||||||
onClick={props.clicked}
|
className={styles.join(' ')}
|
||||||
src={availableImage}
|
onClick={props.clicked}>
|
||||||
className={'UpgradeIcon'}/>
|
<FontAwesomeIcon icon={faExclamationTriangle}/>
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<ReactTooltip id={placement} place={placement}>{toolTipText}</ReactTooltip>
|
<ReactTooltip id={placement} place={placement}>{toolTipText}</ReactTooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -152,13 +152,14 @@ export default connect(mapStateToProps, mapDispatchToProps)(props => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
removeControl = (
|
removeControl = (
|
||||||
|
<RootElem col={dimensions=>dimensions.columns - 6}
|
||||||
|
row={secondRow + 3}>
|
||||||
<a href={'#'}
|
<a href={'#'}
|
||||||
col={dimensions=>dimensions.columns - 6}
|
|
||||||
onClick={handleRemoveMount}
|
onClick={handleRemoveMount}
|
||||||
row={secondRow + 3}
|
|
||||||
style={removeStyle}>
|
style={removeStyle}>
|
||||||
<FontAwesomeIcon icon={faTrashAlt}/>
|
<FontAwesomeIcon icon={faTrashAlt}/>
|
||||||
</a>);
|
</a>
|
||||||
|
</RootElem>);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import {
|
|||||||
loadReleases,
|
loadReleases,
|
||||||
setActiveRelease,
|
setActiveRelease,
|
||||||
setInstalledVersion,
|
setInstalledVersion,
|
||||||
setReleaseUpgradeAvailable
|
setReleaseUpgradeAvailable,
|
||||||
|
setNewReleasesAvailable2,
|
||||||
} from './release_version_actions';
|
} from './release_version_actions';
|
||||||
import {
|
import {
|
||||||
confirmYesNo,
|
confirmYesNo,
|
||||||
@@ -224,6 +225,11 @@ export const installRelease = source => {
|
|||||||
FilePath: source,
|
FilePath: source,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (arg.data.Success) {
|
||||||
|
localStorage.setItem('previous_releases', localStorage.getItem('releases'));
|
||||||
|
dispatch(setNewReleasesAvailable2([]));
|
||||||
|
}
|
||||||
|
|
||||||
dispatch(setInstallComplete(arg.data));
|
dispatch(setInstallComplete(arg.data));
|
||||||
dispatch(checkVersionInstalled());
|
dispatch(checkVersionInstalled());
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import {
|
|||||||
} from './install_actions';
|
} from './install_actions';
|
||||||
import {unmountAll} from './mount_actions';
|
import {unmountAll} from './mount_actions';
|
||||||
import {
|
import {
|
||||||
|
checkNewReleases,
|
||||||
getIPCRenderer,
|
getIPCRenderer,
|
||||||
getNewReleases
|
getNewReleases
|
||||||
} from '../../utils';
|
} from '../../utils';
|
||||||
@@ -140,8 +141,11 @@ export const loadReleases = () => {
|
|||||||
|
|
||||||
dispatch(setNewReleasesAvailable(newReleases));
|
dispatch(setNewReleasesAvailable(newReleases));
|
||||||
if (getState().relver.NewReleasesAvailable.length > 0) {
|
if (getState().relver.NewReleasesAvailable.length > 0) {
|
||||||
|
dispatch(setNewReleasesAvailable2(newReleases));
|
||||||
localStorage.setItem('previous_releases', storedReleases);
|
localStorage.setItem('previous_releases', storedReleases);
|
||||||
dispatch(showWindow());
|
dispatch(showWindow());
|
||||||
|
} else if ((newReleases = checkNewReleases()).length > 0) {
|
||||||
|
dispatch(setNewReleasesAvailable2(newReleases));
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
const releases = localStorage.getItem('releases');
|
const releases = localStorage.getItem('releases');
|
||||||
@@ -193,6 +197,7 @@ export const setDismissNewReleasesAvailable = createAction('relver/setDismissNew
|
|||||||
export const setDismissUIUpgrade = createAction('relver/setDismissUIUpgrade');
|
export const setDismissUIUpgrade = createAction('relver/setDismissUIUpgrade');
|
||||||
export const setInstalledVersion = createAction('relver/setInstalledVersion');
|
export const setInstalledVersion = createAction('relver/setInstalledVersion');
|
||||||
export const setNewReleasesAvailable = createAction('relver/setNewReleasesAvailable');
|
export const setNewReleasesAvailable = createAction('relver/setNewReleasesAvailable');
|
||||||
|
export const setNewReleasesAvailable2 = createAction('relver/setNewReleasesAvailable2');
|
||||||
|
|
||||||
export const SET_RELEASE_DATA = 'relver/setReleaseData';
|
export const SET_RELEASE_DATA = 'relver/setReleaseData';
|
||||||
export const setReleaseData = (locationsLookup, versionLookup)=> {
|
export const setReleaseData = (locationsLookup, versionLookup)=> {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export const releaseVersionReducer = createReducer({
|
|||||||
InstalledVersion: 'none',
|
InstalledVersion: 'none',
|
||||||
LocationsLookup: {},
|
LocationsLookup: {},
|
||||||
NewReleasesAvailable: [],
|
NewReleasesAvailable: [],
|
||||||
|
NewReleasesAvailable2: [],
|
||||||
Release: 0,
|
Release: 0,
|
||||||
ReleaseDefault: 0,
|
ReleaseDefault: 0,
|
||||||
ReleaseUpgradeAvailable: false,
|
ReleaseUpgradeAvailable: false,
|
||||||
@@ -76,6 +77,12 @@ export const releaseVersionReducer = createReducer({
|
|||||||
NewReleasesAvailable: action.payload,
|
NewReleasesAvailable: action.payload,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
[Actions.setNewReleasesAvailable2]: (state, action) => {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
NewReleasesAvailable2: action.payload,
|
||||||
|
};
|
||||||
|
},
|
||||||
[Actions.SET_RELEASE_DATA]: (state, action) => {
|
[Actions.SET_RELEASE_DATA]: (state, action) => {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
const Constants = require('../../constants');
|
const Constants = require('../../constants');
|
||||||
|
|
||||||
const addListeners = (ipcMain, closeApplication, setWindowVisibility) => {
|
const addListeners = (ipcMain, {closeApplication, setWindowVisibility}) => {
|
||||||
ipcMain.on(Constants.IPC_Shutdown, () => {
|
ipcMain.on(Constants.IPC_Shutdown, () => {
|
||||||
closeApplication();
|
closeApplication();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
const Constants = require('../../constants');
|
const Constants = require('../../constants');
|
||||||
const helpers = require('../../helpers');
|
const helpers = require('../../helpers');
|
||||||
|
|
||||||
const addListeners = (ipcMain, standardIPCReply) => {
|
const addListeners = (ipcMain, {standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Get_Config, (event, data) => {
|
ipcMain.on(Constants.IPC_Get_Config, (event, data) => {
|
||||||
helpers
|
helpers
|
||||||
.getConfig(data.Version, data.Provider, data.Remote)
|
.getConfig(data.Version, data.Provider, data.Remote)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
const Constants = require('../../constants');
|
const Constants = require('../../constants');
|
||||||
const helpers = require('../../helpers');
|
const helpers = require('../../helpers');
|
||||||
|
|
||||||
const addListeners = (ipcMain, standardIPCReply) => {
|
const addListeners = (ipcMain, {standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Check_Daemon_Version, (event, data) => {
|
ipcMain.on(Constants.IPC_Check_Daemon_Version, (event, data) => {
|
||||||
helpers
|
helpers
|
||||||
.checkDaemonVersion(data.Version, data.Provider)
|
.checkDaemonVersion(data.Version, data.Provider)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ const Constants = require('../../constants');
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const helpers = require('../../helpers');
|
const helpers = require('../../helpers');
|
||||||
|
|
||||||
const addListeners = (ipcMain, standardIPCReply) => {
|
const addListeners = (ipcMain, {standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Check_Dependency_Installed, (event, data) => {
|
ipcMain.on(Constants.IPC_Check_Dependency_Installed, (event, data) => {
|
||||||
try {
|
try {
|
||||||
const exists = fs.lstatSync(data.File).isFile();
|
const exists = fs.lstatSync(data.File).isFile();
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ const Constants = require('../../constants');
|
|||||||
const helpers = require('../../helpers');
|
const helpers = require('../../helpers');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
const addListeners = (ipcMain, standardIPCReply) => {
|
const addListeners = (ipcMain, {standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Download_File, (event, data) => {
|
ipcMain.on(Constants.IPC_Download_File, (event, data) => {
|
||||||
const destination = path.join(helpers.getDataDirectory(), data.Filename);
|
const destination = path.join(helpers.getDataDirectory(), data.Filename);
|
||||||
helpers.downloadFile(data.URL, destination, (progress) => {
|
helpers.downloadFile(data.URL, destination, (progress) => {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
const Constants = require('../../constants');
|
const Constants = require('../../constants');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
|
||||||
const addListeners = (ipcMain, getMainWindow, dialog) => {
|
const addListeners = (ipcMain, {getMainWindow, dialog}) => {
|
||||||
ipcMain.on(Constants.IPC_Browse_Directory + '_sync', (event, data) => {
|
ipcMain.on(Constants.IPC_Browse_Directory + '_sync', (event, data) => {
|
||||||
dialog.showOpenDialog(getMainWindow(), {
|
dialog.showOpenDialog(getMainWindow(), {
|
||||||
defaultPath: data.Location,
|
defaultPath: data.Location,
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ const unmountAllDrives = () => {
|
|||||||
mountedData = {};
|
mountedData = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
const addListeners = (ipcMain, setTrayImage, standardIPCReply) => {
|
const addListeners = (ipcMain, {setTrayImage, standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Check_Mount_Location + '_sync', (event, data) => {
|
ipcMain.on(Constants.IPC_Check_Mount_Location + '_sync', (event, data) => {
|
||||||
let response = {
|
let response = {
|
||||||
Success: true,
|
Success: true,
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ const setPlatformOverride = platformOverride => {
|
|||||||
_platformOverride = platformOverride;
|
_platformOverride = platformOverride;
|
||||||
};
|
};
|
||||||
|
|
||||||
const addListeners = (ipcMain, detectScript, saveUiSettings) => {
|
const addListeners = (ipcMain, {detectScript, saveUiSettings}) => {
|
||||||
ipcMain.on(Constants.IPC_Get_Platform, (event) => {
|
ipcMain.on(Constants.IPC_Get_Platform, (event) => {
|
||||||
const sendResponse = (appPlatform, platform) => {
|
const sendResponse = (appPlatform, platform) => {
|
||||||
event.sender.send(Constants.IPC_Get_Platform_Reply, {
|
event.sender.send(Constants.IPC_Get_Platform_Reply, {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const os = require('os');
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const unzip = require('unzipper');
|
const unzip = require('unzipper');
|
||||||
|
|
||||||
const addListeners = (ipcMain, getCleanupReleases, standardIPCReply) => {
|
const addListeners = (ipcMain, {getCleanupReleases, standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Check_Installed, (event, data) => {
|
ipcMain.on(Constants.IPC_Check_Installed, (event, data) => {
|
||||||
const destination = path.join(helpers.getDataDirectory(), data.Version);
|
const destination = path.join(helpers.getDataDirectory(), data.Version);
|
||||||
helpers
|
helpers
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ const Constants = require('../../constants');
|
|||||||
const os = require('os');
|
const os = require('os');
|
||||||
const helpers = require('../../helpers');
|
const helpers = require('../../helpers');
|
||||||
|
|
||||||
const addListeners = (ipcMain, closeApplication) => {
|
const addListeners = (ipcMain, {closeApplication}) => {
|
||||||
ipcMain.on(Constants.IPC_Reboot_System, () => {
|
ipcMain.on(Constants.IPC_Reboot_System, () => {
|
||||||
if (os.platform() === 'win32') {
|
if (os.platform() === 'win32') {
|
||||||
helpers.executeAsync('shutdown.exe', ['/r', '/t', '30']);
|
helpers.executeAsync('shutdown.exe', ['/r', '/t', '30']);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ const fs = require('fs');
|
|||||||
const helpers = require('../../helpers');
|
const helpers = require('../../helpers');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
|
|
||||||
const addListeners = (ipcMain, setIsInstalling, unmountAllDrives, standardIPCReply) => {
|
const addListeners = (ipcMain, {setIsInstalling, unmountAllDrives, standardIPCReply}) => {
|
||||||
ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
|
ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
|
||||||
let allowSkipVerification = true;
|
let allowSkipVerification = true;
|
||||||
|
|
||||||
|
|||||||
25
src/utils.js
25
src/utils.js
@@ -7,6 +7,21 @@ const ipcRenderer = (!process.versions.hasOwnProperty('electron') && window && w
|
|||||||
window.require('electron').ipcRenderer :
|
window.require('electron').ipcRenderer :
|
||||||
null;
|
null;
|
||||||
|
|
||||||
|
export const checkNewReleases = () => {
|
||||||
|
let previousReleases = localStorage.getItem('previous_releases');
|
||||||
|
if (previousReleases) {
|
||||||
|
previousReleases = JSON.parse(previousReleases).VersionLookup;
|
||||||
|
|
||||||
|
let currentReleases = localStorage.getItem('releases');
|
||||||
|
if (currentReleases) {
|
||||||
|
currentReleases = JSON.parse(currentReleases).VersionLookup;
|
||||||
|
return getNewReleases(previousReleases, currentReleases);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
};
|
||||||
|
|
||||||
export const createModalConditionally = (condition, jsx, critical, disableFocusTrap) => {
|
export const createModalConditionally = (condition, jsx, critical, disableFocusTrap) => {
|
||||||
const modalProps = {critical: critical, disableFocusTrap: disableFocusTrap};
|
const modalProps = {critical: critical, disableFocusTrap: disableFocusTrap};
|
||||||
return condition ? (<Modal {...modalProps}>{jsx}</Modal>) : null;
|
return condition ? (<Modal {...modalProps}>{jsx}</Modal>) : null;
|
||||||
@@ -62,7 +77,7 @@ export const getIPCRenderer = () => {
|
|||||||
return ipcRenderer;
|
return ipcRenderer;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getNewReleases = (existingReleases, newReleases) => {
|
export const getNewReleases = (existingLocations, newLocations) => {
|
||||||
const ret = [];
|
const ret = [];
|
||||||
|
|
||||||
/*existingReleases = Constants.RELEASE_TYPES.reduce((map, release) => {
|
/*existingReleases = Constants.RELEASE_TYPES.reduce((map, release) => {
|
||||||
@@ -70,15 +85,15 @@ export const getNewReleases = (existingReleases, newReleases) => {
|
|||||||
return map;
|
return map;
|
||||||
}, {});*/
|
}, {});*/
|
||||||
|
|
||||||
if (existingReleases && newReleases) {
|
if (existingLocations && newLocations) {
|
||||||
Constants.RELEASE_TYPES.forEach(release => {
|
Constants.RELEASE_TYPES.forEach(release => {
|
||||||
newReleases[release]
|
newLocations[release]
|
||||||
.filter(version => !existingReleases[release].includes(version) && (version !== 'unavailable'))
|
.filter(version => !existingLocations[release].includes(version) && (version !== 'unavailable'))
|
||||||
.forEach(version => {
|
.forEach(version => {
|
||||||
ret.splice(0, 0, {
|
ret.splice(0, 0, {
|
||||||
Display: version,
|
Display: version,
|
||||||
Release: Constants.RELEASE_TYPES.indexOf(release),
|
Release: Constants.RELEASE_TYPES.indexOf(release),
|
||||||
Version: newReleases[release].indexOf(version),
|
Version: newLocations[release].indexOf(version),
|
||||||
VersionString: version,
|
VersionString: version,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user