Commit 83807ead authored by Alexandre Delanoë's avatar Alexandre Delanoë

[FEAT] checkboxes

parent 5052a542
...@@ -5,7 +5,7 @@ import Data.Maybe (Maybe(..)) ...@@ -5,7 +5,7 @@ import Data.Maybe (Maybe(..))
import Data.Tuple.Nested ((/\)) import Data.Tuple.Nested ((/\))
import Effect.Aff (Aff) import Effect.Aff (Aff)
import Gargantext.Components.Forest.Tree.Node.Action (Action(..)) import Gargantext.Components.Forest.Tree.Node.Action (Action(..))
import Gargantext.Components.Forest.Tree.Node.Tools (submitButton, panel, checkbox) import Gargantext.Components.Forest.Tree.Node.Tools (submitButton, panel, checkbox, checkboxes)
import Gargantext.Components.Forest.Tree.Node.Tools.SubTree (SubTreeParamsIn, subTreeView, SubTreeOut(..)) import Gargantext.Components.Forest.Tree.Node.Tools.SubTree (SubTreeParamsIn, subTreeView, SubTreeOut(..))
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.Routes (SessionRoute(..)) import Gargantext.Routes (SessionRoute(..))
...@@ -13,7 +13,7 @@ import Gargantext.Sessions (Session, put_) ...@@ -13,7 +13,7 @@ import Gargantext.Sessions (Session, put_)
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 Data.Set as Set
mergeNodeReq :: Session -> GT.ID -> GT.ID -> Aff (Array GT.ID) mergeNodeReq :: Session -> GT.ID -> GT.ID -> Aff (Array GT.ID)
mergeNodeReq session fromId toId = mergeNodeReq session fromId toId =
...@@ -24,7 +24,8 @@ mergeNode p@{dispatch, subTreeParams, id, nodeType, session} = do ...@@ -24,7 +24,8 @@ mergeNode p@{dispatch, subTreeParams, id, nodeType, session} = do
subTreeOut@(subTreeOutParams /\ setSubTreeOut) :: R.State (Maybe SubTreeOut) subTreeOut@(subTreeOutParams /\ setSubTreeOut) :: R.State (Maybe SubTreeOut)
<- R.useState' Nothing <- R.useState' Nothing
merge <- R.useState' false merge <- R.useState' false
options <- R.useState' (Set.singleton GT.GraphTerm)
let button = case subTreeOutParams of let button = case subTreeOutParams of
Nothing -> H.div {} [] Nothing -> H.div {} []
...@@ -39,6 +40,9 @@ mergeNode p@{dispatch, subTreeParams, id, nodeType, session} = do ...@@ -39,6 +40,9 @@ mergeNode p@{dispatch, subTreeParams, id, nodeType, session} = do
, nodeType , nodeType
, session , session
} }
, H.div {} [ H.text "Merge which list?"
, checkboxes [GT.GraphTerm, GT.CandidateTerm, GT.StopTerm] options
]
, H.div {className: "checkbox"} [checkbox merge, H.text "Merge data?"] , H.div {className: "checkbox"} [checkbox merge, H.text "Merge data?"]
] button ] button
...@@ -16,5 +16,6 @@ hasStatus _ (Merge _) = Dev ...@@ -16,5 +16,6 @@ hasStatus _ (Merge _) = Dev
hasStatus _ (Move _) = Test hasStatus _ (Move _) = Test
hasStatus _ (Documentation _) = Dev hasStatus _ (Documentation _) = Dev
hasStatus Annuaire Upload = Dev hasStatus Annuaire Upload = Dev
hasStatus Texts Upload = Dev
hasStatus _ _ = Stable hasStatus _ _ = Stable
...@@ -2,14 +2,17 @@ module Gargantext.Components.Forest.Tree.Node.Tools ...@@ -2,14 +2,17 @@ module Gargantext.Components.Forest.Tree.Node.Tools
where where
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Set (Set)
import Data.Set as Set
import Data.String as S import Data.String as S
import Data.Tuple.Nested ((/\)) import Data.Tuple.Nested ((/\))
import Effect (Effect) import Effect (Effect)
import Effect.Aff (Aff, launchAff) import Effect.Aff (Aff, launchAff)
import Effect.Uncurried (mkEffectFn1) import Effect.Uncurried (mkEffectFn1)
import Gargantext.Components.Forest.Tree.Node.Action import Gargantext.Components.Forest.Tree.Node.Action
import Gargantext.Prelude (Unit, bind, const, discard, pure, show, ($), (<<<), (<>), read, map, class Read, class Show, not) import Gargantext.Prelude (Unit, bind, const, discard, pure, show, ($), (<<<), (<>), read, map, class Read, class Show, not, class Ord)
import Gargantext.Types (ID) import Gargantext.Types (ID)
import Gargantext.Utils (toggleSet)
import Gargantext.Utils.Reactix as R2 import Gargantext.Utils.Reactix as R2
import Reactix as R import Reactix as R
import Reactix.DOM.HTML as H import Reactix.DOM.HTML as H
...@@ -203,7 +206,7 @@ submitButtonHref action href = ...@@ -203,7 +206,7 @@ submitButtonHref action href =
------------------------------------------------------------------------ ------------------------------------------------------------------------
-- | CheckBox tools -- | CheckBox tools
-- checkboxes: Array of poolean values -- checkboxes: Array of poolean values (basic: without pending option)
-- checkbox : One boolean value only -- checkbox : One boolean value only
checkbox :: R.State Boolean -> R.Element checkbox :: R.State Boolean -> R.Element
...@@ -215,3 +218,25 @@ checkbox ( val /\ set ) = ...@@ -215,3 +218,25 @@ checkbox ( val /\ set ) =
, on: { click: \_ -> set $ const $ not val} , on: { click: \_ -> set $ const $ not val}
} }
data CheckBoxes = Multiple | Uniq
checkboxes :: forall a
. Ord a
=> Show a
=> Array a
-> R.State (Set a)
-> R.Element
checkboxes xs (val /\ set) =
H.div {} $ map (\a -> H.div {} [ H.input { type: "checkbox"
, checked: Set.member a val
, on: { click: \_ -> set
$ const
$ toggleSet a val
}
}
, H.div {} [H.text $ show a]
]
) xs
...@@ -10,7 +10,7 @@ import Data.Generic.Rep.Show (genericShow) ...@@ -10,7 +10,7 @@ import Data.Generic.Rep.Show (genericShow)
import Data.Int (toNumber) import Data.Int (toNumber)
import Data.Maybe (Maybe(..), maybe, fromMaybe) import Data.Maybe (Maybe(..), maybe, fromMaybe)
import Effect.Aff (Aff) import Effect.Aff (Aff)
import Gargantext.Prelude (class Read, read) import Gargantext.Prelude (class Read, read, class Show, show)
import Prelude import Prelude
import Prim.Row (class Union) import Prim.Row (class Union)
import URI.Query (Query) import URI.Query (Query)
......
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