foris 5.2.0-beta.01eeb06f → 5.2.0-beta.0a143e7d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bootstrap/Select.js +5 -11
- package/common/WiFiSettings/WiFiForm.js +18 -11
- package/common/WiFiSettings/constants.js +5 -1
- package/foris-5.2.0.tgz +0 -0
- package/index.js +1 -0
- package/package.json +1 -1
- package/utils/validations.js +6 -2
package/bootstrap/Select.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C) 2019-
|
|
2
|
+
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
|
3
3
|
*
|
|
4
4
|
* This is free software, licensed under the GNU General Public License v3.
|
|
5
5
|
* See /LICENSE for more information.
|
|
@@ -18,20 +18,14 @@ Select.propTypes = {
|
|
|
18
18
|
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
|
|
19
19
|
/** Help text message. */
|
|
20
20
|
helpText: PropTypes.string,
|
|
21
|
-
/** Turns on/off alphabetical ordering of the Select options. */
|
|
22
|
-
customOrder: PropTypes.bool,
|
|
23
21
|
};
|
|
24
22
|
|
|
25
|
-
export function Select({ label, choices, helpText,
|
|
23
|
+
export function Select({ label, choices, helpText, ...props }) {
|
|
26
24
|
const uid = useUID();
|
|
27
25
|
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
const options = keys.map((key) => (
|
|
33
|
-
<option key={key} value={key}>
|
|
34
|
-
{choices[key]}
|
|
26
|
+
const options = Object.keys(choices).map((choice) => (
|
|
27
|
+
<option key={choice} value={choice}>
|
|
28
|
+
{choices[choice]}
|
|
35
29
|
</option>
|
|
36
30
|
));
|
|
37
31
|
|
|
@@ -64,6 +64,7 @@ DeviceForm.propTypes = {
|
|
|
64
64
|
channel: PropTypes.string.isRequired,
|
|
65
65
|
guest_wifi: PropTypes.object.isRequired,
|
|
66
66
|
encryption: PropTypes.string.isRequired,
|
|
67
|
+
available_bands: PropTypes.array.isRequired,
|
|
67
68
|
}),
|
|
68
69
|
formErrors: PropTypes.object.isRequired,
|
|
69
70
|
setFormValue: PropTypes.func.isRequired,
|
|
@@ -87,6 +88,7 @@ function DeviceForm({
|
|
|
87
88
|
...props
|
|
88
89
|
}) {
|
|
89
90
|
const deviceID = formData.id;
|
|
91
|
+
const bnds = formData.available_bands;
|
|
90
92
|
return (
|
|
91
93
|
<>
|
|
92
94
|
<Switch
|
|
@@ -159,18 +161,24 @@ function DeviceForm({
|
|
|
159
161
|
value={formData.hwmode}
|
|
160
162
|
helpText={HELP_TEXTS.hwmode}
|
|
161
163
|
inline
|
|
162
|
-
onChange={setFormValue((value) =>
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
164
|
+
onChange={setFormValue((value) => {
|
|
165
|
+
// Get the last item in an array of available HT modes
|
|
166
|
+
const [best2] = bnds[0].available_htmodes.slice(-1);
|
|
167
|
+
const [best5] = bnds[1].available_htmodes.slice(-1);
|
|
168
|
+
return {
|
|
169
|
+
devices: {
|
|
170
|
+
[deviceIndex]: {
|
|
171
|
+
hwmode: { $set: value },
|
|
172
|
+
channel: { $set: "0" },
|
|
173
|
+
htmode: {
|
|
174
|
+
$set:
|
|
175
|
+
// Set HT mode depending on checked frequency
|
|
176
|
+
value === "11a" ? best5 : best2,
|
|
177
|
+
},
|
|
170
178
|
},
|
|
171
179
|
},
|
|
172
|
-
}
|
|
173
|
-
})
|
|
180
|
+
};
|
|
181
|
+
})}
|
|
174
182
|
{...props}
|
|
175
183
|
/>
|
|
176
184
|
|
|
@@ -209,7 +217,6 @@ function DeviceForm({
|
|
|
209
217
|
[deviceIndex]: { encryption: { $set: value } },
|
|
210
218
|
},
|
|
211
219
|
}))}
|
|
212
|
-
customOrder
|
|
213
220
|
{...props}
|
|
214
221
|
/>
|
|
215
222
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C) 2019-
|
|
2
|
+
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
|
3
3
|
*
|
|
4
4
|
* This is free software, licensed under the GNU General Public License v3.
|
|
5
5
|
* See /LICENSE for more information.
|
|
@@ -13,6 +13,10 @@ export const HTMODES = {
|
|
|
13
13
|
VHT40: _("802.11ac - 40 MHz wide channel"),
|
|
14
14
|
VHT80: _("802.11ac - 80 MHz wide channel"),
|
|
15
15
|
VHT160: _("802.11ac - 160 MHz wide channel"),
|
|
16
|
+
HE20: _("802.11ax - 20 MHz wide channel"),
|
|
17
|
+
HE40: _("802.11ax - 40 MHz wide channel"),
|
|
18
|
+
HE80: _("802.11ax - 80 MHz wide channel"),
|
|
19
|
+
HE160: _("802.11ax - 160 MHz wide channel"),
|
|
16
20
|
};
|
|
17
21
|
export const HWMODES = {
|
|
18
22
|
"11g": "2.4",
|
package/foris-5.2.0.tgz
CHANGED
|
Binary file
|
package/index.js
CHANGED
package/package.json
CHANGED
package/utils/validations.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (C) 2019 CZ.NIC z.s.p.o. (
|
|
2
|
+
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
|
3
3
|
*
|
|
4
4
|
* This is free software, licensed under the GNU General Public License v3.
|
|
5
5
|
* See /LICENSE for more information.
|
|
@@ -14,6 +14,7 @@ export const ERROR_MESSAGES = {
|
|
|
14
14
|
IPv6: _("This is not a valid IPv6 address."),
|
|
15
15
|
IPv6Prefix: _("This is not a valid IPv6 prefix."),
|
|
16
16
|
domain: _("This is not a valid domain name."),
|
|
17
|
+
hostname: _("This is not a valid hostname."),
|
|
17
18
|
DUID: _("This is not a valid DUID."),
|
|
18
19
|
MAC: _("This is not a valid MAC address."),
|
|
19
20
|
MultipleEmails: _("Doesn't contain a list of emails separated by commas."),
|
|
@@ -23,7 +24,8 @@ const REs = {
|
|
|
23
24
|
IPv4: /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
|
|
24
25
|
IPv6: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,
|
|
25
26
|
IPv6Prefix: /^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))$/,
|
|
26
|
-
domain: /^[
|
|
27
|
+
domain: /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/,
|
|
28
|
+
hostname: /^[a-z\d]([a-z\d-]{0,61}[a-z\d])?(\.[a-z\d]([a-z\d-]{0,61}[a-z\d])?)*$/i,
|
|
27
29
|
DUID: /^([0-9a-fA-F]{2}){4}([0-9a-fA-F]{2})*$/,
|
|
28
30
|
MAC: /^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/,
|
|
29
31
|
MultipleEmails: /^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ *)( *, *[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ *)*$/,
|
|
@@ -40,6 +42,7 @@ const validateIPv4Address = createValidator("IPv4");
|
|
|
40
42
|
const validateIPv6Address = createValidator("IPv6");
|
|
41
43
|
const validateIPv6Prefix = createValidator("IPv6Prefix");
|
|
42
44
|
const validateDomain = createValidator("domain");
|
|
45
|
+
const validateHostname = createValidator("hostname");
|
|
43
46
|
const validateDUID = createValidator("DUID");
|
|
44
47
|
const validateMAC = createValidator("MAC");
|
|
45
48
|
const validateMultipleEmails = createValidator("MultipleEmails");
|
|
@@ -49,6 +52,7 @@ export {
|
|
|
49
52
|
validateIPv6Address,
|
|
50
53
|
validateIPv6Prefix,
|
|
51
54
|
validateDomain,
|
|
55
|
+
validateHostname,
|
|
52
56
|
validateDUID,
|
|
53
57
|
validateMAC,
|
|
54
58
|
validateMultipleEmails,
|