#36: Add ability to select Linux distribution type if OS is unsupported - partial
This commit is contained in:
@@ -284,6 +284,7 @@ const saveUiSettings = () => {
|
|||||||
try {
|
try {
|
||||||
fs.writeFileSync(settingFile, JSON.stringify({
|
fs.writeFileSync(settingFile, JSON.stringify({
|
||||||
launch_hidden: launchHidden,
|
launch_hidden: launchHidden,
|
||||||
|
platform_override: platformOverride,
|
||||||
}), 'utf-8');
|
}), 'utf-8');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
@@ -662,7 +663,7 @@ ipcMain.on(Constants.IPC_Get_Platform, (event) => {
|
|||||||
const platform = os.platform();
|
const platform = os.platform();
|
||||||
if (platform === 'linux') {
|
if (platform === 'linux') {
|
||||||
if (platformOverride && (platformOverride.trim().length > 0)) {
|
if (platformOverride && (platformOverride.trim().length > 0)) {
|
||||||
sendResponse(platformOverride, 'linux');
|
sendResponse(platformOverride.trim(), 'linux');
|
||||||
} else {
|
} else {
|
||||||
const scriptFile = path.join(os.tmpdir(), 'repertory_detect_linux.sh');
|
const scriptFile = path.join(os.tmpdir(), 'repertory_detect_linux.sh');
|
||||||
fs.writeFileSync(scriptFile, detectScript);
|
fs.writeFileSync(scriptFile, detectScript);
|
||||||
@@ -948,6 +949,12 @@ ipcMain.on(Constants.IPC_Set_Config_Values, (event, data) => {
|
|||||||
setConfigValue(0);
|
setConfigValue(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcMain.on(Constants.IPC_Set_Linux_AppPlatform, (event, data) => {
|
||||||
|
platformOverride = data.AppPlatform;
|
||||||
|
saveUiSettings();
|
||||||
|
event.returnValue = true;
|
||||||
|
});
|
||||||
|
|
||||||
ipcMain.on(Constants.IPC_Shutdown, () => {
|
ipcMain.on(Constants.IPC_Shutdown, () => {
|
||||||
closeApplication();
|
closeApplication();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import {
|
|||||||
displaySelectAppPlatform,
|
displaySelectAppPlatform,
|
||||||
saveState
|
saveState
|
||||||
} from './redux/actions/common_actions';
|
} from './redux/actions/common_actions';
|
||||||
import SelectAppPlatform from './components/SelectAppPlatform/SelectAppPlatform';
|
import SelectAppPlatform from './containers/SelectAppPlatform/SelectAppPlatform';
|
||||||
import Text from './components/UI/Text/Text';
|
import Text from './components/UI/Text/Text';
|
||||||
import UpgradeIcon from './components/UpgradeIcon/UpgradeIcon';
|
import UpgradeIcon from './components/UpgradeIcon/UpgradeIcon';
|
||||||
import UpgradeUI from './components/UpgradeUI/UpgradeUI';
|
import UpgradeUI from './components/UpgradeUI/UpgradeUI';
|
||||||
@@ -43,8 +43,8 @@ class App extends IPCContainer {
|
|||||||
this.props.loadReleases();
|
this.props.loadReleases();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.scheduledUpdateJob = Scheduler.scheduleJob('23 11 * * *', detectUpgrades);
|
|
||||||
detectUpgrades();
|
detectUpgrades();
|
||||||
|
this.scheduledUpdateJob = Scheduler.scheduleJob('23 11 * * *', detectUpgrades);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
@@ -224,7 +224,7 @@ const mapStateToProps = state => {
|
|||||||
|
|
||||||
const mapDispatchToProps = dispatch => {
|
const mapDispatchToProps = dispatch => {
|
||||||
return {
|
return {
|
||||||
displaySelectAppPlatform: ()=> dispatch(displaySelectAppPlatform()),
|
displaySelectAppPlatform: display => dispatch(displaySelectAppPlatform(display)),
|
||||||
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()),
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import './SelectAppPlatform.css';
|
|
||||||
import * as Constants from '../../constants';
|
|
||||||
import {connect} from 'react-redux';
|
|
||||||
import Box from '../UI/Box/Box';
|
|
||||||
import Button from '../UI/Button/Button';
|
|
||||||
import DropDown from '../UI/DropDown/DropDown';
|
|
||||||
import {rebootSystem} from '../../redux/actions/common_actions';
|
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => {
|
|
||||||
return {
|
|
||||||
rebootSystem: () => dispatch(rebootSystem()),
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export default connect(null, mapDispatchToProps)(props => {
|
|
||||||
return (
|
|
||||||
<Box dxDark dxStyle={{padding: '8px'}}>
|
|
||||||
<h1 className={'SAPHeading'}>Select Linux Platform</h1>
|
|
||||||
<div className={'SAPContent'}>
|
|
||||||
<p>Repertory was unable to detect your Linux distribution. Please select one of the following and click <b>'Test'</b> to continue:</p>
|
|
||||||
</div>
|
|
||||||
<DropDown items={Constants.LINUX_SELECTABLE_PLATFORMS}/>
|
|
||||||
<Button clicked={}>Test</Button>
|
|
||||||
</Box>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
@@ -28,7 +28,8 @@ exports.DEV_PUBLIC_KEY = '-----BEGIN PUBLIC KEY-----\n' +
|
|||||||
'-----END PUBLIC KEY-----';
|
'-----END PUBLIC KEY-----';
|
||||||
|
|
||||||
|
|
||||||
const REPERTORY_BRANCH = '1.1.0-release_branch';
|
//const REPERTORY_BRANCH = '1.1.0-release_branch';
|
||||||
|
const REPERTORY_BRANCH = 'master';
|
||||||
const REPERTORY_UI_BRANCH = '1.0.8_branch';
|
const REPERTORY_UI_BRANCH = '1.0.8_branch';
|
||||||
|
|
||||||
exports.RELEASES_URL = 'https://bitbucket.org/blockstorage/repertory/raw/' + REPERTORY_BRANCH + '/releases.json';
|
exports.RELEASES_URL = 'https://bitbucket.org/blockstorage/repertory/raw/' + REPERTORY_BRANCH + '/releases.json';
|
||||||
@@ -68,6 +69,7 @@ exports.RELEASE_TYPES = [
|
|||||||
exports.INSTALL_TYPES = {
|
exports.INSTALL_TYPES = {
|
||||||
Dependency: 'dependency',
|
Dependency: 'dependency',
|
||||||
Release: 'release',
|
Release: 'release',
|
||||||
|
TestRelease: 'test_release',
|
||||||
Upgrade: 'upgrade',
|
Upgrade: 'upgrade',
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -126,8 +128,13 @@ exports.IPC_Show_Window = 'show_window';
|
|||||||
exports.IPC_Set_Config_Values = 'set_config_values';
|
exports.IPC_Set_Config_Values = 'set_config_values';
|
||||||
exports.IPC_Set_Config_Values_Reply = 'set_config_values_reply';
|
exports.IPC_Set_Config_Values_Reply = 'set_config_values_reply';
|
||||||
|
|
||||||
|
exports.IPC_Set_Linux_AppPlatform = 'IPC_Set_Linux_AppPlatform';
|
||||||
|
|
||||||
exports.IPC_Shutdown = 'shutdown';
|
exports.IPC_Shutdown = 'shutdown';
|
||||||
|
|
||||||
|
exports.IPC_Test_Release = 'test_release';
|
||||||
|
exports.IPC_Test_Release_Reply = 'test_release_reply';
|
||||||
|
|
||||||
exports.IPC_Unmount_All_Drives = 'unmount_all';
|
exports.IPC_Unmount_All_Drives = 'unmount_all';
|
||||||
exports.IPC_Unmount_All_Drives_Reply = 'unmount_all_reply';
|
exports.IPC_Unmount_All_Drives_Reply = 'unmount_all_reply';
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,13 @@
|
|||||||
|
|
||||||
.SAPContent {
|
.SAPContent {
|
||||||
max-height: 60vh;
|
max-height: 60vh;
|
||||||
|
width: 255px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.SAPActions {
|
||||||
|
margin-top: 4px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
83
src/containers/SelectAppPlatform/SelectAppPlatform.js
Normal file
83
src/containers/SelectAppPlatform/SelectAppPlatform.js
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import IPCContainer from '../IPCContainer/IPCContainer';
|
||||||
|
import './SelectAppPlatform.css';
|
||||||
|
import * as Constants from '../../constants';
|
||||||
|
import {connect} from 'react-redux';
|
||||||
|
import Box from '../../components/UI/Box/Box';
|
||||||
|
import Button from '../../components/UI/Button/Button';
|
||||||
|
import {downloadItem} from '../../redux/actions/download_actions';
|
||||||
|
import DropDown from '../../components/UI/DropDown/DropDown';
|
||||||
|
import axios from 'axios';
|
||||||
|
import {notifyError} from '../../redux/actions/error_actions';
|
||||||
|
import {setInstallTestActive} from '../../redux/actions/install_actions';
|
||||||
|
|
||||||
|
class SelectAppPlatform extends IPCContainer {
|
||||||
|
state = {
|
||||||
|
Selected: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
grabLatestRelease = appPlatform => {
|
||||||
|
const errorHandler = error => {
|
||||||
|
this.props.notifyError(error);
|
||||||
|
this.props.setInstallTestActive(false);
|
||||||
|
};
|
||||||
|
axios
|
||||||
|
.get(Constants.RELEASES_URL)
|
||||||
|
.then(response => {
|
||||||
|
try {
|
||||||
|
const releases = response.data.Versions.Release[appPlatform];
|
||||||
|
const latestVersion = releases[releases.length - 1];
|
||||||
|
const release = response.data.Locations[appPlatform][latestVersion];
|
||||||
|
this.props.downloadItem(latestVersion + '.zip', Constants.INSTALL_TYPES.TestRelease, release.urls, false, latestVersion, appPlatform);
|
||||||
|
} catch (error) {
|
||||||
|
errorHandler(error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
errorHandler(error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
handleTestClicked = () => {
|
||||||
|
this.props.setInstallTestActive(true);
|
||||||
|
this.grabLatestRelease(Constants.LINUX_SELECTABLE_PLATFORMS[this.state.Selected])
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<Box dxDark dxStyle={{padding: '8px'}}>
|
||||||
|
<h1 className={'SAPHeading'}>Select Linux Platform</h1>
|
||||||
|
<div className={'SAPContent'}>
|
||||||
|
<p>Repertory was unable to detect your Linux distribution. Please select one of the following and click <b>Test</b> to continue:</p>
|
||||||
|
</div>
|
||||||
|
<div className={'SAPActions'}>
|
||||||
|
<DropDown changed={e => this.setState({
|
||||||
|
...this.state,
|
||||||
|
Selected: e.target.value
|
||||||
|
})}
|
||||||
|
disabled={this.props.InstallTestActive}
|
||||||
|
items={Constants.LINUX_SELECTABLE_PLATFORMS}
|
||||||
|
selected={this.state.Selected}/>
|
||||||
|
<Button clicked={this.handleTestClicked}
|
||||||
|
disabled={this.props.InstallTestActive}>Test</Button>
|
||||||
|
</div>
|
||||||
|
</Box>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const mapStateToProps = state => {
|
||||||
|
return {
|
||||||
|
InstallTestActive: state.install.InstallTestActive,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const mapDispatchToProps = dispatch => {
|
||||||
|
return {
|
||||||
|
downloadItem: (name, type, urls, isWinFSP, testVersion, appPlatform) => dispatch(downloadItem(name, type, urls, isWinFSP, testVersion, appPlatform)),
|
||||||
|
notifyError: msg => dispatch(notifyError(msg)),
|
||||||
|
setInstallTestActive: active => dispatch(setInstallTestActive(active)),
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(SelectAppPlatform);
|
||||||
@@ -4,9 +4,17 @@ import {getIPCRenderer} from '../../utils';
|
|||||||
|
|
||||||
const ipcRenderer = getIPCRenderer();
|
const ipcRenderer = getIPCRenderer();
|
||||||
|
|
||||||
export const displaySelectAppPlatform = createAction('common/displaySelectAppPlatform');
|
export const displaySelectAppPlatform = display => {
|
||||||
|
return dispatch => {
|
||||||
|
if (display) {
|
||||||
|
dispatch(showWindow());
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch(setDisplaySelectAppPlatform(display));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export const notifyRebootRequired = createAction('common/notifyRebootRequired');
|
export const notifyRebootRequired = createAction('common/notifyRebootRequired');
|
||||||
export const setAllowMount = createAction('common/setAllowMount');
|
|
||||||
|
|
||||||
export const rebootSystem = () => {
|
export const rebootSystem = () => {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
@@ -17,7 +25,19 @@ export const rebootSystem = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const setAllowMount = createAction('common/setAllowMount');
|
||||||
export const setApplicationReady = createAction('common/setApplicationReady');
|
export const setApplicationReady = createAction('common/setApplicationReady');
|
||||||
|
|
||||||
|
export const SET_DISPLAY_SELECT_APPPLATFORM = 'common/displaySelectAppPlatform';
|
||||||
|
export const setDisplaySelectAppPlatform = display => {
|
||||||
|
return {
|
||||||
|
type: SET_DISPLAY_SELECT_APPPLATFORM,
|
||||||
|
payload: display,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export const setLinuxAppPlatform = createAction('common/setLinuxAppPlatform');
|
||||||
|
|
||||||
export const setRebootRequired = () => {
|
export const setRebootRequired = () => {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
dispatch(showWindow());
|
dispatch(showWindow());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {createAction} from 'redux-starter-kit';
|
|||||||
import {getIPCRenderer} from '../../utils';
|
import {getIPCRenderer} from '../../utils';
|
||||||
import {notifyError} from './error_actions';
|
import {notifyError} from './error_actions';
|
||||||
import {
|
import {
|
||||||
|
installAndTestRelease,
|
||||||
installDependency,
|
installDependency,
|
||||||
installRelease,
|
installRelease,
|
||||||
installUpgrade
|
installUpgrade
|
||||||
@@ -25,7 +26,7 @@ export const setDownloadBegin = (name, type, url) => {
|
|||||||
export const setDownloadEnd = createAction('download/setDownloadEnd');
|
export const setDownloadEnd = createAction('download/setDownloadEnd');
|
||||||
export const setDownloadProgress = createAction('download/setDownloadProgress');
|
export const setDownloadProgress = createAction('download/setDownloadProgress');
|
||||||
|
|
||||||
export const downloadItem = (name, type, urls, isWinFSP) => {
|
export const downloadItem = (name, type, urls, isWinFSP, testVersion, appPlatform) => {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
if (!Array.isArray(urls)) {
|
if (!Array.isArray(urls)) {
|
||||||
urls = [urls];
|
urls = [urls];
|
||||||
@@ -40,6 +41,9 @@ export const downloadItem = (name, type, urls, isWinFSP) => {
|
|||||||
case Constants.INSTALL_TYPES.Release:
|
case Constants.INSTALL_TYPES.Release:
|
||||||
dispatch(installRelease(result.Destination));
|
dispatch(installRelease(result.Destination));
|
||||||
break;
|
break;
|
||||||
|
case Constants.INSTALL_TYPES.TestRelease:
|
||||||
|
dispatch(installAndTestRelease(result.Destination, testVersion, appPlatform));
|
||||||
|
break;
|
||||||
case Constants.INSTALL_TYPES.Upgrade:
|
case Constants.INSTALL_TYPES.Upgrade:
|
||||||
//const info = this.props.LocationsLookup[this.props.AppPlatform][this.props.VersionLookup[this.props.AppPlatform][0]];
|
//const info = this.props.LocationsLookup[this.props.AppPlatform][this.props.VersionLookup[this.props.AppPlatform][0]];
|
||||||
const sha256 = null;//info.sha256;
|
const sha256 = null;//info.sha256;
|
||||||
|
|||||||
@@ -7,13 +7,16 @@ import {
|
|||||||
import {notifyError} from './error_actions';
|
import {notifyError} from './error_actions';
|
||||||
import {setAllowDownload} from './download_actions';
|
import {setAllowDownload} from './download_actions';
|
||||||
import {
|
import {
|
||||||
|
loadReleases,
|
||||||
setActiveRelease,
|
setActiveRelease,
|
||||||
setInstalledVersion,
|
setInstalledVersion,
|
||||||
setReleaseUpgradeAvailable
|
setReleaseUpgradeAvailable
|
||||||
} from './release_version_actions';
|
} from './release_version_actions';
|
||||||
import {
|
import {
|
||||||
|
displaySelectAppPlatform,
|
||||||
setAllowMount,
|
setAllowMount,
|
||||||
setApplicationReady,
|
setApplicationReady,
|
||||||
|
setLinuxAppPlatform,
|
||||||
setRebootRequired,
|
setRebootRequired,
|
||||||
showWindow,
|
showWindow,
|
||||||
shutdownApplication
|
shutdownApplication
|
||||||
@@ -134,6 +137,42 @@ export const installDependency = (source, url, isWinFSP) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const installAndTestRelease = (source, version, appPlatform) => {
|
||||||
|
return (dispatch, getState) => {
|
||||||
|
if (ipcRenderer && !getState().install.InstallTestActive) {
|
||||||
|
const extractReleaseComplete = (event, arg) => {
|
||||||
|
ipcRenderer.send(Constants.IPC_Delete_File, {
|
||||||
|
FilePath: source,
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcRenderer.once(Constants.IPC_Test_Release_Reply, (event, arg) => {
|
||||||
|
if (arg.data.Success) {
|
||||||
|
ipcRenderer.sendSync(Constants.IPC_Set_Linux_AppPlatform, {
|
||||||
|
AppPlatform: appPlatform,
|
||||||
|
});
|
||||||
|
dispatch(setLinuxAppPlatform(appPlatform));
|
||||||
|
dispatch(setInstallTestActive(false));
|
||||||
|
dispatch(displaySelectAppPlatform(false));
|
||||||
|
dispatch(loadReleases());
|
||||||
|
} else {
|
||||||
|
dispatch(notifyError(arg.data.Error));
|
||||||
|
dispatch(setInstallTestActive(false));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ipcRenderer.send(Constants.IPC_Test_Release, {
|
||||||
|
Version: version,
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
ipcRenderer.once(Constants.IPC_Extract_Release_Complete, extractReleaseComplete);
|
||||||
|
ipcRenderer.send(Constants.IPC_Extract_Release, {
|
||||||
|
Source: source,
|
||||||
|
Version: version,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export const installRelease = source => {
|
export const installRelease = source => {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
if (ipcRenderer && !getState().install.InstallActive) {
|
if (ipcRenderer && !getState().install.InstallActive) {
|
||||||
@@ -193,5 +232,6 @@ export const installUpgrade = (source, sha256, signature, skipVerification) => {
|
|||||||
|
|
||||||
export const setDismissDependencies = createAction('install/setDismissDependencies');
|
export const setDismissDependencies = createAction('install/setDismissDependencies');
|
||||||
export const setInstallActive = createAction('install/setInstallActive');
|
export const setInstallActive = createAction('install/setInstallActive');
|
||||||
|
export const setInstallTestActive = createAction('install/setInstallTestActive');
|
||||||
export const setInstallComplete = createAction('install/setInstallComplete');
|
export const setInstallComplete = createAction('install/setInstallComplete');
|
||||||
export const setMissingDependencies = createAction('install/setMissingDependencies');
|
export const setMissingDependencies = createAction('install/setMissingDependencies');
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import {createReducer} from 'redux-starter-kit';
|
import {createReducer} from 'redux-starter-kit';
|
||||||
import {
|
import {
|
||||||
displaySelectAppPlatform,
|
|
||||||
notifyRebootRequired,
|
notifyRebootRequired,
|
||||||
setAllowMount,
|
setAllowMount,
|
||||||
setApplicationReady,
|
setApplicationReady,
|
||||||
|
setLinuxAppPlatform,
|
||||||
|
SET_DISPLAY_SELECT_APPPLATFORM
|
||||||
} from '../actions/common_actions';
|
} from '../actions/common_actions';
|
||||||
|
|
||||||
export const createCommonReducer = (platform, appPlatform, version) => {
|
export const createCommonReducer = (platform, appPlatform, version) => {
|
||||||
@@ -16,7 +17,7 @@ export const createCommonReducer = (platform, appPlatform, version) => {
|
|||||||
RebootRequired: false,
|
RebootRequired: false,
|
||||||
Version: version,
|
Version: version,
|
||||||
}, {
|
}, {
|
||||||
[displaySelectAppPlatform]: (state, action) => {
|
[SET_DISPLAY_SELECT_APPPLATFORM]: (state, action) => {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
DisplaySelectAppPlatform: action.payload,
|
DisplaySelectAppPlatform: action.payload,
|
||||||
@@ -34,6 +35,12 @@ export const createCommonReducer = (platform, appPlatform, version) => {
|
|||||||
AppReady: action.payload,
|
AppReady: action.payload,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
[setLinuxAppPlatform]: (state, action) => {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
AppPlatform: action.payload,
|
||||||
|
}
|
||||||
|
},
|
||||||
[notifyRebootRequired]: (state, action) => {
|
[notifyRebootRequired]: (state, action) => {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {
|
|||||||
setDismissDependencies,
|
setDismissDependencies,
|
||||||
setInstallActive,
|
setInstallActive,
|
||||||
setInstallComplete,
|
setInstallComplete,
|
||||||
|
setInstallTestActive,
|
||||||
setMissingDependencies
|
setMissingDependencies
|
||||||
} from '../actions/install_actions';
|
} from '../actions/install_actions';
|
||||||
|
|
||||||
@@ -10,6 +11,7 @@ export const installReducer = createReducer({
|
|||||||
DismissDependencies: false,
|
DismissDependencies: false,
|
||||||
InstallActive: false,
|
InstallActive: false,
|
||||||
InstallResult: null,
|
InstallResult: null,
|
||||||
|
InstallTestActive: false,
|
||||||
InstallType: null,
|
InstallType: null,
|
||||||
MissingDependencies: [],
|
MissingDependencies: [],
|
||||||
}, {
|
}, {
|
||||||
@@ -35,6 +37,12 @@ export const installReducer = createReducer({
|
|||||||
InstallType: null,
|
InstallType: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
[setInstallTestActive]: (state, action) => {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
InstallTestActive: action.payload,
|
||||||
|
}
|
||||||
|
},
|
||||||
[setMissingDependencies]: (state, action) => {
|
[setMissingDependencies]: (state, action) => {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|||||||
Reference in New Issue
Block a user