diff --git a/plist b/plist
index 90f15c8d6..14270a4b5 100644
--- a/plist
+++ b/plist
@@ -526,6 +526,7 @@
/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ConfigdActionsField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ContainerField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/CountryField.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/DescriptionField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/EmailField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/HostnameField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/IntegerField.php
diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/DescriptionField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/DescriptionField.php
new file mode 100644
index 000000000..fd1a55cd1
--- /dev/null
+++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/DescriptionField.php
@@ -0,0 +1,63 @@
+internalValue != null) {
+ $validators[] = new CallbackValidator(["callback" => function ($data) {
+ if (!preg_match('/^(.){1,255}$/', $data)) {
+ return [$this->getValidationMessage()];
+ }
+ return [];
+ }
+ ]);
+ }
+ return $validators;
+ }
+}
diff --git a/src/opnsense/mvc/app/models/OPNsense/CaptivePortal/CaptivePortal.xml b/src/opnsense/mvc/app/models/OPNsense/CaptivePortal/CaptivePortal.xml
index 83e233da1..ff420c563 100644
--- a/src/opnsense/mvc/app/models/OPNsense/CaptivePortal/CaptivePortal.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/CaptivePortal/CaptivePortal.xml
@@ -89,10 +89,8 @@
Related template not found
-
+
Y
- /^([\t\n\v\f\r 0-9a-zA-Z.,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Description should be a string between 1 and 255 characters
diff --git a/src/opnsense/mvc/app/models/OPNsense/Cron/Cron.xml b/src/opnsense/mvc/app/models/OPNsense/Cron/Cron.xml
index 974a3e75f..bddb6eb2b 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Cron/Cron.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Cron/Cron.xml
@@ -60,9 +60,7 @@
/^(.){1,255}$/
Input too long.
-
- /^([\t\n\v\f\r 0-9a-zA-Z.,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Enter a description.
+
Y
diff --git a/src/opnsense/mvc/app/models/OPNsense/Diagnostics/PacketCapture.xml b/src/opnsense/mvc/app/models/OPNsense/Diagnostics/PacketCapture.xml
index b2caa5708..3633a0188 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Diagnostics/PacketCapture.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Diagnostics/PacketCapture.xml
@@ -9,10 +9,7 @@
Y
Y
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
0
Y
diff --git a/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Ping.xml b/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Ping.xml
index a4117c5c1..4f0f89cd5 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Ping.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Ping.xml
@@ -25,10 +25,7 @@
65535
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml b/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml
index cbf994f16..dea4afe0f 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml
@@ -78,10 +78,7 @@
Y
Related category not found.
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
index 003e102f1..8c3e96897 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
@@ -107,10 +107,7 @@
Y
Related category not found.
-
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
- Description should be a string between 1 and 255 characters
-
+
@@ -198,10 +195,7 @@
Y
Related category not found.
-
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
- Description should be a string between 1 and 255 characters
-
+
@@ -250,10 +244,7 @@
Y
Related category not found.
-
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
- Description should be a string between 1 and 255 characters
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Group.xml b/src/opnsense/mvc/app/models/OPNsense/Firewall/Group.xml
index 78b0dc5f9..f6711bdb3 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Group.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Group.xml
@@ -25,10 +25,7 @@
Y
0
-
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
- Description should be a string between 1 and 255 characters
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/IDS/IDS.xml b/src/opnsense/mvc/app/models/OPNsense/IDS/IDS.xml
index 64dd84bf8..1a6f5ddbe 100644
--- a/src/opnsense/mvc/app/models/OPNsense/IDS/IDS.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/IDS/IDS.xml
@@ -70,10 +70,7 @@
Disable
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
@@ -89,10 +86,8 @@
/^([0-9a-fA-F:]){59,59}$/u
A SSL fingerprint should be a 59 character long hex value.
-
+
Y
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Description should be a string between 1 and 255 characters.
Y
diff --git a/src/opnsense/mvc/app/models/OPNsense/IPsec/Swanctl.xml b/src/opnsense/mvc/app/models/OPNsense/IPsec/Swanctl.xml
index fd424626b..5b7747cb3 100644
--- a/src/opnsense/mvc/app/models/OPNsense/IPsec/Swanctl.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/IPsec/Swanctl.xml
@@ -98,7 +98,7 @@
0
1000
-
+
Y
@@ -157,7 +157,7 @@
Y
-
+
@@ -218,7 +218,7 @@
Y
-
+
@@ -309,7 +309,7 @@
500000
Y
-
+
@@ -394,7 +394,7 @@
N
Please specify a valid address.
-
+
@@ -432,7 +432,7 @@
N
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Lagg.xml b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Lagg.xml
index c84df8ffa..251f86adb 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Lagg.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Lagg.xml
@@ -61,10 +61,7 @@
576
65535
-
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Loopback.xml b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Loopback.xml
index 949bca895..ef087ca06 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Loopback.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Loopback.xml
@@ -7,10 +7,8 @@
Y
-
+
Y
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Description should be a string between 1 and 255 characters
diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor.xml b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor.xml
index d0a57f130..3f167a734 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor.xml
@@ -11,7 +11,7 @@
Y
N
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vip.xml b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vip.xml
index 4a8081152..9269f703c 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vip.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vip.xml
@@ -54,7 +54,7 @@
254
Invalid skew value, acceptable values are 0 to 255.
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vlan.xml b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vlan.xml
index 07c043f99..59b1b5386 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vlan.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Vlan.xml
@@ -47,7 +47,7 @@
802.1ad
-
+
Y
diff --git a/src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml b/src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
index b36c6c343..fea7e8854 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
@@ -88,8 +88,7 @@
-
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml b/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml
index e1c20202f..dcb473f09 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Monit/Monit.xml
@@ -155,10 +155,7 @@
86400
Reminder needs to be an integer value between 0 and 86400
-
- /^.{1,255}$/u
- Enter a description.
-
+
@@ -176,7 +173,7 @@
-
+
Y
diff --git a/src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml b/src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml
index c52d6892d..dc7cba3ec 100644
--- a/src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml
@@ -79,7 +79,7 @@
,
Y
-
+
@@ -343,7 +343,7 @@
carp
mvc
-
+
@@ -360,7 +360,7 @@
Y
A key is required, generate one with the button
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/Routes/Route.xml b/src/opnsense/mvc/app/models/OPNsense/Routes/Route.xml
index 4a52977c9..2839ba95a 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Routes/Route.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Routes/Route.xml
@@ -15,7 +15,7 @@
20
Specify a valid gateway from the list matching the networks ip protocol.
-
+
0
Y
diff --git a/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.xml b/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.xml
index 5f3bab384..a1ccaf249 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.xml
@@ -22,7 +22,7 @@
-
+
Y
wan
diff --git a/src/opnsense/mvc/app/models/OPNsense/Syslog/Syslog.xml b/src/opnsense/mvc/app/models/OPNsense/Syslog/Syslog.xml
index 559934a6d..e89e3a128 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Syslog/Syslog.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Syslog/Syslog.xml
@@ -89,7 +89,7 @@
0
Y
-
+
diff --git a/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml b/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml
index acb9a3d3f..b607d11f8 100644
--- a/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml
@@ -115,10 +115,8 @@
3000
Please choose a value between 1 and 3000
-
+
Y
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Description should be a string between 1 and 255 characters
@@ -200,10 +198,8 @@
-
+
Y
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){1,255}$/u
- Description should be a string between 1 and 255 characters
/^([a-z,A-Z,1-9]){0,30}$/
@@ -349,9 +345,7 @@
Related pipe or queue not found
Y
-
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
-
+
/^([a-z,A-Z,1-9]){0,30}$/
origin should be regular text of max 30 characters
diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
index 18fffeb84..0b962e878 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
@@ -164,10 +164,7 @@
Y
Y
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
@@ -332,10 +329,7 @@
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
@@ -378,10 +372,7 @@
/^(?:(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$/i
A valid domain must be specified.
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+
@@ -402,10 +393,7 @@
0
Y
-
- /^(.){1,255}$/u
- Description should be a string between 1 and 255 characters
-
+