Commit bdcd2dde authored by Alexandre Delanoë's avatar Alexandre Delanoë

[FEAT PUBLIC] Public Tree fixed

parent 69f8b4f0
...@@ -95,26 +95,35 @@ tree_advanced r nodeTypes = do ...@@ -95,26 +95,35 @@ tree_advanced r nodeTypes = do
------------------------------------------------------------------------ ------------------------------------------------------------------------
-- | Collaborative Nodes in the Tree -- | Collaborative Nodes in the Tree
findShared :: RootId -> NodeType -> [NodeType] -> UpdateTree err -> Cmd err [DbTreeNode] findShared :: HasTreeError err
=> RootId -> NodeType -> [NodeType] -> UpdateTree err
-> Cmd err [DbTreeNode]
findShared r nt nts fun = do findShared r nt nts fun = do
folderSharedId <- maybe (panic "no folder found") identity foldersSharedId <- findNodesId r [nt]
<$> head trees <- mapM (updateTree nts fun) foldersSharedId
<$> findNodesId r [nt] pure $ concat trees
folders <- getNodeNode folderSharedId
nodesSharedId <- mapM (\child -> fun folderSharedId child nts)
updateTree :: HasTreeError err
=> [NodeType] -> UpdateTree err -> RootId
-> Cmd err [DbTreeNode]
updateTree nts fun r = do
folders <- getNodeNode r
nodesSharedId <- mapM (fun r nts)
$ map _nn_node2_id folders $ map _nn_node2_id folders
pure $ concat nodesSharedId pure $ concat nodesSharedId
type UpdateTree err = ParentId -> NodeId -> [NodeType] -> Cmd err [DbTreeNode]
type UpdateTree err = ParentId -> [NodeType] -> NodeId -> Cmd err [DbTreeNode]
sharedTreeUpdate :: ParentId -> NodeId -> [NodeType] -> Cmd err [DbTreeNode] sharedTreeUpdate :: HasTreeError err => UpdateTree err
sharedTreeUpdate p n nt = dbTree n nt sharedTreeUpdate p nt n = dbTree n nt
<&> map (\n' -> if _dt_nodeId n' == n <&> map (\n' -> if _dt_nodeId n' == n
then set dt_parentId (Just p) n' then set dt_parentId (Just p) n'
else n') else n')
publicTreeUpdate :: ParentId -> NodeId -> [NodeType] -> Cmd err [DbTreeNode] publicTreeUpdate :: HasTreeError err => UpdateTree err
publicTreeUpdate p n nt = dbTree n nt publicTreeUpdate p nt n = dbTree n nt
<&> map (\n' -> if _dt_nodeId n' == n <&> map (\n' -> if _dt_nodeId n' == n
-- && (fromNodeTypeId $ _dt_typeId n') /= NodeFolderPublic -- && (fromNodeTypeId $ _dt_typeId n') /= NodeFolderPublic
then set dt_parentId (Just p) n' then set dt_parentId (Just p) n'
......
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