+ client: Refactor DHCP settings
This commit is contained in:
committed by
Simon Zolin
parent
c9f58ce4a7
commit
1d35d73fc5
@@ -1,7 +1,6 @@
|
||||
import { Trans } from 'react-i18next';
|
||||
import React from 'react';
|
||||
import i18next from 'i18next';
|
||||
import {
|
||||
MAX_PORT,
|
||||
R_CIDR,
|
||||
R_CIDR_IPV6,
|
||||
R_HOST,
|
||||
@@ -9,10 +8,10 @@ import {
|
||||
R_IPV6,
|
||||
R_MAC,
|
||||
R_URL_REQUIRES_PROTOCOL,
|
||||
STANDARD_WEB_PORT,
|
||||
UNSAFE_PORTS,
|
||||
} from './constants';
|
||||
import { isValidAbsolutePath } from './form';
|
||||
|
||||
import { getLastIpv4Octet, isValidAbsolutePath } from './form';
|
||||
|
||||
// Validation functions
|
||||
// https://redux-form.com/8.3.0/examples/fieldlevelvalidation/
|
||||
@@ -26,7 +25,7 @@ export const validateRequiredValue = (value) => {
|
||||
if (formattedValue || formattedValue === 0 || (formattedValue && formattedValue.length !== 0)) {
|
||||
return undefined;
|
||||
}
|
||||
return <Trans>form_error_required</Trans>;
|
||||
return 'form_error_required';
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -35,11 +34,28 @@ export const validateRequiredValue = (value) => {
|
||||
*/
|
||||
export const getMaxValueValidator = (maximum) => (value) => {
|
||||
if (value && value > maximum) {
|
||||
i18next.t('value_not_larger_than', { maximum });
|
||||
return i18next.t('value_not_larger_than', { maximum });
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @returns {undefined|string}
|
||||
*/
|
||||
export const validateIpv4RangeEnd = (_, allValues) => {
|
||||
if (!allValues || !allValues.v4 || !allValues.v4.range_end || !allValues.v4.range_start) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const { range_end, range_start } = allValues.v4;
|
||||
|
||||
if (getLastIpv4Octet(range_end) <= getLastIpv4Octet(range_start)) {
|
||||
return 'range_end_error';
|
||||
}
|
||||
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
@@ -47,7 +63,7 @@ export const getMaxValueValidator = (maximum) => (value) => {
|
||||
*/
|
||||
export const validateIpv4 = (value) => {
|
||||
if (value && !R_IPV4.test(value)) {
|
||||
return <Trans>form_error_ip4_format</Trans>;
|
||||
return 'form_error_ip4_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -63,12 +79,12 @@ export const validateClientId = (value) => {
|
||||
const formattedValue = value ? value.trim() : value;
|
||||
if (formattedValue && !(
|
||||
R_IPV4.test(formattedValue)
|
||||
|| R_IPV6.test(formattedValue)
|
||||
|| R_MAC.test(formattedValue)
|
||||
|| R_CIDR.test(formattedValue)
|
||||
|| R_CIDR_IPV6.test(formattedValue)
|
||||
|| R_IPV6.test(formattedValue)
|
||||
|| R_MAC.test(formattedValue)
|
||||
|| R_CIDR.test(formattedValue)
|
||||
|| R_CIDR_IPV6.test(formattedValue)
|
||||
)) {
|
||||
return <Trans>form_error_client_id_format</Trans>;
|
||||
return 'form_error_client_id_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -79,7 +95,7 @@ export const validateClientId = (value) => {
|
||||
*/
|
||||
export const validateIpv6 = (value) => {
|
||||
if (value && !R_IPV6.test(value)) {
|
||||
return <Trans>form_error_ip6_format</Trans>;
|
||||
return 'form_error_ip6_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -90,7 +106,7 @@ export const validateIpv6 = (value) => {
|
||||
*/
|
||||
export const validateIp = (value) => {
|
||||
if (value && !R_IPV4.test(value) && !R_IPV6.test(value)) {
|
||||
return <Trans>form_error_ip_format</Trans>;
|
||||
return 'form_error_ip_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -101,76 +117,76 @@ export const validateIp = (value) => {
|
||||
*/
|
||||
export const validateMac = (value) => {
|
||||
if (value && !R_MAC.test(value)) {
|
||||
return <Trans>form_error_mac_format</Trans>;
|
||||
return 'form_error_mac_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @param value {number}
|
||||
* @returns {undefined|string}
|
||||
*/
|
||||
export const validateIsPositiveValue = (value) => {
|
||||
if ((value || value === 0) && value <= 0) {
|
||||
return <Trans>form_error_positive</Trans>;
|
||||
return 'form_error_positive';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @param value {number}
|
||||
* @returns {boolean|*}
|
||||
*/
|
||||
export const validateBiggerOrEqualZeroValue = (value) => {
|
||||
if (value < 0) {
|
||||
return <Trans>form_error_negative</Trans>;
|
||||
return 'form_error_negative';
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @param value {number}
|
||||
* @returns {undefined|string}
|
||||
*/
|
||||
export const validatePort = (value) => {
|
||||
if ((value || value === 0) && (value < 80 || value > 65535)) {
|
||||
return <Trans>form_error_port_range</Trans>;
|
||||
if ((value || value === 0) && (value < STANDARD_WEB_PORT || value > MAX_PORT)) {
|
||||
return 'form_error_port_range';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @param value {number}
|
||||
* @returns {undefined|string}
|
||||
*/
|
||||
export const validateInstallPort = (value) => {
|
||||
if (value < 1 || value > 65535) {
|
||||
return <Trans>form_error_port</Trans>;
|
||||
if (value < 1 || value > MAX_PORT) {
|
||||
return 'form_error_port';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @param value {number}
|
||||
* @returns {undefined|string}
|
||||
*/
|
||||
export const validatePortTLS = (value) => {
|
||||
if (value === 0) {
|
||||
return undefined;
|
||||
}
|
||||
if (value && (value < 80 || value > 65535)) {
|
||||
return <Trans>form_error_port_range</Trans>;
|
||||
if (value && (value < STANDARD_WEB_PORT || value > MAX_PORT)) {
|
||||
return 'form_error_port_range';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param value {string}
|
||||
* @param value {number}
|
||||
* @returns {undefined|string}
|
||||
*/
|
||||
export const validateIsSafePort = (value) => {
|
||||
if (UNSAFE_PORTS.includes(value)) {
|
||||
return <Trans>form_error_port_unsafe</Trans>;
|
||||
return 'form_error_port_unsafe';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -181,7 +197,7 @@ export const validateIsSafePort = (value) => {
|
||||
*/
|
||||
export const validateDomain = (value) => {
|
||||
if (value && !R_HOST.test(value)) {
|
||||
return <Trans>form_error_domain_format</Trans>;
|
||||
return 'form_error_domain_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -192,7 +208,7 @@ export const validateDomain = (value) => {
|
||||
*/
|
||||
export const validateAnswer = (value) => {
|
||||
if (value && (!R_IPV4.test(value) && !R_IPV6.test(value) && !R_HOST.test(value))) {
|
||||
return <Trans>form_error_answer_format</Trans>;
|
||||
return 'form_error_answer_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
@@ -203,7 +219,7 @@ export const validateAnswer = (value) => {
|
||||
*/
|
||||
export const validatePath = (value) => {
|
||||
if (value && !isValidAbsolutePath(value) && !R_URL_REQUIRES_PROTOCOL.test(value)) {
|
||||
return <Trans>form_error_url_or_path_format</Trans>;
|
||||
return 'form_error_url_or_path_format';
|
||||
}
|
||||
return undefined;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user