+ client: Refactor DHCP settings
This commit is contained in:
committed by
Simon Zolin
parent
c9f58ce4a7
commit
1d35d73fc5
175
client/src/reducers/dashboard.js
Normal file
175
client/src/reducers/dashboard.js
Normal file
@@ -0,0 +1,175 @@
|
||||
import { handleActions } from 'redux-actions';
|
||||
import * as actions from '../actions';
|
||||
import { areEqualVersions } from '../helpers/version';
|
||||
import { STANDARD_DNS_PORT, STANDARD_WEB_PORT } from '../helpers/constants';
|
||||
|
||||
const dashboard = handleActions(
|
||||
{
|
||||
[actions.setDnsRunningStatus]: (state, { payload }) => (
|
||||
{
|
||||
...state,
|
||||
isCoreRunning: payload,
|
||||
}
|
||||
),
|
||||
[actions.dnsStatusRequest]: (state) => ({
|
||||
...state,
|
||||
processing: true,
|
||||
}),
|
||||
[actions.dnsStatusFailure]: (state) => ({
|
||||
...state,
|
||||
processing: false,
|
||||
}),
|
||||
[actions.dnsStatusSuccess]: (state, { payload }) => {
|
||||
const {
|
||||
version,
|
||||
dns_port: dnsPort,
|
||||
dns_addresses: dnsAddresses,
|
||||
protection_enabled: protectionEnabled,
|
||||
http_port: httpPort,
|
||||
language,
|
||||
} = payload;
|
||||
const newState = {
|
||||
...state,
|
||||
isCoreRunning: true,
|
||||
processing: false,
|
||||
dnsVersion: version,
|
||||
dnsPort,
|
||||
dnsAddresses,
|
||||
protectionEnabled,
|
||||
language,
|
||||
httpPort,
|
||||
};
|
||||
return newState;
|
||||
},
|
||||
|
||||
[actions.getVersionRequest]: (state) => ({
|
||||
...state,
|
||||
processingVersion: true,
|
||||
}),
|
||||
[actions.getVersionFailure]: (state) => ({
|
||||
...state,
|
||||
processingVersion: false,
|
||||
}),
|
||||
[actions.getVersionSuccess]: (state, { payload }) => {
|
||||
const currentVersion = state.dnsVersion === 'undefined' ? 0 : state.dnsVersion;
|
||||
|
||||
if (!payload.disabled && !areEqualVersions(currentVersion, payload.new_version)) {
|
||||
const {
|
||||
announcement_url: announcementUrl,
|
||||
new_version: newVersion,
|
||||
can_autoupdate: canAutoUpdate,
|
||||
} = payload;
|
||||
|
||||
const newState = {
|
||||
...state,
|
||||
announcementUrl,
|
||||
newVersion,
|
||||
canAutoUpdate,
|
||||
isUpdateAvailable: true,
|
||||
processingVersion: false,
|
||||
checkUpdateFlag: !payload.disabled,
|
||||
};
|
||||
return newState;
|
||||
}
|
||||
|
||||
return {
|
||||
...state,
|
||||
processingVersion: false,
|
||||
checkUpdateFlag: !payload.disabled,
|
||||
};
|
||||
},
|
||||
|
||||
[actions.getUpdateRequest]: (state) => ({
|
||||
...state,
|
||||
processingUpdate: true,
|
||||
}),
|
||||
[actions.getUpdateFailure]: (state) => ({
|
||||
...state,
|
||||
processingUpdate: false,
|
||||
}),
|
||||
[actions.getUpdateSuccess]: (state) => {
|
||||
const newState = {
|
||||
...state,
|
||||
processingUpdate: false,
|
||||
};
|
||||
return newState;
|
||||
},
|
||||
|
||||
[actions.toggleProtectionRequest]: (state) => ({
|
||||
...state,
|
||||
processingProtection: true,
|
||||
}),
|
||||
[actions.toggleProtectionFailure]: (state) => ({
|
||||
...state,
|
||||
processingProtection: false,
|
||||
}),
|
||||
[actions.toggleProtectionSuccess]: (state) => {
|
||||
const newState = {
|
||||
...state,
|
||||
protectionEnabled: !state.protectionEnabled,
|
||||
processingProtection: false,
|
||||
};
|
||||
return newState;
|
||||
},
|
||||
|
||||
[actions.getLanguageSuccess]: (state, { payload }) => {
|
||||
const newState = {
|
||||
...state,
|
||||
language: payload,
|
||||
};
|
||||
return newState;
|
||||
},
|
||||
|
||||
[actions.getClientsRequest]: (state) => ({
|
||||
...state,
|
||||
processingClients: true,
|
||||
}),
|
||||
[actions.getClientsFailure]: (state) => ({
|
||||
...state,
|
||||
processingClients: false,
|
||||
}),
|
||||
[actions.getClientsSuccess]: (state, { payload }) => {
|
||||
const newState = {
|
||||
...state,
|
||||
...payload,
|
||||
processingClients: false,
|
||||
};
|
||||
return newState;
|
||||
},
|
||||
|
||||
[actions.getProfileRequest]: (state) => ({
|
||||
...state,
|
||||
processingProfile: true,
|
||||
}),
|
||||
[actions.getProfileFailure]: (state) => ({
|
||||
...state,
|
||||
processingProfile: false,
|
||||
}),
|
||||
[actions.getProfileSuccess]: (state, { payload }) => ({
|
||||
...state,
|
||||
name: payload.name,
|
||||
processingProfile: false,
|
||||
}),
|
||||
},
|
||||
{
|
||||
processing: true,
|
||||
isCoreRunning: true,
|
||||
processingVersion: true,
|
||||
processingClients: true,
|
||||
processingUpdate: false,
|
||||
processingProfile: true,
|
||||
protectionEnabled: false,
|
||||
processingProtection: false,
|
||||
httpPort: STANDARD_WEB_PORT,
|
||||
dnsPort: STANDARD_DNS_PORT,
|
||||
dnsAddresses: [],
|
||||
dnsVersion: '',
|
||||
clients: [],
|
||||
autoClients: [],
|
||||
supportedTags: [],
|
||||
name: '',
|
||||
checkUpdateFlag: false,
|
||||
},
|
||||
);
|
||||
|
||||
export default dashboard;
|
||||
Reference in New Issue
Block a user