Remove the last MessageToSend events from components.
This commit is contained in:
parent
507588cd66
commit
6d6899d809
3 changed files with 52 additions and 48 deletions
|
@ -616,9 +616,26 @@ handleAction = case _ of
|
||||||
H.tell _ws_dns unit (WS.ToSend message)
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
|
||||||
EventPageZone ev -> case ev of
|
EventPageZone ev -> case ev of
|
||||||
PageZone.MessageToSend message -> H.tell _ws_dns unit (WS.ToSend message)
|
|
||||||
PageZone.Log message -> handleAction $ Log message
|
PageZone.Log message -> handleAction $ Log message
|
||||||
PageZone.ToDomainList -> handleAction $ Routing DomainList
|
PageZone.ToDomainList -> handleAction $ Routing DomainList
|
||||||
|
PageZone.AskZoneFile domain -> do
|
||||||
|
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkAskGeneratedZoneFile { domain }
|
||||||
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
PageZone.AskNewToken domain rrid -> do
|
||||||
|
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkNewToken { domain, rrid }
|
||||||
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
PageZone.AskDeleteRR domain rrid -> do
|
||||||
|
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkDeleteRR { domain, rrid }
|
||||||
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
PageZone.AskSaveRR domain rr -> do
|
||||||
|
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkUpdateRR { domain, rr }
|
||||||
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
PageZone.AskAddRR domain rr -> do
|
||||||
|
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkAddRR { domain, rr }
|
||||||
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
PageZone.AskGetZone domain -> do
|
||||||
|
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkGetZone { domain }
|
||||||
|
H.tell _ws_dns unit (WS.ToSend message)
|
||||||
|
|
||||||
EventPageDomainList ev -> case ev of
|
EventPageDomainList ev -> case ev of
|
||||||
PageDomainList.AskShareToken domain -> do
|
PageDomainList.AskShareToken domain -> do
|
||||||
|
@ -832,7 +849,12 @@ handleAction = case _ of
|
||||||
pure unit
|
pure unit
|
||||||
|
|
||||||
EventPageMigration ev -> case ev of
|
EventPageMigration ev -> case ev of
|
||||||
PageMigration.MessageToSend message -> H.tell _ws_auth unit (WS.ToSend message)
|
PageMigration.AskNewEmailAddress email -> do
|
||||||
|
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkNewEmailAddress { email }
|
||||||
|
H.tell _ws_auth unit (WS.ToSend message)
|
||||||
|
PageMigration.AskNewEmailAddressTokenAddress token -> do
|
||||||
|
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkNewEmailAddressToken { token }
|
||||||
|
H.tell _ws_auth unit (WS.ToSend message)
|
||||||
PageMigration.Log message -> handleAction $ Log message
|
PageMigration.Log message -> handleAction $ Log message
|
||||||
|
|
||||||
-- | Send a received authentication daemon message `AuthD.AnswerMessage` to a component.
|
-- | Send a received authentication daemon message `AuthD.AnswerMessage` to a component.
|
||||||
|
|
|
@ -22,9 +22,7 @@ module App.Page.Migration where
|
||||||
import Prelude (Unit, between, bind, discard, map, ($), (<>))
|
import Prelude (Unit, between, bind, discard, map, ($), (<>))
|
||||||
|
|
||||||
import Data.Array as A
|
import Data.Array as A
|
||||||
import Data.ArrayBuffer.Types (ArrayBuffer)
|
|
||||||
import Data.Either (Either(..))
|
import Data.Either (Either(..))
|
||||||
-- import Data.Maybe (Maybe(..))
|
|
||||||
import Data.String as S
|
import Data.String as S
|
||||||
import Effect.Aff.Class (class MonadAff)
|
import Effect.Aff.Class (class MonadAff)
|
||||||
import Halogen as H
|
import Halogen as H
|
||||||
|
@ -33,18 +31,17 @@ import Halogen.HTML.Events as HE
|
||||||
import Web.Event.Event as Event
|
import Web.Event.Event as Event
|
||||||
import Web.Event.Event (Event)
|
import Web.Event.Event (Event)
|
||||||
|
|
||||||
-- import Data.Generic.Rep (class Generic)
|
|
||||||
-- import Data.Show.Generic (genericShow)
|
|
||||||
|
|
||||||
import Web as Web
|
import Web as Web
|
||||||
import Scroll (scrollToTop)
|
import Scroll (scrollToTop)
|
||||||
|
|
||||||
import App.Type.LogMessage
|
import App.Type.LogMessage
|
||||||
import App.Message.AuthenticationDaemon as AuthD
|
|
||||||
import App.DisplayErrors (show_error_email)
|
import App.DisplayErrors (show_error_email)
|
||||||
import App.Validation.Email as E
|
import App.Validation.Email as E
|
||||||
|
|
||||||
data Output = MessageToSend ArrayBuffer | Log LogMessage
|
data Output
|
||||||
|
= Log LogMessage
|
||||||
|
| AskNewEmailAddress String
|
||||||
|
| AskNewEmailAddressTokenAddress String
|
||||||
|
|
||||||
-- | Once the new email address has been accepted by `authd` as "pending",
|
-- | Once the new email address has been accepted by `authd` as "pending",
|
||||||
-- | this page automatically switches to a second tab.
|
-- | this page automatically switches to a second tab.
|
||||||
|
@ -181,12 +178,10 @@ handleAction = case _ of
|
||||||
state <- H.get
|
state <- H.get
|
||||||
case subject of
|
case subject of
|
||||||
EmailAddress -> do
|
EmailAddress -> do
|
||||||
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkNewEmailAddress { email: state.email }
|
H.raise $ AskNewEmailAddress state.email
|
||||||
H.raise $ MessageToSend message
|
|
||||||
H.raise $ Log $ SystemLog $ "Sending a new email address."
|
H.raise $ Log $ SystemLog $ "Sending a new email address."
|
||||||
Token -> do
|
Token -> do
|
||||||
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkNewEmailAddressToken { token: state.token }
|
H.raise $ AskNewEmailAddressTokenAddress state.token
|
||||||
H.raise $ MessageToSend message
|
|
||||||
H.raise $ Log $ SystemLog $ "Sending a validation token."
|
H.raise $ Log $ SystemLog $ "Sending a validation token."
|
||||||
|
|
||||||
show_error :: Error -> String
|
show_error :: Error -> String
|
||||||
|
|
|
@ -25,7 +25,6 @@ import Web.Storage.Storage as Storage
|
||||||
import Data.Eq (class Eq)
|
import Data.Eq (class Eq)
|
||||||
import Data.Array as A
|
import Data.Array as A
|
||||||
import Data.Int (fromString)
|
import Data.Int (fromString)
|
||||||
import Data.ArrayBuffer.Types (ArrayBuffer)
|
|
||||||
import Data.Array.NonEmpty as NonEmpty
|
import Data.Array.NonEmpty as NonEmpty
|
||||||
import Data.Either (Either(..))
|
import Data.Either (Either(..))
|
||||||
import Data.String (toLower)
|
import Data.String (toLower)
|
||||||
|
@ -62,10 +61,16 @@ import App.Type.RRForm (RRForm, RRUpdateValue(..), default_caa, default_rr, mkEm
|
||||||
-- | reconnect the websocket to `dnsmanagerd`.
|
-- | reconnect the websocket to `dnsmanagerd`.
|
||||||
|
|
||||||
data Output
|
data Output
|
||||||
= MessageToSend ArrayBuffer
|
= Log LogMessage
|
||||||
| Log LogMessage
|
|
||||||
| ToDomainList
|
| ToDomainList
|
||||||
|
|
||||||
|
| AskZoneFile String
|
||||||
|
| AskNewToken String Int
|
||||||
|
| AskDeleteRR String Int
|
||||||
|
| AskSaveRR String ResourceRecord
|
||||||
|
| AskAddRR String ResourceRecord
|
||||||
|
| AskGetZone String
|
||||||
|
|
||||||
-- | `App.Page.Zone` can receive messages from `dnsmanagerd`.
|
-- | `App.Page.Zone` can receive messages from `dnsmanagerd`.
|
||||||
|
|
||||||
data Query a
|
data Query a
|
||||||
|
@ -136,7 +141,7 @@ data Action
|
||||||
| RemoveRR RRId
|
| RemoveRR RRId
|
||||||
|
|
||||||
-- | Ask `dnsmanagerd` for the generated zone file.
|
-- | Ask `dnsmanagerd` for the generated zone file.
|
||||||
| AskZoneFile
|
| AskGeneratedZoneFile
|
||||||
|
|
||||||
-- | Modification of any attribute of the current RR.
|
-- | Modification of any attribute of the current RR.
|
||||||
| RRUpdate RRUpdateValue
|
| RRUpdate RRUpdateValue
|
||||||
|
@ -295,8 +300,7 @@ handleAction = case _ of
|
||||||
Initialize -> do
|
Initialize -> do
|
||||||
{ _domain } <- H.get
|
{ _domain } <- H.get
|
||||||
H.raise $ Log $ SystemLog $ "Asking the domain " <> _domain
|
H.raise $ Log $ SystemLog $ "Asking the domain " <> _domain
|
||||||
message <- H.liftEffect $ DNSManager.serialize $ DNSManager.MkGetZone { domain: _domain }
|
H.raise $ AskGetZone _domain
|
||||||
H.raise $ MessageToSend message
|
|
||||||
|
|
||||||
sessionstorage <- H.liftEffect $ Window.sessionStorage =<< HTML.window
|
sessionstorage <- H.liftEffect $ Window.sessionStorage =<< HTML.window
|
||||||
old_tab <- H.liftEffect $ Storage.getItem "current-zone-tab" sessionstorage
|
old_tab <- H.liftEffect $ Storage.getItem "current-zone-tab" sessionstorage
|
||||||
|
@ -341,13 +345,10 @@ handleAction = case _ of
|
||||||
-- | Try to add a resource record to the zone.
|
-- | Try to add a resource record to the zone.
|
||||||
-- | Can fail if the content of the form isn't valid.
|
-- | Can fail if the content of the form isn't valid.
|
||||||
AddRR t newrr -> do
|
AddRR t newrr -> do
|
||||||
state <- H.get
|
{ _domain } <- H.get
|
||||||
H.raise $ Log $ SystemLog $ "Add new " <> show t
|
H.raise $ Log $ SystemLog $ "Add new " <> show t
|
||||||
H.modify_ _ { _rr_form { _zonefile = Nothing } }
|
H.modify_ _ { _rr_form { _zonefile = Nothing } }
|
||||||
message <- H.liftEffect
|
H.raise $ AskAddRR _domain newrr
|
||||||
$ DNSManager.serialize
|
|
||||||
$ DNSManager.MkAddRR { domain: state._domain, rr: newrr }
|
|
||||||
H.raise $ MessageToSend message
|
|
||||||
|
|
||||||
-- | Update the currently displayed RR form (new or update RR).
|
-- | Update the currently displayed RR form (new or update RR).
|
||||||
UpdateCurrentRR field -> do
|
UpdateCurrentRR field -> do
|
||||||
|
@ -390,43 +391,29 @@ handleAction = case _ of
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveRR rr -> do
|
SaveRR rr -> do
|
||||||
state <- H.get
|
{ _domain } <- H.get
|
||||||
H.raise $ Log $ SystemLog $ "Updating resource record " <> show rr.rrid
|
H.raise $ Log $ SystemLog $ "Updating resource record " <> show rr.rrid
|
||||||
H.modify_ _ { _rr_form { _zonefile = Nothing } }
|
H.modify_ _ { _rr_form { _zonefile = Nothing } }
|
||||||
message <- H.liftEffect
|
H.raise $ AskSaveRR _domain rr
|
||||||
$ DNSManager.serialize
|
|
||||||
$ DNSManager.MkUpdateRR { domain: state._domain, rr: rr }
|
|
||||||
H.raise $ MessageToSend message
|
|
||||||
handleAction $ ResetTemporaryValues
|
handleAction $ ResetTemporaryValues
|
||||||
|
|
||||||
RemoveRR rr_id -> do
|
RemoveRR rr_id -> do
|
||||||
{ _domain } <- H.get
|
{ _domain } <- H.get
|
||||||
H.raise $ Log $ SystemLog $ "Ask to remove rr (rrid: " <> show rr_id <> ")"
|
|
||||||
H.modify_ _ { _rr_form { _zonefile = Nothing } }
|
H.modify_ _ { _rr_form { _zonefile = Nothing } }
|
||||||
-- Send a removal message.
|
H.raise $ Log $ SystemLog $ "Ask to remove a RR " <> show rr_id
|
||||||
message <- H.liftEffect
|
H.raise $ AskDeleteRR _domain rr_id
|
||||||
$ DNSManager.serialize
|
|
||||||
$ DNSManager.MkDeleteRR { domain: _domain, rrid: rr_id }
|
|
||||||
H.raise $ MessageToSend message
|
|
||||||
-- Modal doesn't need to be active anymore.
|
-- Modal doesn't need to be active anymore.
|
||||||
handleAction CancelModal
|
handleAction CancelModal
|
||||||
|
|
||||||
NewToken rr_id -> do
|
NewToken rr_id -> do
|
||||||
{ _domain } <- H.get
|
{ _domain } <- H.get
|
||||||
H.raise $ Log $ SystemLog $ "Ask a token for rrid " <> show rr_id
|
H.raise $ Log $ SystemLog $ "Ask a token for rrid " <> show rr_id
|
||||||
-- Send a NewToken message.
|
H.raise $ AskNewToken _domain rr_id
|
||||||
message <- H.liftEffect
|
|
||||||
$ DNSManager.serialize
|
|
||||||
$ DNSManager.MkNewToken { domain: _domain, rrid: rr_id }
|
|
||||||
H.raise $ MessageToSend message
|
|
||||||
|
|
||||||
AskZoneFile -> do
|
AskGeneratedZoneFile -> do
|
||||||
state <- H.get
|
{ _domain } <- H.get
|
||||||
H.raise $ Log $ SystemLog $ "Asking for the '" <> state._domain <> "' zonefile"
|
H.raise $ Log $ SystemLog $ "Asking for the '" <> _domain <> "' zonefile"
|
||||||
message <- H.liftEffect
|
H.raise $ AskZoneFile _domain
|
||||||
$ DNSManager.serialize
|
|
||||||
$ DNSManager.MkAskGeneratedZoneFile { domain: state._domain }
|
|
||||||
H.raise $ MessageToSend message
|
|
||||||
|
|
||||||
RRUpdate value_to_update -> do
|
RRUpdate value_to_update -> do
|
||||||
state <- H.get
|
state <- H.get
|
||||||
|
@ -515,7 +502,7 @@ render_new_records _
|
||||||
] []
|
] []
|
||||||
, Web.hr
|
, Web.hr
|
||||||
, Web.level [
|
, Web.level [
|
||||||
Web.btn "Get the final zone file" AskZoneFile
|
Web.btn "Get the final zone file" AskGeneratedZoneFile
|
||||||
] [HH.text "For debug purposes. ⚠"]
|
] [HH.text "For debug purposes. ⚠"]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue