Better display of resource records.

beta
Philippe Pittoli 2024-02-07 05:00:51 +01:00
parent 4f785e6dcc
commit 5a987a524c
2 changed files with 49 additions and 26 deletions

View File

@ -589,8 +589,6 @@ handleAction = case _ of
case Validation.validation state._currentRR of case Validation.validation state._currentRR of
Left actual_errors -> do Left actual_errors -> do
H.modify_ _ { _currentRR_errors = actual_errors } H.modify_ _ { _currentRR_errors = actual_errors }
H.raise $ Log $ SimpleLog $ "[😈] Errors in RR id " <> show state._currentRR.rrid
<> ". Please fix them before update."
Right rr -> do Right rr -> do
H.modify_ _ { _currentRR_errors = [] } H.modify_ _ { _currentRR_errors = [] }
handleAction $ SaveRR rr handleAction $ SaveRR rr
@ -653,7 +651,6 @@ handleQuery = case _ of
new_state <- H.get new_state <- H.get
H.put $ add_RR new_state new_rr H.put $ add_RR new_state new_rr
H.raise $ Log $ SimpleLog $ "Replacing a resource record! Should be visible everywhere!"
add_entries [] = H.raise $ Log $ SimpleLog "[🎉] Zone fully loaded!" add_entries [] = H.raise $ Log $ SimpleLog "[🎉] Zone fully loaded!"
add_entries arr = do add_entries arr = do
@ -667,27 +664,13 @@ handleQuery = case _ of
add_RR :: State -> ResourceRecord -> State add_RR :: State -> ResourceRecord -> State
add_RR state new_rr = state { _resources = (state._resources <> [ new_rr ]) } add_RR state new_rr = state { _resources = (state._resources <> [ new_rr ]) }
-- Rendering -- Rendering
render_soa :: forall (w :: Type). Maybe ResourceRecord -> HH.HTML w Action render_soa :: forall (w :: Type). Maybe ResourceRecord -> HH.HTML w Action
render_soa Nothing = Bulma.box [ HH.text "SOA not loaded, yet" ] render_soa Nothing = Bulma.box [ HH.text "SOA not loaded, yet" ]
render_soa (Just soa) = Bulma.box [ Bulma.zone_rr_title "Start Of Authority (SOA)" render_soa (Just soa) = Bulma.box [ Bulma.zone_rr_title "Start Of Authority (SOA)"
, table_rr , table_rr
] ]
where table_rr = Bulma.table [] [ simple_SOA_table_header, table_content ] where table_rr = Bulma.table [] [ Bulma.soa_table_header, table_content ]
simple_SOA_table_header
= HH.thead_ [ HH.tr_ [ HH.th_ [ HH.text "name"]
, HH.th_ [ HH.text "ttl"]
, HH.th_ [ HH.text "target"]
, HH.th_ [ HH.text "mname"]
, HH.th_ [ HH.text "rname"]
, HH.th_ [ HH.text "serial"]
, HH.th_ [ HH.text "refresh"]
, HH.th_ [ HH.text "retry"]
, HH.th_ [ HH.text "expire"]
, HH.th_ [ HH.text "minttl"]
]
]
table_content table_content
= HH.tbody_ $ [ HH.tr_ $ [ = HH.tbody_ $ [ HH.tr_ $ [
--, Bulma.p $ "rrtype: " <> soa.rrtype --, Bulma.p $ "rrtype: " <> soa.rrtype
@ -711,17 +694,40 @@ render_resources :: forall w
. Array (ResourceRecord) . Array (ResourceRecord)
-> HH.HTML w Action -> HH.HTML w Action
render_resources [] render_resources []
= Bulma.box [ Bulma.zone_rr_title "All records (TEST)" = Bulma.box [ Bulma.zone_rr_title "Resource records"
, Bulma.subtitle "No records for now" , Bulma.subtitle "No records for now"
] ]
render_resources records render_resources records
= Bulma.box [ Bulma.zone_rr_title "All records (TEST)" = Bulma.box [ render_soa $ A.head $ A.filter (\rr -> rr.rrtype == "SOA") records
, render_soa $ A.head $ A.filter (\rr -> rr.rrtype == "SOA") records , basic_records_section
, table_rr , mx_records_section
, srv_records_section
] ]
where where
table_rr = Bulma.table [] [ table_content ] all_basic_rr = A.filter (\rr -> A.elem rr.rrtype baseRecords) records
table_content = HH.tbody_ $ A.concat $ map rows $ A.filter (\rr -> rr.rrtype /= "SOA") records all_mx_rr = A.filter (\rr -> rr.rrtype == "MX") records
all_srv_rr = A.filter (\rr -> rr.rrtype == "SRV") records
basic_records_section
= if A.length all_basic_rr > 0
then Bulma.table [] [ Bulma.simple_table_header, render_basic_records ]
else Bulma.p "no basic records"
mx_records_section
= if A.length all_mx_rr > 0
then Bulma.table [] [ Bulma.mx_table_header, render_mx_records ]
else Bulma.p "no mx records"
srv_records_section
= if A.length all_srv_rr > 0
then Bulma.table [] [ Bulma.srv_table_header, render_srv_records ]
else Bulma.p "no srv records"
render_basic_records = table_content all_basic_rr
render_mx_records = table_content all_mx_rr
render_srv_records = table_content all_srv_rr
table_content records_ = HH.tbody_ $ A.concat $ map rows records_
rows rr = [ HH.tr_ $ render_row rr ] -- <> error_row rr rows rr = [ HH.tr_ $ render_row rr ] -- <> error_row rr
render_row :: ResourceRecord -> Array (HH.HTML w Action) render_row :: ResourceRecord -> Array (HH.HTML w Action)

View File

@ -72,7 +72,8 @@ simple_table_header
mx_table_header :: forall w i. HH.HTML w i mx_table_header :: forall w i. HH.HTML w i
mx_table_header mx_table_header
= HH.thead_ [ HH.tr_ [ HH.th_ [ HH.text "Name" ] = HH.thead_ [ HH.tr_ [ HH.th [ HP.style "width: 50px;" ] [ HH.text "Type" ]
, HH.th_ [ HH.text "Name" ]
, HH.th_ [ HH.text "TTL" ] , HH.th_ [ HH.text "TTL" ]
, HH.th_ [ HH.text "Priority" ] , HH.th_ [ HH.text "Priority" ]
, HH.th_ [ HH.text "Target" ] , HH.th_ [ HH.text "Target" ]
@ -81,7 +82,8 @@ mx_table_header
srv_table_header :: forall w i. HH.HTML w i srv_table_header :: forall w i. HH.HTML w i
srv_table_header srv_table_header
= HH.thead_ [ HH.tr_ [ HH.th_ [ HH.text "Name" ] = HH.thead_ [ HH.tr_ [ HH.th [ HP.style "width: 50px;" ] [ HH.text "Type" ]
, HH.th_ [ HH.text "Name" ]
, HH.th_ [ HH.text "TTL" ] , HH.th_ [ HH.text "TTL" ]
, HH.th_ [ HH.text "Priority" ] , HH.th_ [ HH.text "Priority" ]
, HH.th_ [ HH.text "Protocol" ] , HH.th_ [ HH.text "Protocol" ]
@ -91,6 +93,21 @@ srv_table_header
] ]
] ]
soa_table_header :: forall w i. HH.HTML w i
soa_table_header
= HH.thead_ [ HH.tr_ [ HH.th_ [ HH.text "name"]
, HH.th_ [ HH.text "ttl"]
, HH.th_ [ HH.text "target"]
, HH.th_ [ HH.text "mname"]
, HH.th_ [ HH.text "rname"]
, HH.th_ [ HH.text "serial"]
, HH.th_ [ HH.text "refresh"]
, HH.th_ [ HH.text "retry"]
, HH.th_ [ HH.text "expire"]
, HH.th_ [ HH.text "minttl"]
]
]
txt_name :: forall w i. String -> HH.HTML w i txt_name :: forall w i. String -> HH.HTML w i
txt_name t txt_name t
= HH.td [ rr_name_style ] [ rr_name_text ] = HH.td [ rr_name_style ] [ rr_name_text ]