ui: Cleanup IP configuration in 'static' mode
In case of other then 'static' we are show current configuration (IP addresses, default gateway, DNS). When confuguration is changed to static we should clean this data, otherwise it is confused users. See ALT bug #48920.
This commit is contained in:
parent
e8999d3f66
commit
283726c03e
@ -3,6 +3,7 @@
|
||||
:use-module (alterator ajax)
|
||||
:use-module (alterator algo)
|
||||
:use-module (alterator woo)
|
||||
:use-module (alterator str)
|
||||
:export (init))
|
||||
|
||||
;;; low level
|
||||
@ -46,6 +47,16 @@
|
||||
(form-update-enum "addresses"
|
||||
(woo-list "/net-eth/list_current_iface_address" 'name name 'ipv (form-value "ipv"))))))
|
||||
|
||||
(define (update-interface-ipconfig name cmd)
|
||||
(form-update-value-list
|
||||
'("dns" "search" "addresses" "add-mask" "default") cmd)
|
||||
|
||||
(if (string=? (woo-get-option cmd 'configuration) "static")
|
||||
(read-interface-address name)
|
||||
(read-interface-current-address name))
|
||||
|
||||
)
|
||||
|
||||
(define (read-interface name ipv)
|
||||
(let* ((cmd (woo-read-first "/net-eth" 'name name 'ipv ipv 'language (form-value "language")))
|
||||
(iface-type (woo-get-option cmd 'iface_type "eth"))
|
||||
@ -91,22 +102,39 @@
|
||||
has-wifi-module
|
||||
(woo-get-option cmd 'wireless)
|
||||
(string=? (woo-get-option cmd 'controlled) "etcnet")))
|
||||
(form-update-value-list
|
||||
'("name" "ipv_enabled")
|
||||
cmd)
|
||||
(form-update-value-list
|
||||
'("computer_name" "dns" "search")
|
||||
|
||||
(form-update-value-list
|
||||
'("name" "ipv_enabled" "computer_name")
|
||||
cmd)
|
||||
(form-update-activity "computer_name" (not (woo-get-option cmd 'altdomain)))
|
||||
|
||||
(if (string=? (woo-get-option cmd 'configuration) "static")
|
||||
(read-interface-address name)
|
||||
(read-interface-current-address name))
|
||||
|
||||
(form-update-value-list
|
||||
'("iface_info" "add-mask" "default" "configuration" "controlled")
|
||||
'("configuration" "controlled")
|
||||
cmd)
|
||||
(update-ipv-activity)))
|
||||
(update-interface-ipconfig name cmd)
|
||||
|
||||
(update-ipv-activity)
|
||||
)
|
||||
)
|
||||
|
||||
(define (configuration_changed)
|
||||
(let ((name (form-value "name"))
|
||||
(ipv (form-value "ipv"))
|
||||
(configuration (form-value "configuration")))
|
||||
(if (string=? configuration "static")
|
||||
(begin
|
||||
(form-update-enum "addresses" '())
|
||||
(form-update-value "add-mask" (if (string=? ipv "4") "24" "64"))
|
||||
(form-update-value "default" "")
|
||||
(form-update-value "dns" "")
|
||||
(form-update-value "search" ""))
|
||||
(begin
|
||||
(catch/message
|
||||
(lambda() (update-interface-ipconfig name (woo-read-first "/net-eth" 'name name 'ipv ipv)))))
|
||||
)
|
||||
(update-configuration-activity configuration (form-value "controlled"))
|
||||
)
|
||||
)
|
||||
|
||||
(define (write-interface name ipv)
|
||||
(apply woo-write
|
||||
@ -233,7 +261,7 @@
|
||||
(form-bind "name" "change" update-interface)
|
||||
(form-bind "ipv" "change" ipv_changed)
|
||||
(form-bind "ipv_enabled" "change" update-ipv-activity)
|
||||
(form-bind "configuration" "change" (lambda() (update-configuration-activity (form-value "configuration") (form-value "controlled"))))
|
||||
(form-bind "configuration" "change" configuration_changed)
|
||||
(form-bind "wireless" "click" wireless-interface)
|
||||
(form-bind "advanced" "click" advanced-interface)
|
||||
(form-bind "vlan" "click" vlan-interface)
|
||||
|
@ -40,6 +40,16 @@
|
||||
(form-update-enum "addresses"
|
||||
(woo-list "/net-eth/list_current_iface_address" 'name name 'ipv (form-value "ipv"))))))
|
||||
|
||||
(define (update-interface-ipconfig name cmd)
|
||||
(form-update-value-list
|
||||
'("dns" "search" "addresses" "add-mask" "default") cmd)
|
||||
|
||||
(if (string=? (woo-get-option cmd 'configuration) "static")
|
||||
(read-interface-address name)
|
||||
(read-interface-current-address name))
|
||||
|
||||
)
|
||||
|
||||
(define (read-interface name ipv)
|
||||
(let* ((cmd (woo-read-first "/net-eth" 'name name 'ipv ipv))
|
||||
(iface-type (woo-get-option cmd 'iface_type "eth"))
|
||||
@ -87,27 +97,38 @@
|
||||
'("iface_info" "advanced"))
|
||||
|
||||
(form-update-value-list
|
||||
'("name" "ipv_enabled")
|
||||
cmd)
|
||||
(form-update-value-list
|
||||
'("computer_name" "dns" "search")
|
||||
'("name" "ipv_enabled" "computer_name" "iface_info")
|
||||
cmd)
|
||||
(form-update-activity "computer_name" (not (woo-get-option cmd 'altdomain)))
|
||||
(form-update-value-list
|
||||
'("add-mask" "iface_info" "default" "configuration")
|
||||
cmd)
|
||||
|
||||
(if (string=? (woo-get-option cmd 'configuration) "static")
|
||||
(read-interface-address name)
|
||||
(read-interface-current-address name))
|
||||
|
||||
(form-update-value-list
|
||||
'("configuration" "controlled")
|
||||
cmd)
|
||||
(update-ipv-activity)
|
||||
(update-interface-ipconfig name cmd)
|
||||
|
||||
(update-ipv-activity)
|
||||
)
|
||||
)
|
||||
|
||||
(define (configuration_changed)
|
||||
(let ((name (form-value "name"))
|
||||
(ipv (form-value "ipv"))
|
||||
(configuration (form-value "configuration")))
|
||||
(if (string=? configuration "static")
|
||||
(begin
|
||||
(form-update-enum "addresses" '())
|
||||
(form-update-value "add-mask" (if (string=? ipv "4") "24" "64"))
|
||||
(form-update-value "default" "")
|
||||
(form-update-value "dns" "")
|
||||
(form-update-value "search" ""))
|
||||
(begin
|
||||
(catch/message
|
||||
(lambda() (update-interface-ipconfig name (woo-read-first "/net-eth" 'name name 'ipv ipv)))))
|
||||
)
|
||||
(update-configuration-activity configuration (form-value "controlled"))
|
||||
)
|
||||
)
|
||||
|
||||
(define (write-interface name ipv)
|
||||
(apply woo-write
|
||||
"/net-eth"
|
||||
@ -346,7 +367,7 @@
|
||||
(form-bind "name" "change" update-interface)
|
||||
(form-bind "ipv" "change" ipv_changed)
|
||||
(form-bind "ipv_enabled" "change" update-ipv-activity)
|
||||
(form-bind "configuration" "change" (lambda() (update-configuration-activity (form-value "configuration") (form-value "controlled"))))
|
||||
(form-bind "configuration" "change" configuration_changed)
|
||||
(form-bind "wireless" "click" wireless-interface)
|
||||
(form-bind "advanced" "click" advanced-interface)
|
||||
(form-bind "vlan" "click" vlan-interface)
|
||||
|
Loading…
x
Reference in New Issue
Block a user