Commit 5617ee80 authored by david Chavalarias's avatar david Chavalarias

Merge branch 'dev' of https://gitlab.iscpif.fr/gargantext/purescript-gargantext into dev-david

parents 8f0e61d4 8343397e
......@@ -46,6 +46,7 @@ bundle.js
/.lesshst
/dist/js/**/*.map
/dist/styles/**/*.map
/dist/bundle.min.js*
# IDE specific
.vscode
This diff is collapsed.
......@@ -52,21 +52,16 @@ $ nix-env --version
nix-env (Nix) 2.11.0
```
Enable de flake experimental feature :
```shell
mkdir ~/.config/nix
echo "experimental-features = nix-command flakes" > ~/.config/nix/nix.conf
```
To build the frontend just execute the install script at the root at the project:
```shell
./install
./bin/install
```
Alternatively, you can use
```shell
nix -L develop
```
and then run the `npm` commands manually.
**Local instance is ready!** (Example: http://localhost:8000/)
......
......@@ -15,7 +15,7 @@ import Gargantext.Hooks.FirstEffect (useFirstEffect')
import Gargantext.Router as Router
import Gargantext.Sessions as Sessions
import Gargantext.Types (CacheParams, defaultCacheParams)
import Gargantext.Utils (getter)
import Gargantext.Utils (getter, host)
import Gargantext.Utils.Reactix as R2
import Reactix as R
import Reactix.Utils as RU
......@@ -110,7 +110,8 @@ mainAppCpt = here.component "main" cpt where
let session = Seq.head sessions
-- here.log2 "[mainApp] sessions" sessions'
wsProto <- Notifications.wsProtocol
Notifications.connect ws (wsProto <> "://localhost:8008/ws") session
h <- host
Notifications.connect ws (wsProto <> "://" <> h <> "/ws") session
-- T.write_ ws boxes.wsNotification
-- NOTE: Dummy subscription
-- let action = NotificationsT.InsertCallback (NotificationsT.UpdateTree (-1)) "some-uuid" (\_ -> here.log "callback!")
......
......@@ -2,7 +2,7 @@ module Gargantext.Components.Forest.Tree.Node.Action.Update where
import Gargantext.Prelude
import Gargantext.Components.Forest.Tree.Node.Action.Update.Types (Charts(..), Granularity(..), GraphMetric(..), Method(..), PartitionMethod(..), UpdateNodeParams(..), Strength(..), BridgenessMethod(..))
import Gargantext.Components.Forest.Tree.Node.Action.Update.Types (Charts(..), Granularity(..), GraphMetric(..), Method(..), PartitionMethod(..), UpdateNodeParams(..), Strength(..), BridgenessMethod(..), UpdateNodeConfigGraph(..))
import DOM.Simple.Console (log3)
import Data.Either (Either(..))
......@@ -52,6 +52,7 @@ updateCpt = here.component "update" cpt where
cpt props@{ nodeType: NodeList } _ = pure $ updateNodeList props []
cpt props@{ nodeType: NodeTexts } _ = pure $ updateTexts props []
cpt props@{ nodeType: Phylo } _ = pure $ updatePhylo props
cpt props@{ nodeType: Corpus } _ = pure $ updateCorpus props
cpt props@{ nodeType: _ } _ = pure $ updateOther props []
updateDashboard :: R2.Component UpdateProps
......@@ -100,13 +101,14 @@ updateGraphCpt = here.component "updateGraph" cpt where
callback :: Action -> Aff Unit
callback = dispatch >=> \_ -> dispatch CloseBox
let action = UpdateNode $ UpdateNodeParamsGraph { methodGraphMetric: methodGraphMetric'
, methodGraphClustering: methodGraphClustering'
, methodGraphBridgeness: methodGraphBridgeness'
, methodGraphEdgesStrength : methodGraphEdgesStrength'
, methodGraphNodeType1 : methodGraphNodeType1'
, methodGraphNodeType2 : methodGraphNodeType2'
}
let config = UpdateNodeConfigGraph { methodGraphMetric: methodGraphMetric'
, methodGraphClustering: methodGraphClustering'
, methodGraphBridgeness: methodGraphBridgeness'
, methodGraphEdgesStrength : methodGraphEdgesStrength'
, methodGraphNodeType1 : methodGraphNodeType1'
, methodGraphNodeType2 : methodGraphNodeType2'
}
let action = UpdateNode $ UpdateNodeParamsGraph { methodGraph: config }
pure $
Tools.panelWithSubmitButton { action
......@@ -211,6 +213,58 @@ updatePhyloCpt = here.component "updatePhylo" cpt where
, status: Enabled
} `merge` parser.toFormData defaultData
updateCorpus :: R2.Leaf UpdateProps
updateCorpus = R2.leaf updateCorpusCpt
updateCorpusCpt :: R.Component UpdateProps
updateCorpusCpt = here.component "updateTexts" cpt where
cpt { dispatch } _ = do
-- nodeList parameters
methodList <- T.useBox Basic
methodList' <- T.useLive T.unequal methodList
-- method for graph metric
methodGraphMetric <- T.useBox Order1
methodGraphMetric' <- T.useLive T.unequal methodGraphMetric
let graphConfig = UpdateNodeConfigGraph { methodGraphMetric: methodGraphMetric'
, methodGraphEdgesStrength: Strong
, methodGraphClustering: Spinglass
, methodGraphBridgeness: BridgenessMethod_Basic
, methodGraphNodeType1: GT.CTabTerms
, methodGraphNodeType2: GT.CTabTerms
}
let phyloConfig = Phylo.UpdateData { defaultMode: true
, proximity: 0.5
, synchrony: 0.5
, quality: 0.8
, exportFilter: 3.0
, timeUnit: Phylo.Year $ Phylo.TimeUnitCriteria
{ period: 3
, step: 1
, matchingFrame: 5
}
, clique: Phylo.MaxClique
{ size: 5
, threshold: 0.0001
, filter: Phylo.ByThreshold
}
}
let methodTexts = Both
pure $
Tools.panelWithSubmitButton { action: UpdateNode $ UpdateNodeParamsCorpus { methodTexts: methodTexts
, methodList: methodList' }
, dispatch
, mError: Nothing }
[ H.p { } [ H.text "Update both term and document indexing."]
, H.p { } [ H.text "Term update mode"
, Tools.formChoiceSafe { items: [Basic, Advanced, WithModel]
, default: methodList'
, callback: \val -> T.write_ val methodList
, print: show } [] ]
, H.text "If you also want to update a graph or a phylo, use the update action on the respective node."
]
updateNodeList :: R2.Component UpdateProps
updateNodeList = R.createElement updateNodeListCpt
updateNodeListCpt :: R.Component UpdateProps
......
......@@ -10,20 +10,29 @@ import Gargantext.Types as GT
import Simple.JSON as JSON
import Simple.JSON.Generics as JSONG
newtype UpdateNodeConfigGraph = UpdateNodeConfigGraph { methodGraphMetric :: GraphMetric
, methodGraphEdgesStrength :: Strength
, methodGraphClustering :: PartitionMethod
, methodGraphBridgeness :: BridgenessMethod
, methodGraphNodeType1 :: GT.CTabNgramType
, methodGraphNodeType2 :: GT.CTabNgramType
}
derive instance Eq UpdateNodeConfigGraph
derive instance Generic UpdateNodeConfigGraph _
instance Show UpdateNodeConfigGraph where show = genericShow
derive newtype instance JSON.ReadForeign UpdateNodeConfigGraph
derive newtype instance JSON.WriteForeign UpdateNodeConfigGraph
data UpdateNodeParams
= UpdateNodeParamsList { methodList :: Method }
| UpdateNodeParamsGraph { methodGraphMetric :: GraphMetric
, methodGraphEdgesStrength :: Strength
, methodGraphClustering :: PartitionMethod
, methodGraphBridgeness :: BridgenessMethod
, methodGraphNodeType1 :: GT.CTabNgramType
, methodGraphNodeType2 :: GT.CTabNgramType
}
| UpdateNodeParamsTexts { methodTexts :: Granularity }
| UpdateNodeParamsBoard { methodBoard :: Charts }
| UpdateNodeParamsPhylo { methodPhylo :: Phylo.UpdateData }
| UpdateNodeParamsLink { methodLink :: LinkNodeReq }
= UpdateNodeParamsList { methodList :: Method }
| UpdateNodeParamsGraph { methodGraph :: UpdateNodeConfigGraph }
| UpdateNodeParamsTexts { methodTexts :: Granularity }
| UpdateNodeParamsCorpus { methodTexts :: Granularity
, methodList :: Method }
| UpdateNodeParamsBoard { methodBoard :: Charts }
| UpdateNodeParamsPhylo { methodPhylo :: Phylo.UpdateData }
| UpdateNodeParamsLink { methodLink :: LinkNodeReq }
derive instance Eq UpdateNodeParams
derive instance Generic UpdateNodeParams _
instance Show UpdateNodeParams where show = genericShow
......@@ -32,12 +41,15 @@ instance JSON.WriteForeign UpdateNodeParams where
writeImpl (UpdateNodeParamsList { methodList }) =
JSON.writeImpl { type: "UpdateNodeParamsList"
, methodList }
writeImpl (UpdateNodeParamsGraph { methodGraphMetric, methodGraphClustering, methodGraphBridgeness, methodGraphEdgesStrength, methodGraphNodeType1, methodGraphNodeType2}) =
writeImpl (UpdateNodeParamsGraph { methodGraph }) =
JSON.writeImpl { type: "UpdateNodeParamsGraph"
, methodGraphMetric, methodGraphClustering, methodGraphBridgeness, methodGraphEdgesStrength, methodGraphNodeType1, methodGraphNodeType2}
, methodGraph }
writeImpl (UpdateNodeParamsTexts { methodTexts }) =
JSON.writeImpl { type: "UpdateNodeParamsTexts"
, methodTexts }
writeImpl (UpdateNodeParamsCorpus { methodTexts, methodList }) =
JSON.writeImpl { type: "UpdateNodeParamsCorpus"
, methodTexts, methodList }
writeImpl (UpdateNodeParamsBoard { methodBoard }) =
JSON.writeImpl { type: "UpdateNodeParamsBoard"
, methodBoard }
......
......@@ -152,7 +152,8 @@ settingsBoxLens Calc =
, ShareURL
, Delete ]
settingsBoxLens Corpus =
_buttons .~ [ Add [ Graph
_buttons .~ [ ReloadWithSettings
, Add [ Graph
, Notes
, Calc
, NodeTexts
......
......@@ -122,7 +122,7 @@ options ::
}
options =
-- Layout
{ showControls : false
{ showControls : true
, sideTab : GET.SideTabLegend
, showSidebar : GT.InitialClosed
, showDoc : Nothing
......
......@@ -112,6 +112,8 @@ href = location >>= WHL.href
protocol :: Effect String
protocol = location >>= WHL.protocol
host :: Effect String
host = location >>= WHL.host
nbsp :: Int -> String
nbsp = nbsp' ""
......
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