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
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
Grégoire Locqueville
purescript-gargantext
Commits
8c46f761
Commit
8c46f761
authored
Apr 21, 2022
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-merge' into dev
parents
2be10f99
b5a6a3ff
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
40 deletions
+25
-40
FolderView.purs
src/Gargantext/Components/FolderView.purs
+23
-36
Corpus.purs
src/Gargantext/Components/Nodes/Corpus.purs
+1
-2
Home.purs
src/Gargantext/Components/Nodes/Home.purs
+1
-2
No files found.
src/Gargantext/Components/FolderView.purs
View file @
8c46f761
module Gargantext.Components.FolderView where
import Data.Array as A
import Data.Eq ((==))
import Data.Maybe (Maybe(..), fromMaybe)
import Data.Nullable (null)
import Data.Traversable (traverse_)
...
...
@@ -26,11 +27,11 @@ import Gargantext.Components.GraphQL.Endpoints (getTreeFirstLevel)
import Gargantext.Components.GraphQL.Tree (TreeFirstLevel, TreeNode)
import Gargantext.Config.REST (AffRESTError, logRESTError)
import Gargantext.Config.Utils (handleRESTError)
import Gargantext.Hooks.LinkHandler (
Methods,
useLinkHandler)
import Gargantext.Hooks.LinkHandler (useLinkHandler)
import Gargantext.Hooks.Loader (useLoader)
import Gargantext.Prelude (Ordering, Unit, bind, compare, discard, pure, unit, void, ($), (<$>), (<>))
import Gargantext.Prelude (Ordering, Unit, bind, compare, discard,
otherwise,
pure, unit, void, ($), (<$>), (<>))
import Gargantext.Routes (AppRoute(Home), nodeTypeAppRoute)
import Gargantext.Sessions (Session, sessionId)
import Gargantext.Sessions (Session
(..)
, sessionId)
import Gargantext.Types (NodeType(..))
import Gargantext.Types as GT
import Gargantext.Utils.Popover as Popover
...
...
@@ -45,8 +46,7 @@ here :: R2.Here
here = R2.here "Gargantext.Components.FolderView"
type Props =
( backFolder :: Boolean
, boxes :: Boxes
( boxes :: Boxes
, nodeId :: Int
, session :: Session
)
...
...
@@ -57,15 +57,14 @@ folderView :: R2.Leaf Props
folderView = R2.leafComponent folderViewCpt
folderViewCpt :: R.Component Props
folderViewCpt = here.component "folderViewCpt" cpt where
cpt { b
ackFolder, b
oxes, nodeId, session } _ = do
cpt { boxes, nodeId, session } _ = do
setPopoverRef <- R.useRef Nothing
reload <- T.useBox T2.newReload
reload' <- T.useLive T.unequal reload
useLoader { errorHandler
, loader: loadFolders
, path: { nodeId, session, reload: reload'}
, render: \folders -> folderViewMain { backFolder
, boxes
, render: \folders -> folderViewMain { boxes
, folders
, nodeId
, reload
...
...
@@ -75,8 +74,7 @@ folderViewCpt = here.component "folderViewCpt" cpt where
errorHandler = logRESTError here "[folderView]"
type FolderViewProps =
( backFolder :: Boolean
, boxes :: Boxes
( boxes :: Boxes
, folders :: TreeFirstLevel
, nodeId :: Int
, reload :: T.Box T2.Reload
...
...
@@ -88,17 +86,14 @@ folderViewMain :: R2.Component FolderViewProps
folderViewMain = R.createElement folderViewMainCpt
folderViewMainCpt :: R.Component FolderViewProps
folderViewMainCpt = here.component "folderViewMainCpt" cpt where
cpt { backFolder
, boxes
, folders: {parent: parentNode, root: {node_type: nodeType}, children}
cpt { boxes
, folders: {parent: parentNode, children}
, nodeId
, reload
, session
, setPopoverRef } _ = do
linkHandlers <- useLinkHandler
let foldersS = A.sortBy sortFolders children
let backHome = isBackHome nodeType
let parent = makeParentFolder linkHandlers parentNode session backFolder backHome
let parent = makeParentFolder parentNode session
let childrenEl = makeFolderElements foldersS { boxes, nodeId, reload, session, setPopoverRef }
pure $ H.div {className: "fv folders"} $ parent <> childrenEl
...
...
@@ -115,30 +110,15 @@ folderViewMainCpt = here.component "folderViewMainCpt" cpt where
, style: FolderChild
, text: node.name } []
makeParentFolder :: Record Methods -> Maybe TreeNode -> Session -> Boolean -> Boolean -> Array R.Element
makeParentFolder _ (Just parent) session _ _ =
-- FIXME: The NodeType here should not be hardcoded to FolderPrivate but we currently can't get the actual NodeType
-- without performing another API call. Also parentId is never being returned by this API even when it clearly exists
[ folderSimple {style: FolderUp, text: "..", nodeId: parent.id, nodeType: GT.FolderPrivate, session: session} [] ]
makeParentFolder linkHandlers Nothing _ _ true = [ H.button {className: "btn btn-primary", on: { click: \_ -> linkHandlers.goToRoute Home}} [ H.i { className: "fa fa-folder-open" } []
, H.br {}
, H.text ".."] ]
makeParentFolder linkHandlers Nothing _ true _ = [ H.button {className: "btn btn-primary", on: { click: \_ -> linkHandlers.goToPreviousPage unit } } [ H.i { className: "fa fa-folder-open" } []
, H.br {}
, H.text ".."] ]
makeParentFolder _ Nothing _ _ _ = []
makeParentFolder :: Maybe TreeNode -> Session -> Array R.Element
makeParentFolder (Just parent) session =
[ folderSimple {style: FolderUp, text: "..", nodeId: parent.id, nodeType: parent.node_type, session: session} [] ]
makeParentFolder Nothing _ = []
sortFolders :: TreeNode-> TreeNode -> Ordering
sortFolders a b = compare a.id b.id
isBackHome :: GT.NodeType -> Boolean
isBackHome GT.FolderPrivate = true
isBackHome GT.FolderPublic = true
isBackHome GT.FolderShared = true
isBackHome _ = false
type FolderSimpleProps =
(
style :: FolderStyle
...
...
@@ -156,11 +136,18 @@ folderSimpleCpt = here.component "folderSimpleCpt" cpt where
cpt {style, text, nodeId, session, nodeType} _ = do
{ goToRoute } <- useLinkHandler
let sid = sessionId session
let rootId = treeId session
pure $ H.button { className: "btn btn-primary"
, on: {click: \_ -> goToRoute $
getFolderPath nodeType sid nodeI
d} }
, on: {click: \_ -> goToRoute $
route nodeId rootId nodeType si
d} }
[ H.i { className: icon style nodeType } []
, H.br {}
, H.text text ]
where
treeId (Session {treeId: tId}) = tId
route nId rootId nType sid
| rootId == nodeId = Home
| otherwise = getFolderPath nType sid nId
icon :: FolderStyle -> GT.NodeType -> String
icon FolderUp _ = "fa fa-folder-open"
...
...
src/Gargantext/Components/Nodes/Corpus.purs
View file @
8c46f761
...
...
@@ -88,8 +88,7 @@ corpusLayoutMainCpt = here.component "corpusLayoutMain" cpt
H.hr {}
,
FV.folderView
{ backFolder: true
, boxes
{ boxes
, nodeId
, session
}
...
...
src/Gargantext/Components/Nodes/Home.purs
View file @
8c46f761
...
...
@@ -183,8 +183,7 @@ tutorialCpt = here.component "tutorial" cpt where
sessionToFolder session@(Session {treeId, username, backend}) =
H.span { className: "folder" } [
H.div { className: "d-flex justify-content-center" } [ H.text (username <> "@" <> (cleanBackendUrl backend)) ]
, H.div {} [ FV.folderView { backFolder: false
, boxes
, H.div {} [ FV.folderView { boxes
, nodeId: treeId
, session } ] ]
...
...
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