Commit 66ba4368 authored by James Laver's avatar James Laver

fix tree links (hopefully)

parent a7f06511
...@@ -71,7 +71,7 @@ appCpt = R.hooksComponent "G.C.App.app" cpt where ...@@ -71,7 +71,7 @@ appCpt = R.hooksComponent "G.C.App.app" cpt where
tree $ documentLayout { nodeId, listId, session, corpusId: Nothing } tree $ documentLayout { nodeId, listId, session, corpusId: Nothing }
PGraphExplorer graphId -> PGraphExplorer graphId ->
simpleLayout (fst sessions) $ simpleLayout (fst sessions) $
explorerLayout { graphId, mCurrentRoute, session, treeId: Nothing } explorerLayout { graphId, mCurrentRoute, session, treeId: Nothing, frontends }
forestLayout :: Frontends -> Sessions -> AppRoute -> R2.Setter Boolean -> R.Element -> R.Element forestLayout :: Frontends -> Sessions -> AppRoute -> R2.Setter Boolean -> R.Element -> R.Element
forestLayout frontends sessions route showLogin child = forestLayout frontends sessions route showLogin child =
......
...@@ -31,7 +31,7 @@ forestCpt = R.staticComponent "G.C.Forest.forest" cpt where ...@@ -31,7 +31,7 @@ forestCpt = R.staticComponent "G.C.Forest.forest" cpt where
Just s@(Session {treeId}) -> Just s@(Session {treeId}) ->
R.fragment R.fragment
[ H.text (show s) [ H.text (show s)
, treeView { root: treeId, mCurrentRoute: Just route, session: s } ] , treeView { root: treeId, frontends, mCurrentRoute: Just route, session: s } ]
plus :: R2.Setter Boolean -> R.Element plus :: R2.Setter Boolean -> R.Element
plus showLogin = H.button {on: {click}} [ H.text "+" ] plus showLogin = H.button {on: {click}} [ H.text "+" ]
......
...@@ -23,7 +23,7 @@ import Gargantext.Components.GraphExplorer.Types as GET ...@@ -23,7 +23,7 @@ import Gargantext.Components.GraphExplorer.Types as GET
import Gargantext.Components.Graph as Graph import Gargantext.Components.Graph as Graph
import Gargantext.Components.Tree as Tree import Gargantext.Components.Tree as Tree
import Gargantext.Config.REST (get) import Gargantext.Config.REST (get)
import Gargantext.Ends (url) import Gargantext.Ends (Frontends, url)
import Gargantext.Routes (SessionRoute(NodeAPI), AppRoute) import Gargantext.Routes (SessionRoute(NodeAPI), AppRoute)
import Gargantext.Sessions (Session) import Gargantext.Sessions (Session)
import Gargantext.Types (NodeType(Graph)) import Gargantext.Types (NodeType(Graph))
...@@ -34,7 +34,8 @@ type LayoutProps = ...@@ -34,7 +34,8 @@ type LayoutProps =
( graphId :: GraphId ( graphId :: GraphId
, mCurrentRoute :: Maybe AppRoute , mCurrentRoute :: Maybe AppRoute
, treeId :: Maybe Int , treeId :: Maybe Int
, session :: Session ) , session :: Session
, frontends :: Frontends )
type Props = ( graph :: Maybe Graph.Graph | LayoutProps ) type Props = ( graph :: Maybe Graph.Graph | LayoutProps )
...@@ -45,10 +46,10 @@ explorerLayout props = R.createElement explorerLayoutCpt props [] ...@@ -45,10 +46,10 @@ explorerLayout props = R.createElement explorerLayoutCpt props []
explorerLayoutCpt :: R.Component LayoutProps explorerLayoutCpt :: R.Component LayoutProps
explorerLayoutCpt = R.hooksComponent "G.C.GraphExplorer.explorerLayout" cpt explorerLayoutCpt = R.hooksComponent "G.C.GraphExplorer.explorerLayout" cpt
where where
cpt {graphId, mCurrentRoute, treeId, session} _ = cpt {graphId, mCurrentRoute, treeId, session, frontends} _ =
useLoader graphId (getNodes session) handler useLoader graphId (getNodes session) handler
where where
handler loaded = explorer {graphId, mCurrentRoute, treeId, session, graph} handler loaded = explorer {graphId, mCurrentRoute, treeId, session, graph, frontends}
where graph = Just (convert loaded) where graph = Just (convert loaded)
explorer :: Record Props -> R.Element explorer :: Record Props -> R.Element
...@@ -57,7 +58,7 @@ explorer props = R.createElement explorerCpt props [] ...@@ -57,7 +58,7 @@ explorer props = R.createElement explorerCpt props []
explorerCpt :: R.Component Props explorerCpt :: R.Component Props
explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt
where where
cpt {session, graphId, mCurrentRoute, treeId, graph} _ = do cpt {session, graphId, mCurrentRoute, treeId, graph, frontends} _ = do
controls <- Controls.useGraphControls controls <- Controls.useGraphControls
state <- useExplorerState state <- useExplorerState
pure $ pure $
...@@ -87,7 +88,7 @@ explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt ...@@ -87,7 +88,7 @@ explorerCpt = R.hooksComponent "G.C.GraphExplorer.explorer" cpt
tree _ {showTree: false /\ _} = RH.div { id: "tree" } [] tree _ {showTree: false /\ _} = RH.div { id: "tree" } []
tree {mCurrentRoute: m, treeId: Just root} _ = tree {mCurrentRoute: m, treeId: Just root} _ =
RH.div { id: "tree", className: "col-md-2" } RH.div { id: "tree", className: "col-md-2" }
[ Tree.treeView {mCurrentRoute: m, root, session: session} ] [ Tree.treeView {frontends, root, mCurrentRoute: m, session: session} ]
outer = RH.div { className: "col-md-12" } outer = RH.div { className: "col-md-12" }
inner = RH.div { className: "container-fluid", style: { paddingTop: "90px" } } inner = RH.div { className: "container-fluid", style: { paddingTop: "90px" } }
row1 = RH.div { className: "row", style: { paddingBottom: "10px", marginTop: "-24px" } } row1 = RH.div { className: "row", style: { paddingBottom: "10px", marginTop: "-24px" } }
......
...@@ -27,7 +27,7 @@ import Web.File.FileList (FileList, item) ...@@ -27,7 +27,7 @@ import Web.File.FileList (FileList, item)
import Web.File.FileReader.Aff (readAsText) import Web.File.FileReader.Aff (readAsText)
import Gargantext.Config.REST (get, put, post, postWwwUrlencoded, delete) import Gargantext.Config.REST (get, put, post, postWwwUrlencoded, delete)
import Gargantext.Ends (url) import Gargantext.Ends (Frontends(..), url)
import Gargantext.Hooks.Loader (useLoader) import Gargantext.Hooks.Loader (useLoader)
import Gargantext.Routes as Routes import Gargantext.Routes as Routes
import Gargantext.Routes (AppRoute, SessionRoute(..)) import Gargantext.Routes (AppRoute, SessionRoute(..))
...@@ -44,11 +44,12 @@ type Reload = Int ...@@ -44,11 +44,12 @@ type Reload = Int
data NodePopup = CreatePopup | NodePopup data NodePopup = CreatePopup | NodePopup
type Props = ( root :: ID, mCurrentRoute :: Maybe AppRoute, session :: Session ) type Props = ( root :: ID, mCurrentRoute :: Maybe AppRoute, session :: Session, frontends :: Frontends )
type TreeViewProps = type TreeViewProps =
( tree :: FTree ( tree :: FTree
, mCurrentRoute :: Maybe AppRoute , mCurrentRoute :: Maybe AppRoute
, frontends :: Frontends
, session :: Session ) , session :: Session )
data NTree a = NTree a (Array (NTree a)) data NTree a = NTree a (Array (NTree a))
...@@ -92,11 +93,15 @@ type FTree = NTree LNode ...@@ -92,11 +93,15 @@ type FTree = NTree LNode
-- file upload types -- file upload types
data FileType = CSV | PresseRIS data FileType = CSV | PresseRIS
derive instance genericFileType :: Generic FileType _ derive instance genericFileType :: Generic FileType _
instance eqFileType :: Eq FileType where instance eqFileType :: Eq FileType where
eq = genericEq eq = genericEq
instance showFileType :: Show FileType where instance showFileType :: Show FileType where
show = genericShow show = genericShow
readFileType :: String -> Maybe FileType readFileType :: String -> Maybe FileType
readFileType "CSV" = Just CSV readFileType "CSV" = Just CSV
readFileType "PresseRIS" = Just PresseRIS readFileType "PresseRIS" = Just PresseRIS
...@@ -161,24 +166,24 @@ treeLoadView :: R.State Reload -> Record Props -> R.Element ...@@ -161,24 +166,24 @@ treeLoadView :: R.State Reload -> Record Props -> R.Element
treeLoadView reload p = R.createElement el p [] treeLoadView reload p = R.createElement el p []
where where
el = R.hooksComponent "TreeLoadView" cpt el = R.hooksComponent "TreeLoadView" cpt
cpt {root, mCurrentRoute, session} _ = do cpt {root, mCurrentRoute, session, frontends} _ = do
useLoader root (loadNode session) $ \loaded -> useLoader root (loadNode session) $ \loaded ->
loadedTreeView reload {tree: loaded, mCurrentRoute, session} loadedTreeView reload {tree: loaded, mCurrentRoute, session, frontends}
loadedTreeView :: R.State Reload -> Record TreeViewProps -> R.Element loadedTreeView :: R.State Reload -> Record TreeViewProps -> R.Element
loadedTreeView reload p = R.createElement el p [] loadedTreeView reload p = R.createElement el p []
where where
el = R.hooksComponent "LoadedTreeView" cpt el = R.hooksComponent "LoadedTreeView" cpt
cpt {tree, mCurrentRoute, session} _ = do cpt {tree, mCurrentRoute, session, frontends} _ = do
treeState <- R.useState' {tree} treeState <- R.useState' {tree}
pure $ H.div {className: "tree"} pure $ H.div {className: "tree"}
[ toHtml reload treeState session mCurrentRoute ] [ toHtml reload treeState session frontends mCurrentRoute ]
-- START toHtml -- START toHtml
toHtml :: R.State Reload -> R.State Tree -> Session -> Maybe AppRoute -> R.Element toHtml :: R.State Reload -> R.State Tree -> Session -> Frontends -> Maybe AppRoute -> R.Element
toHtml reload treeState@({tree: (NTree (LNode {id, name, nodeType}) ary)} /\ _) session mCurrentRoute = R.createElement el {} [] toHtml reload treeState@({tree: (NTree (LNode {id, name, nodeType}) ary)} /\ _) session frontends mCurrentRoute = R.createElement el {} []
where where
el = R.hooksComponent "NodeView" cpt el = R.hooksComponent "NodeView" cpt
pAction = performAction session reload treeState pAction = performAction session reload treeState
...@@ -189,8 +194,8 @@ toHtml reload treeState@({tree: (NTree (LNode {id, name, nodeType}) ary)} /\ _) ...@@ -189,8 +194,8 @@ toHtml reload treeState@({tree: (NTree (LNode {id, name, nodeType}) ary)} /\ _)
pure $ H.ul {} pure $ H.ul {}
[ H.li {} [ H.li {}
( [ nodeMainSpan pAction {id, name, nodeType, mCurrentRoute} folderOpen session ] ( [ nodeMainSpan pAction {id, name, nodeType, mCurrentRoute} folderOpen session frontends ]
<> childNodes session reload folderOpen mCurrentRoute ary <> childNodes session frontends reload folderOpen mCurrentRoute ary
) )
] ]
...@@ -204,8 +209,9 @@ nodeMainSpan :: (Action -> Aff Unit) ...@@ -204,8 +209,9 @@ nodeMainSpan :: (Action -> Aff Unit)
-> Record NodeMainSpanProps -> Record NodeMainSpanProps
-> R.State Boolean -> R.State Boolean
-> Session -> Session
-> Frontends
-> R.Element -> R.Element
nodeMainSpan d p folderOpen session = R.createElement el p [] nodeMainSpan d p folderOpen session (Frontends frontends) = R.createElement el p []
where where
el = R.hooksComponent "NodeMainSpan" cpt el = R.hooksComponent "NodeMainSpan" cpt
cpt {id, name, nodeType, mCurrentRoute} _ = do cpt {id, name, nodeType, mCurrentRoute} _ = do
...@@ -216,7 +222,7 @@ nodeMainSpan d p folderOpen session = R.createElement el p [] ...@@ -216,7 +222,7 @@ nodeMainSpan d p folderOpen session = R.createElement el p []
pure $ H.span (dropProps droppedFile isDragOver) pure $ H.span (dropProps droppedFile isDragOver)
[ folderIcon folderOpen [ folderIcon folderOpen
, H.a { href: (url session (NodePath nodeType (Just id))) , H.a { href: (url frontends.app (NodePath nodeType (Just id)))
, style: {marginLeft: "22px"} , style: {marginLeft: "22px"}
} }
[ nodeText {isSelected: (mCorpusId mCurrentRoute) == (Just id), name} ] [ nodeText {isSelected: (mCorpusId mCurrentRoute) == (Just id), name} ]
...@@ -267,17 +273,17 @@ fldr :: Boolean -> String ...@@ -267,17 +273,17 @@ fldr :: Boolean -> String
fldr open = if open then "glyphicon glyphicon-folder-open" else "glyphicon glyphicon-folder-close" fldr open = if open then "glyphicon glyphicon-folder-open" else "glyphicon glyphicon-folder-close"
childNodes :: Session -> R.State Reload -> R.State Boolean -> Maybe AppRoute -> Array FTree -> Array R.Element childNodes :: Session -> Frontends -> R.State Reload -> R.State Boolean -> Maybe AppRoute -> Array FTree -> Array R.Element
childNodes _ _ _ _ [] = [] childNodes _ _ _ _ _ [] = []
childNodes _ _ (false /\ _) _ _ = [] childNodes _ _ _ (false /\ _) _ _ = []
childNodes session reload (true /\ _) mCurrentRoute ary = map (\ctree -> childNode {tree: ctree}) ary childNodes session frontends reload (true /\ _) mCurrentRoute ary = map (\ctree -> childNode {tree: ctree}) ary
where where
childNode :: Tree -> R.Element childNode :: Tree -> R.Element
childNode props = R.createElement el props [] childNode props = R.createElement el props []
el = R.hooksComponent "ChildNodeView" cpt el = R.hooksComponent "ChildNodeView" cpt
cpt {tree} _ = do cpt {tree} _ = do
treeState <- R.useState' {tree} treeState <- R.useState' {tree}
pure $ toHtml reload treeState session mCurrentRoute pure $ toHtml reload treeState session frontends mCurrentRoute
-- END toHtml -- END toHtml
......
...@@ -9,7 +9,9 @@ import Data.Generic.Rep (class Generic) ...@@ -9,7 +9,9 @@ import Data.Generic.Rep (class Generic)
import Data.Generic.Rep.Eq (genericEq) import Data.Generic.Rep.Eq (genericEq)
import Data.Maybe (Maybe, maybe) import Data.Maybe (Maybe, maybe)
import Gargantext.Routes as R import Gargantext.Routes as R
import Gargantext.Types (ApiVersion, Limit, NodeType(..), Offset, TabType(..), TermSize(..), nodeTypePath, showTabType') import Gargantext.Types
( ApiVersion, Limit, NodePath, NodeType(..), Offset, TabType(..)
, TermSize(..), nodePath, nodeTypePath, showTabType')
-- | A means of generating a url to visit, a destination -- | A means of generating a url to visit, a destination
class ToUrl conf p where class ToUrl conf p where
...@@ -55,6 +57,9 @@ derive instance genericFrontend :: Generic Frontend _ ...@@ -55,6 +57,9 @@ derive instance genericFrontend :: Generic Frontend _
instance eqFrontend :: Eq Frontend where instance eqFrontend :: Eq Frontend where
eq = genericEq eq = genericEq
instance toUrlFrontendNodePath :: ToUrl Frontend NodePath where
toUrl front np = frontendUrl front (nodePath np)
-- | Creates a frontend -- | Creates a frontend
frontend :: String -> String -> String -> Frontend frontend :: String -> String -> String -> Frontend
frontend baseUrl prePath name = Frontend { name, baseUrl, prePath } frontend baseUrl prePath name = Frontend { name, baseUrl, prePath }
......
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