Allow empty names for root domain RR, like usually SPF and MX.
parent
82bf6b57b4
commit
e21ff35835
|
@ -40,7 +40,7 @@ import CSSClasses as C
|
||||||
|
|
||||||
import App.AcceptedRRTypes (AcceptedRRTypes(..))
|
import App.AcceptedRRTypes (AcceptedRRTypes(..))
|
||||||
import App.ResourceRecord (ResourceRecord, emptyRR
|
import App.ResourceRecord (ResourceRecord, emptyRR
|
||||||
, show_qualifier, show_mechanism_type, show_mechanism, to_mechanism
|
, show_qualifier, show_qualifier_char, show_mechanism_type, show_mechanism, to_mechanism
|
||||||
, mechanism_types, qualifier_types, modifier_types)
|
, mechanism_types, qualifier_types, modifier_types)
|
||||||
import App.ResourceRecord (Mechanism, Modifier, Qualifier) as RR
|
import App.ResourceRecord (Mechanism, Modifier, Qualifier) as RR
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ render state
|
||||||
, Bulma.input_with_side_text ("domain" <> state._currentRR.rrtype) "Name" "www"
|
, Bulma.input_with_side_text ("domain" <> state._currentRR.rrtype) "Name" "www"
|
||||||
(updateForm Field_Domain)
|
(updateForm Field_Domain)
|
||||||
state._currentRR.name
|
state._currentRR.name
|
||||||
("." <> state._domain)
|
display_domain_side
|
||||||
, Bulma.box_input ("ttl" <> state._currentRR.rrtype) "TTL" "600"
|
, Bulma.box_input ("ttl" <> state._currentRR.rrtype) "TTL" "600"
|
||||||
(updateForm Field_TTL)
|
(updateForm Field_TTL)
|
||||||
(show state._currentRR.ttl)
|
(show state._currentRR.ttl)
|
||||||
|
@ -329,7 +329,7 @@ render state
|
||||||
, Bulma.input_with_side_text "domainMX" "Name" "www"
|
, Bulma.input_with_side_text "domainMX" "Name" "www"
|
||||||
(updateForm Field_Domain)
|
(updateForm Field_Domain)
|
||||||
state._currentRR.name
|
state._currentRR.name
|
||||||
("." <> state._domain)
|
display_domain_side
|
||||||
, Bulma.box_input ("ttlMX") "TTL" "600"
|
, Bulma.box_input ("ttlMX") "TTL" "600"
|
||||||
(updateForm Field_TTL)
|
(updateForm Field_TTL)
|
||||||
(show state._currentRR.ttl)
|
(show state._currentRR.ttl)
|
||||||
|
@ -349,7 +349,7 @@ render state
|
||||||
, Bulma.input_with_side_text "domainSRV" "Name" "www"
|
, Bulma.input_with_side_text "domainSRV" "Name" "www"
|
||||||
(updateForm Field_Domain)
|
(updateForm Field_Domain)
|
||||||
state._currentRR.name
|
state._currentRR.name
|
||||||
("." <> state._domain)
|
display_domain_side
|
||||||
, Bulma.box_input ("ttlSRV") "TTL" "600"
|
, Bulma.box_input ("ttlSRV") "TTL" "600"
|
||||||
(updateForm Field_TTL)
|
(updateForm Field_TTL)
|
||||||
(show state._currentRR.ttl)
|
(show state._currentRR.ttl)
|
||||||
|
@ -381,7 +381,7 @@ render state
|
||||||
, Bulma.input_with_side_text "domainSPF" "Name" "www"
|
, Bulma.input_with_side_text "domainSPF" "Name" "www"
|
||||||
(updateForm Field_Domain)
|
(updateForm Field_Domain)
|
||||||
state._currentRR.name
|
state._currentRR.name
|
||||||
("." <> state._domain)
|
display_domain_side
|
||||||
, Bulma.box_input "ttlSPF" "TTL" "600"
|
, Bulma.box_input "ttlSPF" "TTL" "600"
|
||||||
(updateForm Field_TTL)
|
(updateForm Field_TTL)
|
||||||
(show state._currentRR.ttl)
|
(show state._currentRR.ttl)
|
||||||
|
@ -416,6 +416,7 @@ render state
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
display_domain_side = (if state._currentRR.name == (state._domain <> ".") then "" else "." <> state._domain)
|
||||||
should_be_disabled = (if true then (HP.enabled true) else (HP.disabled true))
|
should_be_disabled = (if true then (HP.enabled true) else (HP.disabled true))
|
||||||
foot_content x = [ case state.rr_modal of
|
foot_content x = [ case state.rr_modal of
|
||||||
NewRRModal _ -> Bulma.btn_add (ValidateRR x)
|
NewRRModal _ -> Bulma.btn_add (ValidateRR x)
|
||||||
|
@ -485,6 +486,9 @@ handleAction = case _ of
|
||||||
-- | Perform validation. In case the record is valid, it is added to the zone then the modal is closed.
|
-- | Perform validation. In case the record is valid, it is added to the zone then the modal is closed.
|
||||||
-- | Else, the different errors are added to the state.
|
-- | Else, the different errors are added to the state.
|
||||||
ValidateRR t -> do
|
ValidateRR t -> do
|
||||||
|
-- In case the `name` part of the resource record is empty, consider the name to be the domain itself.
|
||||||
|
H.modify_ \s -> s { _currentRR = replace_name s._domain s._currentRR }
|
||||||
|
|
||||||
state <- H.get
|
state <- H.get
|
||||||
case Validation.validation state._currentRR of
|
case Validation.validation state._currentRR of
|
||||||
Left actual_errors -> do
|
Left actual_errors -> do
|
||||||
|
@ -514,6 +518,9 @@ handleAction = case _ of
|
||||||
|
|
||||||
-- | Validate any local RR with the new `_resources` and `_local_errors`.
|
-- | Validate any local RR with the new `_resources` and `_local_errors`.
|
||||||
ValidateLocal -> do
|
ValidateLocal -> do
|
||||||
|
-- In case the `name` part of the resource record is empty, consider the name to be the domain itself.
|
||||||
|
H.modify_ \s -> s { _currentRR = replace_name s._domain s._currentRR }
|
||||||
|
|
||||||
state <- H.get
|
state <- H.get
|
||||||
case Validation.validation state._currentRR of
|
case Validation.validation state._currentRR of
|
||||||
Left actual_errors -> do
|
Left actual_errors -> do
|
||||||
|
@ -565,6 +572,11 @@ handleAction = case _ of
|
||||||
[] -> Nothing
|
[] -> Nothing
|
||||||
v -> Just v
|
v -> Just v
|
||||||
H.modify_ _ { _currentRR { mechanisms = new_value }}
|
H.modify_ _ { _currentRR { mechanisms = new_value }}
|
||||||
|
where
|
||||||
|
-- In case the `name` part of the resource record is empty replace it with the domain name.
|
||||||
|
replace_name domain rr = case rr.name of
|
||||||
|
"" -> rr { name = domain <> "." }
|
||||||
|
_ -> rr
|
||||||
|
|
||||||
handleQuery :: forall a m. MonadAff m => Query a -> H.HalogenM State Action () Output m (Maybe a)
|
handleQuery :: forall a m. MonadAff m => Query a -> H.HalogenM State Action () Output m (Maybe a)
|
||||||
handleQuery = case _ of
|
handleQuery = case _ of
|
||||||
|
@ -739,7 +751,7 @@ render_resources records
|
||||||
, HH.td_ [ Bulma.p $ maybe "spf1 (default)" id rr.v ]
|
, HH.td_ [ Bulma.p $ maybe "spf1 (default)" id rr.v ]
|
||||||
, HH.td_ [ Bulma.p $ maybe "" (A.fold <<< A.intersperse " " <<< map show_mechanism) rr.mechanisms ]
|
, HH.td_ [ Bulma.p $ maybe "" (A.fold <<< A.intersperse " " <<< map show_mechanism) rr.mechanisms ]
|
||||||
, HH.td_ [ Bulma.p $ maybe "" (\ _ -> "TODO: modifiers") rr.modifiers ]
|
, HH.td_ [ Bulma.p $ maybe "" (\ _ -> "TODO: modifiers") rr.modifiers ]
|
||||||
, HH.td_ [ Bulma.p $ maybe "qualifier" (\ _ -> "qualifier") rr.q ]
|
, HH.td_ [ Bulma.p $ maybe "" show_qualifier_char rr.q ]
|
||||||
, if rr.readonly
|
, if rr.readonly
|
||||||
then HH.td_ [ Bulma.btn_readonly ]
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
||||||
|
|
Loading…
Reference in New Issue