Commit 42732ad0 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[DESIGN] uniform panels of box actions

parent c699ddc4
...@@ -10,7 +10,7 @@ import Gargantext.Routes (SessionRoute(..)) ...@@ -10,7 +10,7 @@ import Gargantext.Routes (SessionRoute(..))
import Gargantext.Types (NodeType(..)) import Gargantext.Types (NodeType(..))
import Gargantext.Components.Forest.Tree.Node.Action (Action(..)) import Gargantext.Components.Forest.Tree.Node.Action (Action(..))
import Reactix as R import Reactix as R
import Gargantext.Components.Forest.Tree.Node.Tools (submitButton) import Gargantext.Components.Forest.Tree.Node.Tools (submitButton, panel)
import Reactix.DOM.HTML as H import Reactix.DOM.HTML as H
-- TODO Delete with asyncTaskWithType -- TODO Delete with asyncTaskWithType
...@@ -20,25 +20,24 @@ deleteNode session nodeId = delete session $ NodeAPI GT.Node (Just nodeId) "" ...@@ -20,25 +20,24 @@ deleteNode session nodeId = delete session $ NodeAPI GT.Node (Just nodeId) ""
-- | Action : Delete -- | Action : Delete
actionDelete :: NodeType -> (Action -> Aff Unit) -> R.Hooks R.Element actionDelete :: NodeType -> (Action -> Aff Unit) -> R.Hooks R.Element
actionDelete NodeUser _ = do actionDelete NodeUser _ = do
pure $ R.fragment [ pure $ panel [ H.div { style: {margin: "10px"}}
H.div {style: {margin: "10px"}} [ H.text $ "Yes, we are RGPD compliant!"
[H.text $ "Yes, we are RGPD compliant!"
<> " But you can not delete User Node yet." <> " But you can not delete User Node yet."
<> " We are still on development." <> " We are still on development."
<> " Thanks for your comprehensin." <> " Thanks for your comprehensin."
] ]
] ]
(H.div {} [])
actionDelete _ dispatch = do actionDelete _ dispatch = do
pure $ R.fragment [ pure $ panel [ H.div {style: {margin: "10px"}}
H.div {style: {margin: "10px"}}
(map (\t -> H.p {} [H.text t]) (map (\t -> H.p {} [H.text t])
[ "Are your sure you want to delete it ?" [ "Are your sure you want to delete it ?"
, "If yes, click again below." , "If yes, click again below."
] ]
) )
, submitButton DeleteNode dispatch
] ]
(submitButton DeleteNode dispatch)
......
...@@ -5,14 +5,15 @@ import Gargantext.Types (NodeType) ...@@ -5,14 +5,15 @@ import Gargantext.Types (NodeType)
import Gargantext.Types as GT import Gargantext.Types as GT
import Reactix as R import Reactix as R
import Reactix.DOM.HTML as H import Reactix.DOM.HTML as H
import Gargantext.Components.Forest.Tree.Node.Tools (panel)
-- | Action: Show Documentation -- | Action: Show Documentation
actionDoc :: NodeType -> R.Hooks R.Element actionDoc :: NodeType -> R.Hooks R.Element
actionDoc nodeType = actionDoc nodeType =
pure $ R.fragment [ H.div { style: {margin: "10px"} } pure $ panel ( [ infoTitle nodeType ]
$ [ infoTitle nodeType ]
<> (map (\info -> H.p {} [H.text info]) $ docOf nodeType) <> (map (\info -> H.p {} [H.text info]) $ docOf nodeType)
] )
( H.div {} [])
where where
infoTitle :: NodeType -> R.Element infoTitle :: NodeType -> R.Element
infoTitle nt = H.div { style: {margin: "10px"}} infoTitle nt = H.div { style: {margin: "10px"}}
......
...@@ -64,6 +64,3 @@ downloadButton href label info = do ...@@ -64,6 +64,3 @@ downloadButton href label info = do
] ]
] ]
...@@ -9,7 +9,7 @@ import Effect.Aff (Aff, launchAff) ...@@ -9,7 +9,7 @@ import Effect.Aff (Aff, launchAff)
import Effect.Class (liftEffect) import Effect.Class (liftEffect)
import Gargantext.Components.Forest.Tree.Node.Action (Action(..), Props) import Gargantext.Components.Forest.Tree.Node.Action (Action(..), Props)
import Gargantext.Components.Forest.Tree.Node.Action.Upload.Types (FileType(..), UploadFileContents(..)) import Gargantext.Components.Forest.Tree.Node.Action.Upload.Types (FileType(..), UploadFileContents(..))
import Gargantext.Components.Forest.Tree.Node.Tools (fragmentPT, formChoiceSafe) import Gargantext.Components.Forest.Tree.Node.Tools (fragmentPT, formChoiceSafe, panel)
import Gargantext.Components.Lang (Lang(..)) import Gargantext.Components.Lang (Lang(..))
import Gargantext.Prelude (class Show, Unit, discard, bind, const, id, map, pure, show, unit, void, ($), read) import Gargantext.Prelude (class Show, Unit, discard, bind, const, id, map, pure, show, unit, void, ($), read)
import Gargantext.Routes as GR import Gargantext.Routes as GR
...@@ -65,10 +65,7 @@ uploadFileViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadFileView" cpt ...@@ -65,10 +65,7 @@ uploadFileViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadFileView" cpt
fileType@(_ /\ setFileType) <- R.useState' CSV fileType@(_ /\ setFileType) <- R.useState' CSV
lang@( _chosenLang /\ setLang) <- R.useState' EN lang@( _chosenLang /\ setLang) <- R.useState' EN
pure $ let bodies = [ H.div { className:"col-md-6 flex-space-around"}
H.div {className:""}
[ H.div {className:"row"}
[ H.div {className:"col-md-6 flex-space-around"}
[ H.input { type: "file" [ H.input { type: "file"
, placeholder: "Choose file" , placeholder: "Choose file"
, on: {change: onChangeContents mFile} , on: {change: onChangeContents mFile}
...@@ -86,10 +83,7 @@ uploadFileViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadFileView" cpt ...@@ -86,10 +83,7 @@ uploadFileViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadFileView" cpt
[ formChoiceSafe [EN, FR, No_extraction, Universal] EN setLang ] [ formChoiceSafe [EN, FR, No_extraction, Universal] EN setLang ]
] ]
, H.div { className : "panel-footer" } let footer = H.div {} [ uploadButton { dispatch
[ H.div {} []
, H.div {className:"flex-center"}
[ uploadButton { dispatch
, fileType , fileType
, lang , lang
, id , id
...@@ -97,8 +91,7 @@ uploadFileViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadFileView" cpt ...@@ -97,8 +91,7 @@ uploadFileViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadFileView" cpt
, nodeType , nodeType
} }
] ]
] pure $ panel bodies footer
]
renderOptionFT :: FileType -> R.Element renderOptionFT :: FileType -> R.Element
renderOptionFT opt = H.option {} [ H.text $ show opt ] renderOptionFT opt = H.option {} [ H.text $ show opt ]
...@@ -299,17 +292,20 @@ uploadTermListViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadTermListView" cpt ...@@ -299,17 +292,20 @@ uploadTermListViewCpt = R.hooksComponent "G.C.F.T.N.A.U.UploadTermListView" cpt
where where
cpt {dispatch, id, nodeType} _ = do cpt {dispatch, id, nodeType} _ = do
mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing
let body = H.input { type: "file"
pure $ H.div {} [
H.div {} [ H.input { type: "file"
, placeholder: "Choose file" , placeholder: "Choose file"
, on: {change: onChangeContents mFile} , on: {change: onChangeContents mFile}
} }
]
, H.div {} [ uploadTermButton { dispatch, id, mFile, nodeType } ] let footer = H.div {} [ uploadTermButton { dispatch
, id
, mFile
, nodeType
}
] ]
pure $ panel [body] footer
onChangeContents :: forall e. R.State (Maybe UploadFile) onChangeContents :: forall e. R.State (Maybe UploadFile)
-> E.SyntheticEvent_ e -> E.SyntheticEvent_ e
-> Effect Unit -> Effect Unit
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment