git.iko.soy/typeable/octopod
on master help sign in
Disable "add override button" (#68)
commit6fbd0e79bb20916b25de447b6f35ef87a2974a43 authorNikita <anisimoff.nikita@gmail.com> dateWed 8 Jul 2020, 16:48 (6 years ago) parentf799d00
5 files changed+24−6
dm-css+1−1 dm-frontend/src/Page/Deployment.hs+1−1 dm-frontend/src/Page/Popup/EditStaging.hs+4−2 dm-frontend/src/Page/Popup/NewStaging.hs+5−2 dm-frontend/src/Page/Utils.hs+13
dm-css+1−1

Submodule changed.

dm-frontend/src/Page/Deployment.hs+1−1
@@ -78,7 +78,7 @@ deploymentHead dfiDyn =
7878 pure never
7979 False -> mdo
8080 let btnState = not $ isPending $ dfi ^. field @"status"
81− btnEnabledDyn <- holdDyn btnState $ False <$ delEv
81+ btnEnabledDyn <- holdDyn btnState never
8282 editEv <- aButtonClassEnabled
8383 "page__action button button--edit popup-handler"
8484 "Edit staging"
dm-frontend/src/Page/Popup/EditStaging.hs+4−2
@@ -50,7 +50,6 @@ editStagingPopupHeader dname =
5050 divClass "popup__menu drop drop--actions" blank
5151 pure (closeEv, saveEv)
5252
53−
5453editStagingPopupBody
5554 :: MonadWidget t m
5655 => DeploymentFullInfo
@@ -95,7 +94,10 @@ envVarsInput evs = do
9594 addEv = clickEv $> Endo (\envs -> P.length envs =: emptyVar <> envs)
9695 envsDyn <- foldDyn appEndo initEnvs $ leftmost [ addEv, updEv ]
9796 (_, updEv) <- runEventWriterT $ listWithKey envsDyn envVarInput
98− clickEv <- buttonClass "overrides__add dash dash--add" "Add an override"
97+ let addDisabledDyn = all ( (/= "") . fst ) . M.elems <$> envsDyn
98+ clickEv <- buttonClassEnabled'
99+ "overrides__add dash dash--add" "Add an override" addDisabledDyn
100+ "dash--disabled"
99101 pure $ elems <$> envsDyn
100102
101103envVarInput
dm-frontend/src/Page/Popup/NewStaging.hs+5−2
@@ -89,7 +89,7 @@ errorHeader appErrEv = do
8989 el "b" $ text "App error: "
9090 text appErr
9191
92−envVarsInput :: MonadWidget t m => m (Dynamic t EnvPairs)
92+envVarsInput :: forall t m . MonadWidget t m => m (Dynamic t EnvPairs)
9393envVarsInput = do
9494 elClass "section" "staging__section" $ do
9595 elClass "h3" "staging__sub-heading" $ text "Overrides"
@@ -100,7 +100,10 @@ envVarsInput = do
100100 addEv = clickEv $> Endo (\envs -> P.length envs =: emptyVar <> envs)
101101 envsDyn <- foldDyn appEndo mempty $ leftmost [ addEv, updEv ]
102102 (_, updEv) <- runEventWriterT $ listWithKey envsDyn envVarInput
103− clickEv <- buttonClass "overrides__add dash dash--add" "Add an override"
103+ let addDisabledDyn = all ( (/= "") . fst ) . M.elems <$> envsDyn
104+ clickEv <- buttonClassEnabled'
105+ "overrides__add dash dash--add" "Add an override" addDisabledDyn
106+ "dash--disabled"
104107 pure $ elems <$> envsDyn
105108
106109envVarInput
dm-frontend/src/Page/Utils.hs+13
@@ -125,6 +125,19 @@ buttonClassEnabled cl lbl dDyn = do
125125 text lbl
126126 return $ domEvent Click bEl
127127
128+buttonClassEnabled'
129+ :: (DomBuilder t m, PostBuild t m)
130+ => Text -> Text -> Dynamic t Bool -> Text -> m (Event t ())
131+buttonClassEnabled' cl lbl dDyn disClass = do
132+ let
133+ attrDyn = ffor dDyn $ \case
134+ True -> "class" =: cl <> "type" =: "button"
135+ False -> "class" =: (cl <> " " <> disClass)
136+ <> "type" =: "button" <> "disabled" =: ""
137+ (bEl, _) <- elDynAttrWithStopPropagationEvent' Click "button" attrDyn $
138+ text lbl
139+ return $ domEvent Click bEl
140+
128141aButtonClass :: (DomBuilder t m, PostBuild t m) => Text -> Text -> m (Event t ())
129142aButtonClass cl lbl = do
130143 (bEl, _) <- elDynAttrWithStopPropagationEvent' Click "a"