Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
153
Issues
153
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
purescript-gargantext
Commits
e9280bbd
Commit
e9280bbd
authored
Sep 08, 2025
by
Fabien Maniere
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '749-dev-sidebar-related-terms-ordering' into 'dev'
Resolve "Problem with related terms" See merge request
!518
parents
632ce6a4
643e6854
Pipeline
#7863
passed with stages
in 24 minutes and 29 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
15 deletions
+18
-15
Sidebar.purs
src/Gargantext/Components/GraphExplorer/Sidebar.purs
+5
-10
Types.purs
src/Gargantext/Hooks/Sigmax/Types.purs
+13
-5
No files found.
src/Gargantext/Components/GraphExplorer/Sidebar.purs
View file @
e9280bbd
...
@@ -513,11 +513,11 @@ neighborhoodCpt = R.memo' $ here.component "neighborhood" cpt
...
@@ -513,11 +513,11 @@ neighborhoodCpt = R.memo' $ here.component "neighborhood" cpt
flip T.listen expandNeighborhood onExpandNeighborhoodChange
flip T.listen expandNeighborhood onExpandNeighborhoodChange
R.useEffect1' selectedNodeIds' do
R.useEffect1' selectedNodeIds' do
let
refreshed = neighbourBadges
graph' selectedNodeIds'
let
neighbours' = SigmaxT.neighborsSortedByEdgeWeight
graph' selectedNodeIds'
let count =
Seq.length refreshed
let count =
A.length neighbours'
let ordered = A.sortWith (\n -> -n.size) $ Seq.toUnfoldable refreshed
T.write_
(count - 1)
termCountBox
T.write_
count
termCountBox
T.write_
ordered
termListBox
T.write_
neighbours'
termListBox
T.write_ false showMoreBox
T.write_ false showMoreBox
-- | Render
-- | Render
...
@@ -684,11 +684,6 @@ badgeSize minSize maxSize size =
...
@@ -684,11 +684,6 @@ badgeSize minSize maxSize size =
badges :: SigmaxT.SGraph -> SigmaxT.NodeIds -> Seq.Seq (Record SigmaxT.Node)
badges :: SigmaxT.SGraph -> SigmaxT.NodeIds -> Seq.Seq (Record SigmaxT.Node)
badges graph selectedNodeIds = SigmaxT.graphNodes $ SigmaxT.nodesById graph selectedNodeIds
badges graph selectedNodeIds = SigmaxT.graphNodes $ SigmaxT.nodesById graph selectedNodeIds
neighbourBadges :: SigmaxT.SGraph -> SigmaxT.NodeIds -> Seq.Seq (Record SigmaxT.Node)
neighbourBadges graph selectedNodeIds = SigmaxT.neighbors graph selectedNodes'
where
selectedNodes' = SigmaxT.graphNodes $ SigmaxT.nodesById graph selectedNodeIds
---------------------------------------------------------
---------------------------------------------------------
type SendPatches =
type SendPatches =
...
...
src/Gargantext/Hooks/Sigmax/Types.purs
View file @
e9280bbd
...
@@ -18,7 +18,7 @@ import Gargantext.Data.Louvain as Louvain
...
@@ -18,7 +18,7 @@ import Gargantext.Data.Louvain as Louvain
import Gargantext.Types as GT
import Gargantext.Types as GT
import Gargantext.Utils.Range as Range
import Gargantext.Utils.Range as Range
import Partial.Unsafe (unsafePartial)
import Partial.Unsafe (unsafePartial)
import Prelude (class Eq, class Show, ($), (&&), (==), (||), (<$>), mod, not, (<=))
import Prelude (class Eq, class Show, ($), (&&), (==), (||), (<$>), mod, not, (<=)
, negate
)
import Record.Unsafe (unsafeGet, unsafeSet)
import Record.Unsafe (unsafeGet, unsafeSet)
newtype Graph n e = Graph { edges :: Seq.Seq { | e }, nodes :: Seq.Seq { | n } }
newtype Graph n e = Graph { edges :: Seq.Seq { | e }, nodes :: Seq.Seq { | n } }
...
@@ -214,11 +214,13 @@ sub graph (Graph { nodes, edges }) = newGraph
...
@@ -214,11 +214,13 @@ sub graph (Graph { nodes, edges }) = newGraph
filteredEdges = edgesFilter edgeFilterFunc graph
filteredEdges = edgesFilter edgeFilterFunc graph
newGraph = nodesFilter (\n -> not (Set.member n.id nodeIds)) filteredEdges
newGraph = nodesFilter (\n -> not (Set.member n.id nodeIds)) filteredEdges
neighbors :: SGraph -> Seq.Seq (Record Node) -> Seq.Seq (Record Node)
-- | NOTE: The logic of this function is a bit iffy. See
neighbors g nodes = Seq.fromFoldable $ Set.unions [ if Set.size sources <= 1 then targets else sources ]
-- https://gitlab.iscpif.fr/gargantext/purescript-gargantext/issues/749
neighbors :: SGraph -> NodeIds -> Set.Set (Record Node)
neighbors g nodeIds = Set.unions [ if Set.size sources <= 1 then targets else sources ]
where
where
nodeIds
= Set.fromFoldable $ Seq.map _.id node
s
nodeIds
' = Set.fromFoldable nodeId
s
selectedEdges = neighboringEdges g nodeIds
selectedEdges = neighboringEdges g nodeIds
'
sources = Set.fromFoldable $ graphNodes $ nodesById g $ Set.fromFoldable $ Seq.map _.source selectedEdges
sources = Set.fromFoldable $ graphNodes $ nodesById g $ Set.fromFoldable $ Seq.map _.source selectedEdges
targets = Set.fromFoldable $ graphNodes $ nodesById g $ Set.fromFoldable $ Seq.map _.target selectedEdges
targets = Set.fromFoldable $ graphNodes $ nodesById g $ Set.fromFoldable $ Seq.map _.target selectedEdges
...
@@ -227,6 +229,12 @@ neighboringEdges g nodeIds = Seq.filter condition $ graphEdges g
...
@@ -227,6 +229,12 @@ neighboringEdges g nodeIds = Seq.filter condition $ graphEdges g
where
where
condition { source, target } = (Set.member source nodeIds) || (Set.member target nodeIds)
condition { source, target } = (Set.member source nodeIds) || (Set.member target nodeIds)
neighborsSortedByEdgeWeight :: SGraph -> NodeIds -> Array (Record Node)
neighborsSortedByEdgeWeight g nodeIds = A.nubByEq (\n1 n2 -> n1.id == n2.id) neighbourNodes
where
neighbourNodes = (\e -> if Set.member e.source nodeIds then e.targetNode else e.sourceNode) <$> edgesSorted
edgesSorted = A.sortWith (\e -> -e.weight) $ A.fromFoldable (neighboringEdges g nodeIds)
eqGraph :: SGraph -> SGraph -> Boolean
eqGraph :: SGraph -> SGraph -> Boolean
eqGraph (Graph { nodes: n1, edges: e1 }) (Graph { nodes: n2, edges: e2 }) = (n1 == n2) && (e1 == e2)
eqGraph (Graph { nodes: n1, edges: e1 }) (Graph { nodes: n2, edges: e2 }) = (n1 == n2) && (e1 == e2)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment