Add button to the dashboard page for enable/disable filtering

Closes #333
This commit is contained in:
Ildar Kamalov
2018-09-26 17:12:31 +03:00
parent 381b96a4b1
commit 2cf22898dd
3 changed files with 69 additions and 1 deletions

View File

@@ -98,6 +98,46 @@ export const initSettings = settingsList => async (dispatch) => {
}
};
export const getFilteringRequest = createAction('GET_FILTERING_REQUEST');
export const getFilteringFailure = createAction('GET_FILTERING_FAILURE');
export const getFilteringSuccess = createAction('GET_FILTERING_SUCCESS');
export const getFiltering = () => async (dispatch) => {
dispatch(getFilteringRequest());
try {
const filteringStatus = await apiClient.getFilteringStatus();
dispatch(getFilteringSuccess(filteringStatus.enabled));
} catch (error) {
dispatch(addErrorToast({ error }));
dispatch(getFilteringFailure());
}
};
export const toggleFilteringRequest = createAction('TOGGLE_FILTERING_REQUEST');
export const toggleFilteringFailure = createAction('TOGGLE_FILTERING_FAILURE');
export const toggleFilteringSuccess = createAction('TOGGLE_FILTERING_SUCCESS');
export const toggleFiltering = status => async (dispatch) => {
dispatch(toggleFilteringRequest());
let successMessage = '';
try {
if (status) {
successMessage = 'Disabled filtering';
await apiClient.disableFiltering();
} else {
successMessage = 'Enabled filtering';
await apiClient.enableFiltering();
}
dispatch(addSuccessToast(successMessage));
dispatch(toggleFilteringSuccess());
} catch (error) {
dispatch(addErrorToast({ error }));
dispatch(toggleFilteringFailure());
}
};
export const dnsStatusRequest = createAction('DNS_STATUS_REQUEST');
export const dnsStatusFailure = createAction('DNS_STATUS_FAILURE');
export const dnsStatusSuccess = createAction('DNS_STATUS_SUCCESS');