version = "1.0"

[main]
name = "Configuration"

    [main.service]
    name = ""
    optional = false
        
        [main.service.no_antenna]
        ask = "No wifi antenna has been detected! If you use a wifi USB dongle and that this one is not listed here, try to unplug and replug it, then reload this page."
        type = "alert"
        style = "danger"
        visible = "no_antenna"
        
        [main.service.status]
        ask = "The status of your VPN is unknown."
        type = "alert"
        style = "info"
        visible = "! no_antenna"
        
        [main.service.service_enabled]
        ask = "Enable Hotspot"
        type = "boolean"
        visible = "! no_antenna"

        [main.service.wifi_device]
        ask = "Device"
        type = "select"
        choices.wlan0 = "wlan0"
        visible = "! no_antenna"
        
        [main.service.wifi_channel]
        ask = "Channel"
        type = "select"
        choices.1 = "1"
        choices.2 = "2"
        choices.3 = "3"
        choices.4 = "4"
        choices.5 = "5"
        choices.6 = "6"
        choices.7 = "7"
        choices.8 = "8"
        choices.9 = "9"
        choices.10 = "10"
        choices.11 = "11"
        visible = "! no_antenna"
        
        [main.service.multissid]
        ask = "Hotspot number"
        type = "select"
        choices.1 = "1"
        choices.2 = "2"
        choices.3 = "3"
        visible = "! no_antenna"
        
    [main.hotspot1]
    name = "Hotspot 1"
    optional = false
    visible = "! no_antenna"

        [main.hotspot1.wifi_ssid__1]
        ask = "Name (SSID)"
        type = "string"
        bind = "array_settings()"
        pattern.regexp = '^[\w \-]{1,32}$'
        pattern.error = "SSID in this app are limited to letter, number space, dash and underscores."
        
        [main.hotspot1.wifi_secure__1]
        ask = "Secure"
        type = "boolean"
        bind = "array_settings()"

        [main.hotspot1.wifi_passphrase__1]
        ask = "Password (WPA2)"
        type = "string"
        bind = "array_settings()"
        redact = true
        optional = true
        visible = "wifi_secure__1" 
        pattern.regexp = '^[a-zA-Z0-9]{8,63}$'
        pattern.error = "Only printable alphanumeric characters are permitted in your password. Maximal size 63 chars"
        
        [main.hotspot1.advanced__1]
        ask = "Advanced settings"
        type = "boolean"
        bind = "array_settings()"
        
        [main.hotspot1.ip4_nat_prefix__1]
        ask = "IPv4 NAT prefix (/24)"
        type = "string"
        bind = "array_settings()"
        visible = "advanced__1"
        pattern.regexp = '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'
        pattern.error = "Please provide a private /24 range in the format xxx.xxx.xxx"
        
        [main.hotspot1.ip6_net__1]
        ask = "IPv6 delegated prefix"
        type = "string"
        bind = "array_settings()"
        optional = "true"
        visible = "advanced__1"
        pattern.regexp = '^[0-9a-fA-F:]+$'
        pattern.error = "Please provide a valid IPv6 Prefix"
        
        [main.hotspot1.ip6_firewall__1]
        ask = "IPv6 firewall"
        type = "boolean"
        bind = "array_settings()"
        visible = "advanced__1"
        
        [main.hotspot1.dns__1]
        ask = "DNS resolvers"
        type = "tags"
        bind = "array_settings()"
        visible = "advanced__1"
        pattern.regexp = '^([0-9.]{7,15}|[0-9a-fA-F:]+)$'
        pattern.error = "Not an ip"
    
    [main.hotspot2]
    name = "Hotspot 2"
    visible = "! no_antenna && multissid >= 2"

        [main.hotspot2.wifi_ssid__2]
        ask = "Name (SSID)"
        type = "string"
        bind = "array_settings()"
        pattern.regexp = '^[\w \-]{1,32}$'
        pattern.error = "SSID in this app are limited to letter, number space, dash and underscores."
        
        [main.hotspot2.wifi_secure__2]
        ask = "Secure"
        type = "boolean"
        bind = "array_settings()"

        [main.hotspot2.wifi_passphrase__2]
        ask = "Password (WPA2)"
        type = "string"
        bind = "array_settings()"
        redact = true
        visible = "wifi_secure__2" 
        pattern.regexp = '^[a-zA-Z0-9]{8,63}$'
        pattern.error = "Only printable alphanumeric characters are permitted in your password. Maximal size 63 chars"
        
        [main.hotspot2.advanced__2]
        ask = "Advanced settings"
        type = "boolean"
        bind = "array_settings()"
        
        [main.hotspot2.ip4_nat_prefix__2]
        ask = "IPv4 NAT prefix (/24)"
        type = "string"
        bind = "array_settings()"
        visible = "advanced__2"
        pattern.regexp = '^[0-9.]{7,15}$'
        pattern.error = "Please provide a valid IP"
        
        [main.hotspot2.ip6_net__2]
        ask = "IPv6 delegated prefix"
        type = "string"
        bind = "array_settings()"
        visible = "advanced__2"
        pattern.regexp = '^[0-9a-fA-F:]+$'
        pattern.error = "Please provide a valid IPv6 Prefix"
        
        [main.hotspot2.ip6_firewall__2]
        ask = "IPv6 firewall"
        type = "boolean"
        bind = "array_settings()"
        visible = "advanced__2"
        
        [main.hotspot2.dns__2]
        ask = "DNS resolvers"
        type = "tags"
        bind = "array_settings()"
        visible = "advanced__2"
        pattern.regexp = '^([0-9.]{7,15}|[0-9a-fA-F:]+)$'
        pattern.error = "Not an ip"
    
    [main.hotspot3]
    name = "Hotspot 3"
    visible = "! no_antenna && multissid >= 3"

        [main.hotspot3.wifi_ssid__3]
        ask = "Name (SSID)"
        type = "string"
        bind = "array_settings()"
        pattern.regexp = '^[\w \-]{1,32}$'
        pattern.error = "SSID in this app are limited to letter, number space, dash and underscores."
        
        [main.hotspot3.wifi_secure__3]
        ask = "Secure"
        type = "boolean"
        bind = "array_settings()"

        [main.hotspot3.wifi_passphrase__3]
        ask = "Password (WPA2)"
        type = "string"
        bind = "array_settings()"
        redact = true
        visible = "wifi_secure__3" 
        pattern.regexp = '^[a-zA-Z0-9]{8,63}$'
        pattern.error = "Only printable alphanumeric characters are permitted in your password. Maximal size 63 chars"
        
        [main.hotspot3.advanced__3]
        ask = "Advanced settings"
        type = "boolean"
        bind = "array_settings()"
        
        [main.hotspot3.ip4_nat_prefix__3]
        ask = "IPv4 NAT prefix (/24)"
        type = "string"
        bind = "array_settings()"
        visible = "advanced__3"
        pattern.regexp = '^[0-9.]{7,15}$'
        pattern.error = "Please provide a valid IP"
        
        [main.hotspot3.ip6_net__3]
        ask = "IPv6 delegated prefix"
        type = "string"
        bind = "array_settings()"
        visible = "advanced__3"
        pattern.regexp = '^[0-9a-fA-F:]+$'
        pattern.error = "Please provide a valid IPv6 Prefix"
        
        [main.hotspot3.ip6_firewall__3]
        ask = "IPv6 firewall"
        type = "boolean"
        bind = "array_settings()"
        visible = "advanced__3"
        
        [main.hotspot3.dns__3]
        ask = "DNS resolvers"
        type = "tags"
        bind = "array_settings()"
        visible = "advanced__3"
        pattern.regexp = '^([0-9.]{7,15}|[0-9a-fA-F:]+)$'
        pattern.error = "Not an ip"