Do not allow modification of read only RRs.
parent
926f461a51
commit
419d68784a
|
@ -35,6 +35,7 @@ import Halogen.HTML as HH
|
||||||
import Halogen.HTML.Properties as HP
|
import Halogen.HTML.Properties as HP
|
||||||
|
|
||||||
import Bulma as Bulma
|
import Bulma as Bulma
|
||||||
|
import CSSClasses as C
|
||||||
|
|
||||||
import App.AcceptedRRTypes (AcceptedRRTypes(..))
|
import App.AcceptedRRTypes (AcceptedRRTypes(..))
|
||||||
import App.ResourceRecord (ResourceRecord)
|
import App.ResourceRecord (ResourceRecord)
|
||||||
|
@ -729,7 +730,9 @@ render_resources records
|
||||||
emptyline = HH.tr_ [ Bulma.txt_name "", HH.td_ [], HH.td_ [], HH.td_ [], HH.td_ [], HH.td_ [] ]
|
emptyline = HH.tr_ [ Bulma.txt_name "", HH.td_ [], HH.td_ [], HH.td_ [], HH.td_ [], HH.td_ [] ]
|
||||||
|
|
||||||
table_content records_ = HH.tbody_ $ map rows records_
|
table_content records_ = HH.tbody_ $ map rows records_
|
||||||
rows rr = HH.tr_ $ render_row rr -- <> error_row rr
|
rows rr = if rr.readonly
|
||||||
|
then HH.tr [ HP.classes C.has_background_warning_light ] $ render_row rr -- <> error_row rr
|
||||||
|
else HH.tr_ $ render_row rr -- <> error_row rr
|
||||||
|
|
||||||
render_row :: ResourceRecord -> Array (HH.HTML w Action)
|
render_row :: ResourceRecord -> Array (HH.HTML w Action)
|
||||||
render_row rr =
|
render_row rr =
|
||||||
|
@ -743,8 +746,12 @@ render_resources records
|
||||||
, HH.td_ [ Bulma.p $ maybe "" show rr.weight ]
|
, HH.td_ [ Bulma.p $ maybe "" show rr.weight ]
|
||||||
, HH.td_ [ Bulma.p $ maybe "" show rr.port ]
|
, HH.td_ [ Bulma.p $ maybe "" show rr.port ]
|
||||||
, HH.td_ [ Bulma.p rr.target ]
|
, HH.td_ [ Bulma.p rr.target ]
|
||||||
, HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
, if rr.readonly
|
||||||
, HH.td_ [ Bulma.btn_delete (DeleteRRModal rr.rrid) ]
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
|
else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
||||||
|
, if rr.readonly
|
||||||
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
|
else HH.td_ [ Bulma.btn_delete (DeleteRRModal rr.rrid) ]
|
||||||
]
|
]
|
||||||
"MX" ->
|
"MX" ->
|
||||||
[ Bulma.txt_name rr.rrtype
|
[ Bulma.txt_name rr.rrtype
|
||||||
|
@ -752,16 +759,24 @@ render_resources records
|
||||||
, HH.td_ [ Bulma.p $ show rr.ttl ]
|
, HH.td_ [ Bulma.p $ show rr.ttl ]
|
||||||
, HH.td_ [ Bulma.p $ maybe "" show rr.priority ]
|
, HH.td_ [ Bulma.p $ maybe "" show rr.priority ]
|
||||||
, HH.td_ [ Bulma.p rr.target ]
|
, HH.td_ [ Bulma.p rr.target ]
|
||||||
, HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
, if rr.readonly
|
||||||
, HH.td_ [ Bulma.btn_delete (DeleteRRModal rr.rrid) ]
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
|
else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
||||||
|
, if rr.readonly
|
||||||
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
|
else HH.td_ [ Bulma.btn_delete (DeleteRRModal rr.rrid) ]
|
||||||
]
|
]
|
||||||
_ ->
|
_ ->
|
||||||
[ Bulma.txt_name rr.rrtype
|
[ Bulma.txt_name rr.rrtype
|
||||||
, HH.td_ [ Bulma.p rr.name]
|
, HH.td_ [ Bulma.p rr.name]
|
||||||
, HH.td_ [ Bulma.p $ show rr.ttl ]
|
, HH.td_ [ Bulma.p $ show rr.ttl ]
|
||||||
, HH.td_ [ Bulma.p rr.target ]
|
, HH.td_ [ Bulma.p rr.target ]
|
||||||
, HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
, if rr.readonly
|
||||||
, HH.td_ [ Bulma.btn_delete (DeleteRRModal rr.rrid) ]
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
|
else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]
|
||||||
|
, if rr.readonly
|
||||||
|
then HH.td_ [ Bulma.btn_readonly ]
|
||||||
|
else HH.td_ [ Bulma.btn_delete (DeleteRRModal rr.rrid) ]
|
||||||
]
|
]
|
||||||
|
|
||||||
baseRecords :: Array String
|
baseRecords :: Array String
|
||||||
|
|
|
@ -138,6 +138,21 @@ btn_add action = btn_ C.is_info "Add" action
|
||||||
btn_delete :: forall w i. i -> HH.HTML w i
|
btn_delete :: forall w i. i -> HH.HTML w i
|
||||||
btn_delete action = btn_ (C.is_small <> C.is_danger) "remove" action
|
btn_delete action = btn_ (C.is_small <> C.is_danger) "remove" action
|
||||||
|
|
||||||
|
btn_modify_ro :: forall w i. HH.HTML w i
|
||||||
|
btn_modify_ro = btn_ro (C.is_small <> C.is_warning) "modify"
|
||||||
|
|
||||||
|
btn_readonly :: forall w i. HH.HTML w i
|
||||||
|
btn_readonly = btn_ro (C.is_small <> C.is_warning) "read only"
|
||||||
|
|
||||||
|
btn_delete_ro :: forall w i. HH.HTML w i
|
||||||
|
btn_delete_ro = btn_ro (C.is_small <> C.is_warning) "remove"
|
||||||
|
|
||||||
|
btn_ro :: forall w i. Array HH.ClassName -> String -> HH.HTML w i
|
||||||
|
btn_ro classes title
|
||||||
|
= HH.button
|
||||||
|
[ HP.classes $ C.button <> classes
|
||||||
|
] [ HH.text title ]
|
||||||
|
|
||||||
-- | Create a `level`, different components that should appear on the same horizontal line.
|
-- | Create a `level`, different components that should appear on the same horizontal line.
|
||||||
-- | First argument, elements that should appear on the left, second on the right.
|
-- | First argument, elements that should appear on the left, second on the right.
|
||||||
level :: forall w i. Array (HH.HTML w i) -> Array (HH.HTML w i) -> HH.HTML w i
|
level :: forall w i. Array (HH.HTML w i) -> Array (HH.HTML w i) -> HH.HTML w i
|
||||||
|
@ -174,11 +189,14 @@ render_input password id placeholder action value cond
|
||||||
false -> []
|
false -> []
|
||||||
true -> [ HP.type_ HP.InputPassword ]
|
true -> [ HP.type_ HP.InputPassword ]
|
||||||
|
|
||||||
|
div_field :: forall w i. Array (HH.HTML w i) -> HH.HTML w i
|
||||||
div_field = HH.div [HP.classes (C.field <> C.is_horizontal)]
|
div_field = HH.div [HP.classes (C.field <> C.is_horizontal)]
|
||||||
|
|
||||||
|
div_field_label :: forall w i. String -> String -> HH.HTML w i
|
||||||
div_field_label id title = HH.div [HP.classes (C.field_label <> C.normal)]
|
div_field_label id title = HH.div [HP.classes (C.field_label <> C.normal)]
|
||||||
[HH.label [ HP.classes C.label, HP.for id ] [ HH.text title ]]
|
[HH.label [ HP.classes C.label, HP.for id ] [ HH.text title ]]
|
||||||
|
|
||||||
|
div_field_content :: forall w i. HH.HTML w i -> HH.HTML w i
|
||||||
div_field_content content
|
div_field_content content
|
||||||
= HH.div [ HP.classes C.field_body ]
|
= HH.div [ HP.classes C.field_body ]
|
||||||
[ HH.div [HP.classes C.field ] [ HH.div [HP.classes C.control ] [ content ] ] ]
|
[ HH.div [HP.classes C.field ] [ HH.div [HP.classes C.control ] [ content ] ] ]
|
||||||
|
|
Loading…
Reference in New Issue