feat(editor): F4.5a the device sheet for PCs, notebooks, switches and modems

Measured first: the new oracle SheetRun types 77 texts into FILIUS' own
settings panels and records what was marked red, what the device took and
what the field showed afterwards. Java's two judgements disagree (red text
taken, black text refused, any int as a modem port, a refused text dropped
without a word); here one rule decides both (packages/doc fields.ts), a
refused text stays marked in the field, and only what Java's model accepts
reaches the document.

- doc: settings.ts (name, label policy, addresses, IP forwarding, DHCP
  stopping the own DHCP server, LAN/WLAN with the wireless connection,
  switch SSID dropping its wireless hosts, retention time, cloud, modem
  port as its pair), sheet.ts (what the sheet shows)
- fls: modemPair/modemPort in one place
- editor: DeviceSheet beside the surface or below it on a phone, opened
  with the selection; every change one undo step
- not adopted from Java: the name overwritten by the MAC address, the
  access point search depending on unrelated devices

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 11:22:28 +00:00
co-authored by Claude Opus 5.5
parent 806df6baca
commit 9b7ec2fc72
25 changed files with 2667 additions and 73 deletions
+703
View File
@@ -0,0 +1,703 @@
{
"cases": [
{
"device": "host",
"field": "name",
"input": "Neuer Name",
"start": "Rechner",
"marked": false,
"stored": "Neuer Name",
"shown": "Neuer Name"
},
{
"device": "host",
"field": "name",
"input": "",
"start": "Rechner",
"marked": false,
"stored": "",
"shown": ""
},
{
"device": "host",
"field": "name",
"input": " PC 1 ",
"start": "Rechner",
"marked": false,
"stored": " PC 1 ",
"shown": " PC 1 "
},
{
"device": "host",
"field": "name",
"input": "Ärger-ß",
"start": "Rechner",
"marked": false,
"stored": "Ärger-ß",
"shown": "Ärger-ß"
},
{
"device": "host",
"field": "ip",
"input": "10.0.0.1",
"start": "192.168.0.10",
"marked": false,
"stored": "10.0.0.1",
"shown": "10.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": "010.000.000.001",
"start": "192.168.0.10",
"marked": false,
"stored": "10.0.0.1",
"shown": "10.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": "10..0.0.1",
"start": "192.168.0.10",
"marked": true,
"stored": "10.0.0.1",
"shown": "10.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": ".0.0.1",
"start": "192.168.0.10",
"marked": false,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "+10.0.0.1",
"start": "192.168.0.10",
"marked": true,
"stored": "10.0.0.1",
"shown": "10.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": "256.0.0.1",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "10.0.0",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "10.0.0.1.",
"start": "192.168.0.10",
"marked": true,
"stored": "10.0.0.1",
"shown": "10.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": " 10.0.0.1",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "10.0.0.1 ",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "abc",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "0.0.0.0",
"start": "192.168.0.10",
"marked": false,
"stored": "0.0.0.0",
"shown": "0.0.0.0"
},
{
"device": "host",
"field": "ip",
"input": "1.2.3.4.5",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "١٠.0.0.1",
"start": "192.168.0.10",
"marked": true,
"stored": "10.0.0.1",
"shown": "10.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": "10.0.0.-1",
"start": "192.168.0.10",
"marked": true,
"stored": "192.168.0.10",
"shown": "192.168.0.10"
},
{
"device": "host",
"field": "ip",
"input": "-0.0.0.1",
"start": "192.168.0.10",
"marked": true,
"stored": "0.0.0.1",
"shown": "0.0.0.1"
},
{
"device": "host",
"field": "ip",
"input": "255.255.255.255",
"start": "192.168.0.10",
"marked": false,
"stored": "255.255.255.255",
"shown": "255.255.255.255"
},
{
"device": "host",
"field": "mask",
"input": "255.255.0.0",
"start": "255.255.255.0",
"marked": false,
"stored": "255.255.0.0",
"shown": "255.255.0.0"
},
{
"device": "host",
"field": "mask",
"input": "255.0.255.0",
"start": "255.255.255.0",
"marked": false,
"stored": "255.0.255.0",
"shown": "255.0.255.0"
},
{
"device": "host",
"field": "mask",
"input": "0.0.0.0",
"start": "255.255.255.0",
"marked": false,
"stored": "0.0.0.0",
"shown": "0.0.0.0"
},
{
"device": "host",
"field": "mask",
"input": "255.255.255.255",
"start": "255.255.255.0",
"marked": false,
"stored": "255.255.255.255",
"shown": "255.255.255.255"
},
{
"device": "host",
"field": "mask",
"input": "256.0.0.0",
"start": "255.255.255.0",
"marked": true,
"stored": "255.255.255.0",
"shown": "255.255.255.0"
},
{
"device": "host",
"field": "mask",
"input": "",
"start": "255.255.255.0",
"marked": true,
"stored": "255.255.255.0",
"shown": "255.255.255.0"
},
{
"device": "host",
"field": "mask",
"input": "255.255.255",
"start": "255.255.255.0",
"marked": true,
"stored": "255.255.255.0",
"shown": "255.255.255.0"
},
{
"device": "host",
"field": "mask",
"input": "0255.255.0.0",
"start": "255.255.255.0",
"marked": false,
"stored": "255.255.0.0",
"shown": "255.255.0.0"
},
{
"device": "host",
"field": "mask",
"input": "1.2.3.4",
"start": "255.255.255.0",
"marked": false,
"stored": "1.2.3.4",
"shown": "1.2.3.4"
},
{
"device": "host",
"field": "mask",
"input": "255..255.0.0",
"start": "255.255.255.0",
"marked": true,
"stored": "255.255.0.0",
"shown": "255.255.0.0"
},
{
"device": "host",
"field": "gateway",
"input": "",
"start": "192.168.0.254",
"marked": false,
"stored": "",
"shown": ""
},
{
"device": "host",
"field": "gateway",
"input": " ",
"start": "192.168.0.254",
"marked": true,
"stored": "",
"shown": ""
},
{
"device": "host",
"field": "gateway",
"input": "192.168.0.1",
"start": "192.168.0.254",
"marked": false,
"stored": "192.168.0.1",
"shown": "192.168.0.1"
},
{
"device": "host",
"field": "gateway",
"input": "192.168.0.256",
"start": "192.168.0.254",
"marked": true,
"stored": "192.168.0.254",
"shown": "192.168.0.254"
},
{
"device": "host",
"field": "gateway",
"input": "abc",
"start": "192.168.0.254",
"marked": true,
"stored": "192.168.0.254",
"shown": "192.168.0.254"
},
{
"device": "host",
"field": "gateway",
"input": " 192.168.0.1",
"start": "192.168.0.254",
"marked": true,
"stored": "192.168.0.254",
"shown": "192.168.0.254"
},
{
"device": "host",
"field": "gateway",
"input": "192.168..1.1",
"start": "192.168.0.254",
"marked": true,
"stored": "192.168.1.1",
"shown": "192.168.1.1"
},
{
"device": "host",
"field": "gateway",
"input": "0.0.0.0",
"start": "192.168.0.254",
"marked": false,
"stored": "0.0.0.0",
"shown": "0.0.0.0"
},
{
"device": "host",
"field": "dns",
"input": "",
"start": "192.168.0.253",
"marked": false,
"stored": "",
"shown": ""
},
{
"device": "host",
"field": "dns",
"input": "8.8.8.8",
"start": "192.168.0.253",
"marked": false,
"stored": "8.8.8.8",
"shown": "8.8.8.8"
},
{
"device": "host",
"field": "dns",
"input": "8.8.8",
"start": "192.168.0.253",
"marked": true,
"stored": "192.168.0.253",
"shown": "192.168.0.253"
},
{
"device": "host",
"field": "dns",
"input": " ",
"start": "192.168.0.253",
"marked": true,
"stored": "",
"shown": ""
},
{
"device": "host",
"field": "dns",
"input": "08.8.8.8",
"start": "192.168.0.253",
"marked": false,
"stored": "8.8.8.8",
"shown": "8.8.8.8"
},
{
"device": "switch",
"field": "name",
"input": "S1",
"start": "Switch / WLAN",
"marked": false,
"stored": "S1",
"shown": "S1"
},
{
"device": "switch",
"field": "name",
"input": "",
"start": "Switch / WLAN",
"marked": false,
"stored": "",
"shown": ""
},
{
"device": "switch",
"field": "ssid",
"input": "Schule",
"start": "Start",
"marked": false,
"stored": "Schule",
"shown": "Schule"
},
{
"device": "switch",
"field": "ssid",
"input": "",
"start": "Start",
"marked": true,
"stored": "Start",
"shown": "Start"
},
{
"device": "switch",
"field": "ssid",
"input": " ",
"start": "Start",
"marked": false,
"stored": " ",
"shown": " "
},
{
"device": "switch",
"field": "ssid",
"input": "a b",
"start": "Start",
"marked": false,
"stored": "a b",
"shown": "a b"
},
{
"device": "switch",
"field": "ssid",
"input": "Ä",
"start": "Start",
"marked": true,
"stored": "Start",
"shown": "Start"
},
{
"device": "switch",
"field": "ssid",
"input": "~",
"start": "Start",
"marked": false,
"stored": "~",
"shown": "~"
},
{
"device": "switch",
"field": "ssid",
"input": "",
"start": "Start",
"marked": true,
"stored": "Start",
"shown": "Start"
},
{
"device": "switch",
"field": "ssid",
"input": " lead",
"start": "Start",
"marked": false,
"stored": " lead",
"shown": " lead"
},
{
"device": "switch",
"field": "retention",
"input": "60",
"start": "300000",
"marked": false,
"stored": "60000",
"shown": "60"
},
{
"device": "switch",
"field": "retention",
"input": "0",
"start": "300000",
"marked": false,
"stored": "0",
"shown": "0"
},
{
"device": "switch",
"field": "retention",
"input": "",
"start": "300000",
"marked": false,
"stored": "300000",
"shown": "300"
},
{
"device": "switch",
"field": "retention",
"input": "-5",
"start": "300000",
"marked": true,
"stored": "-5000",
"shown": "-5"
},
{
"device": "switch",
"field": "retention",
"input": "abc",
"start": "300000",
"marked": true,
"stored": "300000",
"shown": "300"
},
{
"device": "switch",
"field": "retention",
"input": "1.5",
"start": "300000",
"marked": true,
"stored": "300000",
"shown": "300"
},
{
"device": "switch",
"field": "retention",
"input": "007",
"start": "300000",
"marked": false,
"stored": "7000",
"shown": "7"
},
{
"device": "switch",
"field": "retention",
"input": "99999999999999999999",
"start": "300000",
"marked": false,
"stored": "300000",
"shown": "300"
},
{
"device": "switch",
"field": "retention",
"input": "٣",
"start": "300000",
"marked": true,
"stored": "3000",
"shown": "3"
},
{
"device": "switch",
"field": "retention",
"input": " 60",
"start": "300000",
"marked": true,
"stored": "300000",
"shown": "300"
},
{
"device": "modem",
"field": "name",
"input": "M",
"start": "Modem",
"marked": false,
"stored": "M",
"shown": "M"
},
{
"device": "modem",
"field": "name",
"input": "",
"start": "Modem",
"marked": false,
"stored": "",
"shown": ""
},
{
"device": "modem",
"field": "port",
"input": "12345",
"start": "12345",
"marked": false,
"stored": "12345",
"shown": "12345"
},
{
"device": "modem",
"field": "port",
"input": "0",
"start": "12345",
"marked": false,
"stored": "0",
"shown": "0"
},
{
"device": "modem",
"field": "port",
"input": "65535",
"start": "12345",
"marked": false,
"stored": "65535",
"shown": "65535"
},
{
"device": "modem",
"field": "port",
"input": "65536",
"start": "12345",
"marked": false,
"stored": "65536",
"shown": "65536"
},
{
"device": "modem",
"field": "port",
"input": "-1",
"start": "12345",
"marked": false,
"stored": "-1",
"shown": "-1"
},
{
"device": "modem",
"field": "port",
"input": "abc",
"start": "12345",
"marked": false,
"stored": "12345",
"shown": "12345"
},
{
"device": "modem",
"field": "port",
"input": "",
"start": "12345",
"marked": false,
"stored": "12345",
"shown": "12345"
},
{
"device": "modem",
"field": "port",
"input": "080",
"start": "12345",
"marked": false,
"stored": "80",
"shown": "80"
},
{
"device": "modem",
"field": "port",
"input": " 80",
"start": "12345",
"marked": false,
"stored": "12345",
"shown": "12345"
},
{
"device": "modem",
"field": "port",
"input": "80",
"start": "12345",
"marked": false,
"stored": "80",
"shown": "80"
}
],
"flows": {
"useMacAsNameThenOff": "0E:EE:AA:A5:58:21",
"useIpAsNameThenOff": "PC-A",
"dhcpClientStopsServer": true,
"dhcpClient": true
}
}