diff --git a/applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js b/applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js
index a6c49501d2..ed9318d485 100644
--- a/applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js
+++ b/applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js
@@ -49,13 +49,23 @@ return view.extend({
1 hour would be: 1h
1 week would be: 7d"));
o.default = '6h';
- o = s.taboption('general', form.Value, 'pinghosts', _('Host To Check'), _(`IP addresses or hostnames to ping.`));
- o.datatype = 'list(host)';
- o.default = '8.8.8.8 1.1.1.1';
+ o = s.taboption('general', form.DynamicList, 'pinghosts', _('Hosts To Check'), _(`IP addresses or hostnames to ping.`));
+ o.datatype = 'host';
+ o.default = ['8.8.8.8', '1.1.1.1'];
o.depends({ mode: "ping_reboot" });
o.depends({ mode: "restart_iface" });
o.depends({ mode: "run_script" });
+ o.load = function(section_id) {
+ return (String(this.map.data.get('watchcat', section_id, 'pinghosts') || '')
+ .trim().split(/\s+/).filter(Boolean))
+ }
+
+ o.write = function(section_id, formvalue) {
+ this.map.data.set('watchcat', section_id, 'pinghosts',
+ (formvalue || []).map(v => String(v).trim()).filter(Boolean).join(' '))
+ }
+
o = s.taboption('general', form.ListValue, 'addressfamily',
_('Address family for pinging the host'));
o.default = 'any';