Commit 0862c0a7 authored by arturo's avatar arturo

>>> continue

parent f4e6ba80
Pipeline #3333 failed with stage
...@@ -9,7 +9,7 @@ import Data.Maybe (Maybe(..)) ...@@ -9,7 +9,7 @@ import Data.Maybe (Maybe(..))
import Data.Sequence as Seq import Data.Sequence as Seq
import Data.Tuple.Nested ((/\)) import Data.Tuple.Nested ((/\))
import Effect (Effect) import Effect (Effect)
import Effect.Aff (launchAff_) import Effect.Aff (Milliseconds(..), delay, launchAff_)
import Effect.Class (liftEffect) import Effect.Class (liftEffect)
import Gargantext.Components.App.Store as AppStore import Gargantext.Components.App.Store as AppStore
import Gargantext.Components.Bootstrap as B import Gargantext.Components.Bootstrap as B
...@@ -272,35 +272,70 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -272,35 +272,70 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
date' /\ _ date' /\ _
<- R2.useBox' defaultData.date <- R2.useBox' defaultData.date
onNamePending' /\ onNamePending
<- R2.useBox' false
onTitlePending' /\ onTitlePending
<- R2.useBox' false
onDescPending' /\ onDescPending
<- R2.useBox' false
onQueryPending' /\ onQueryPending
<- R2.useBox' false
onAuthorsPending' /\ onAuthorsPending
<- R2.useBox' false
-- | Behaviors -- | Behaviors
-- | -- |
let let
onRenameCorpus newName = do onRenameCorpus newName = do
saveCorpusName {name: newName, session, nodeId} saveCorpusName { name: newName
, session
, nodeId
, onPending: onNamePending
}
onRenameTitle newTitle = do onRenameTitle newTitle = do
_ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {title = newTitle}) corpusInfoS _ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {title = newTitle}) corpusInfoS
corpusInfo <- T.read corpusInfoS corpusInfo <- T.read corpusInfoS
let newFields = saveCorpusInfo corpusInfo h.fields let newFields = saveCorpusInfo corpusInfo h.fields
save {fields: newFields, session, nodeId} save { fields: newFields
, session
, nodeId
, onPending: onTitlePending
}
onRenameDesc newDesc = do onRenameDesc newDesc = do
_ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {desc = newDesc}) corpusInfoS _ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {desc = newDesc}) corpusInfoS
corpusInfo <- T.read corpusInfoS corpusInfo <- T.read corpusInfoS
let newFields = saveCorpusInfo corpusInfo h.fields let newFields = saveCorpusInfo corpusInfo h.fields
save {fields: newFields, session, nodeId} save { fields: newFields
, session
, nodeId
, onPending: onDescPending
}
onRenameQuery newQuery = do onRenameQuery newQuery = do
_ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {query = newQuery}) corpusInfoS _ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {query = newQuery}) corpusInfoS
corpusInfo <- T.read corpusInfoS corpusInfo <- T.read corpusInfoS
let newFields = saveCorpusInfo corpusInfo h.fields let newFields = saveCorpusInfo corpusInfo h.fields
save {fields: newFields, session, nodeId} save { fields: newFields
, session
, nodeId
, onPending: onQueryPending
}
onRenameAuthors newAuthors = do onRenameAuthors newAuthors = do
_ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {authors = newAuthors}) corpusInfoS _ <- T.modify (\(CorpusInfo c) -> CorpusInfo $ c {authors = newAuthors}) corpusInfoS
corpusInfo <- T.read corpusInfoS corpusInfo <- T.read corpusInfoS
let newFields = saveCorpusInfo corpusInfo h.fields let newFields = saveCorpusInfo corpusInfo h.fields
save {fields: newFields, session, nodeId} save { fields: newFields
, session
, nodeId
, onPending: onAuthorsPending
}
-- | Render -- | Render
-- | -- |
...@@ -351,6 +386,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -351,6 +386,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
, type: "submit" , type: "submit"
, callback: const $ onRenameCorpus name' , callback: const $ onRenameCorpus name'
, className: "input-group-text" , className: "input-group-text"
, status: onNamePending' ?
Disabled $
Enabled
} }
[ [
B.icon B.icon
...@@ -397,6 +435,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -397,6 +435,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
, type: "submit" , type: "submit"
, callback: const $ onRenameTitle title' , callback: const $ onRenameTitle title'
, className: "input-group-text" , className: "input-group-text"
, status: onTitlePending' ?
Disabled $
Enabled
} }
[ [
B.icon B.icon
...@@ -443,6 +484,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -443,6 +484,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
, type: "submit" , type: "submit"
, callback: const $ onRenameDesc desc' , callback: const $ onRenameDesc desc'
, className: "input-group-text" , className: "input-group-text"
, status: onDescPending' ?
Disabled $
Enabled
} }
[ [
B.icon B.icon
...@@ -493,6 +537,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -493,6 +537,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
, type: "submit" , type: "submit"
, callback: const $ onRenameQuery query' , callback: const $ onRenameQuery query'
, className: "input-group-text" , className: "input-group-text"
, status: onQueryPending' ?
Disabled $
Enabled
} }
[ [
B.icon B.icon
...@@ -539,6 +586,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -539,6 +586,9 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
, type: "submit" , type: "submit"
, callback: const $ onRenameAuthors authors' , callback: const $ onRenameAuthors authors'
, className: "input-group-text" , className: "input-group-text"
, status: onAuthorsPending' ?
Disabled $
Enabled
} }
[ [
B.icon B.icon
...@@ -585,25 +635,43 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where ...@@ -585,25 +635,43 @@ tableHeaderEditionBlockCpt = here.component "tableHeaderEditionBlock" cpt where
----------------------------------------------------------- -----------------------------------------------------------
save :: {fields :: FTFieldList, session :: Session, nodeId :: Int} -> Effect Unit save ::
save {fields, session, nodeId} = do { fields :: FTFieldList
, session :: Session
, nodeId :: Int
, onPending :: T.Box Boolean
}
-> Effect Unit
save { fields, session, nodeId, onPending } = do
T.write_ true onPending
launchAff_ do launchAff_ do
res <- saveCorpus $ {hyperdata: Hyperdata {fields}, session, nodeId} res <- saveCorpus $ {hyperdata: Hyperdata {fields}, session, nodeId}
liftEffect $ do liftEffect $ do
_ <- case res of case res of
Left err -> here.warn2 "[corpusLayoutView] onClickSave RESTError" err Left err -> here.warn2 "[corpusLayoutView] onClickSave RESTError" err
_ -> pure unit _ -> pure unit
pure unit -- add a human minimal cognitive delay telling something has being executed
delay $ Milliseconds 200.0
saveCorpusName :: {name :: String, session :: Session, nodeId :: Int} -> Effect Unit liftEffect $ T.write_ false onPending
saveCorpusName {name, session, nodeId} = do
saveCorpusName ::
{ name :: String
, session :: Session
, nodeId :: Int
, onPending :: T.Box Boolean
}
-> Effect Unit
saveCorpusName { name, session, nodeId, onPending } = do
T.write_ true onPending
launchAff_ do launchAff_ do
res <- rename session nodeId $ RenameValue {text: name} res <- rename session nodeId $ RenameValue {text: name}
liftEffect $ do liftEffect $ do
_ <- case res of case res of
Left err -> here.warn2 "[corpusLayoutView] onClickSave RESTError" err Left err -> here.warn2 "[corpusLayoutView] onClickSave RESTError" err
_ -> pure unit _ -> pure unit
pure unit -- add a human minimal cognitive delay telling something has being executed
delay $ Milliseconds 200.0
liftEffect $ T.write_ false onPending
tableHeaderLayout :: R2.Component TableHeaderLayoutProps tableHeaderLayout :: R2.Component TableHeaderLayoutProps
tableHeaderLayout = R.createElement tableHeaderLayoutCpt tableHeaderLayout = R.createElement tableHeaderLayoutCpt
......
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