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
142
Issues
142
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
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
6bc4257d
Commit
6bc4257d
authored
Aug 26, 2021
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[refactor] some code cleanup
parent
2574713c
Pipeline
#1732
failed with stage
Changes
50
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
135 additions
and
206 deletions
+135
-206
shell.nix
shell.nix
+1
-1
AnnotatedField.purs
src/Gargantext/Components/Annotation/AnnotatedField.purs
+2
-2
Menu.purs
src/Gargantext/Components/Annotation/Menu.purs
+0
-1
Series.purs
src/Gargantext/Components/Charts/Options/Series.purs
+1
-6
CodeEditor.purs
src/Gargantext/Components/CodeEditor.purs
+2
-2
ContextMenu.purs
src/Gargantext/Components/ContextMenu/ContextMenu.purs
+2
-2
DocsTable.purs
src/Gargantext/Components/DocsTable.purs
+3
-3
FacetsTable.purs
src/Gargantext/Components/FacetsTable.purs
+2
-2
FolderView.purs
src/Gargantext/Components/FolderView.purs
+2
-2
Box.purs
src/Gargantext/Components/FolderView/Box.purs
+3
-5
Tree.purs
src/Gargantext/Components/Forest/Tree.purs
+7
-7
Node.purs
src/Gargantext/Components/Forest/Tree/Node.purs
+5
-6
Add.purs
src/Gargantext/Components/Forest/Tree/Node/Action/Add.purs
+0
-2
Delete.purs
...Gargantext/Components/Forest/Tree/Node/Action/Delete.purs
+2
-2
Download.purs
...rgantext/Components/Forest/Tree/Node/Action/Download.purs
+1
-1
Search.purs
...Gargantext/Components/Forest/Tree/Node/Action/Search.purs
+5
-8
Frame.purs
...text/Components/Forest/Tree/Node/Action/Search/Frame.purs
+0
-4
SearchField.purs
...omponents/Forest/Tree/Node/Action/Search/SearchField.purs
+4
-7
Upload.purs
...Gargantext/Components/Forest/Tree/Node/Action/Upload.purs
+6
-9
Box.purs
src/Gargantext/Components/Forest/Tree/Node/Box.purs
+18
-18
Settings.purs
src/Gargantext/Components/Forest/Tree/Node/Settings.purs
+5
-9
Tools.purs
src/Gargantext/Components/Forest/Tree/Node/Tools.purs
+1
-6
FTree.purs
src/Gargantext/Components/Forest/Tree/Node/Tools/FTree.purs
+0
-3
Sync.purs
src/Gargantext/Components/Forest/Tree/Node/Tools/Sync.purs
+3
-7
API.purs
src/Gargantext/Components/GraphExplorer/API.purs
+1
-1
Button.purs
src/Gargantext/Components/GraphExplorer/Button.purs
+0
-1
Sidebar.purs
src/Gargantext/Components/GraphExplorer/Sidebar.purs
+1
-1
TopBar.purs
src/Gargantext/Components/GraphExplorer/TopBar.purs
+1
-6
Login.purs
src/Gargantext/Components/Login.purs
+1
-1
Form.purs
src/Gargantext/Components/Login/Form.purs
+1
-1
NgramsTable.purs
src/Gargantext/Components/NgramsTable.purs
+3
-3
Components.purs
src/Gargantext/Components/NgramsTable/Components.purs
+1
-2
Core.purs
src/Gargantext/Components/NgramsTable/Core.purs
+7
-6
Tabs.purs
...gantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
+1
-3
Corpus.purs
src/Gargantext/Components/Nodes/Corpus.purs
+15
-18
Tree.purs
src/Gargantext/Components/Nodes/Corpus/Chart/Tree.purs
+1
-1
Types.purs
src/Gargantext/Components/Nodes/Corpus/Chart/Types.purs
+1
-2
Dashboard.purs
src/Gargantext/Components/Nodes/Corpus/Dashboard.purs
+1
-1
Document.purs
src/Gargantext/Components/Nodes/Corpus/Document.purs
+6
-8
Phylo.purs
src/Gargantext/Components/Nodes/Corpus/Phylo.purs
+0
-3
Types.purs
src/Gargantext/Components/Nodes/Corpus/Types.purs
+1
-4
File.purs
src/Gargantext/Components/Nodes/File.purs
+1
-1
Tabs.purs
src/Gargantext/Components/Nodes/Lists/Tabs.purs
+5
-7
Texts.purs
src/Gargantext/Components/Nodes/Texts.purs
+4
-5
SidePanelToggleButton.purs
...gantext/Components/Nodes/Texts/SidePanelToggleButton.purs
+0
-1
Renameable.purs
src/Gargantext/Components/Renameable.purs
+3
-9
Router.purs
src/Gargantext/Components/Router.purs
+3
-3
Table.purs
src/Gargantext/Components/Table.purs
+1
-1
TopBar.purs
src/Gargantext/Components/TopBar.purs
+1
-1
Loader.purs
src/Gargantext/Hooks/Loader.purs
+0
-1
No files found.
shell.nix
View file @
6bc4257d
...
...
@@ -44,7 +44,7 @@ let
repl
=
pkgs
.
writeShellScriptBin
"repl"
''
#!/usr/bin/env bash
pulp
repl
spago
repl
''
;
test-ps
=
pkgs
.
writeShellScriptBin
"test-ps"
''
...
...
src/Gargantext/Components/Annotation/AnnotatedField.purs
View file @
6bc4257d
...
...
@@ -70,7 +70,7 @@ annotatedFieldInner p = R.createElement annotatedFieldInnerCpt p []
annotatedFieldInnerCpt :: R.Component InnerProps
annotatedFieldInnerCpt = here.component "annotatedFieldInner" cpt where
cpt { menuRef, ngrams, redrawMenu, setTermList, text: fieldText } _ = do
redrawMenu' <- T.useLive T.unequal redrawMenu
_
redrawMenu' <- T.useLive T.unequal redrawMenu
-- menu <- T.useBox (Nothing :: Maybe (Record AnnotationMenu))
...
...
@@ -109,7 +109,7 @@ onAnnotationSelect { menuRef, ngrams, redrawMenu, setTermList } Nothing event =
, redrawMenu
, setTermList }
Nothing -> hideMenu { menuRef, redrawMenu }
onAnnotationSelect { menuRef,
ngrams,
redrawMenu, setTermList } (Just (Tuple ngram list)) event = do
onAnnotationSelect { menuRef, redrawMenu, setTermList } (Just (Tuple ngram list)) event = do
showMenu { event
, getList: const (Just list)
, menuRef
...
...
src/Gargantext/Components/Annotation/Menu.purs
View file @
6bc4257d
...
...
@@ -7,7 +7,6 @@ import Data.Generic.Rep (class Generic)
import Data.Eq.Generic (genericEq)
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Uncurried (mkEffectFn1)
import Reactix as R
import Reactix.DOM.HTML as HTML
import Toestand as T
...
...
src/Gargantext/Components/Charts/Options/Series.purs
View file @
6bc4257d
module Gargantext.Components.Charts.Options.Series where
import Data.Argonaut (class DecodeJson, class EncodeJson, decodeJson, encodeJson, (.:), (~>), (:=))
import Data.Argonaut.Core (jsonEmptyObject)
import Data.Array (foldl)
import Data.Generic.Rep (class Generic)
import Data.Maybe (Maybe(..), maybe)
import Data.Newtype (class Newtype)
import Data.Symbol (SProxy(..))
import Gargantext.Components.Charts.Options.Data (DataD1, DataD2)
import Gargantext.Components.Charts.Options.Data (DataD1, DataD2)
import Gargantext.Components.Charts.Options.Font (ItemStyle, Tooltip)
import Gargantext.Components.Charts.Options.Font (ItemStyle, Tooltip)
import Gargantext.Components.Charts.Options.Legend (SelectedMode)
import Gargantext.Prelude
import Gargantext.Types (class Optional)
import Prelude (class Eq, class Show, bind, map, pure, show, ($), (+), (<<<), (<>)
, eq
)
import Prelude (class Eq, class Show, bind, map, pure, show, ($), (+), (<<<), (<>))
import Record as Record
import Record.Unsafe (unsafeSet)
import Simple.JSON as JSON
...
...
src/Gargantext/Components/CodeEditor.purs
View file @
6bc4257d
module Gargantext.Components.CodeEditor where
import DOM.Simple.Types (Element)
import Data.Argonaut.Parser (jsonParser)
import Data.Either (either, Either(..))
import Data.Generic.Rep (class Generic)
...
...
@@ -9,6 +8,7 @@ import Data.Show.Generic (genericShow)
import Data.Maybe (Maybe(..))
import Data.Nullable (Nullable, null, toMaybe)
import Data.String.Utils (endsWith)
import DOM.Simple.Types (Element)
import Effect (Effect)
import FFI.Simple ((.=))
import Reactix as R
...
...
@@ -355,7 +355,7 @@ initControls code defaultCodeType = do
}
reinitControls :: Record Controls -> Code -> CodeType -> Effect Unit
reinitControls
c@
{ codeType, codeS, error } code defaultCodeType = do
reinitControls { codeType, codeS, error } code defaultCodeType = do
T.write_ defaultCodeType codeType
T.write_ code codeS
T.write_ Nothing error
src/Gargantext/Components/ContextMenu/ContextMenu.purs
View file @
6bc4257d
...
...
@@ -65,7 +65,7 @@ contextMenuCpt = here.component "contextMenu" cpt
, style: position menu rect
, data: { placement: "right", toggle: "popover" }
}
elems ref menu Nothing = HTML.div
elems ref
_
menu Nothing = HTML.div
{ ref
, key: "context-menu"
, className: "context-menu"
...
...
@@ -98,7 +98,7 @@ documentClickHandler onClose menu =
documentScrollHandler :: Effect Unit -> Callback DE.MouseEvent
documentScrollHandler onClose =
R2.named "hideMenuOnScroll" $ callback $ \
e
-> onClose
R2.named "hideMenuOnScroll" $ callback $ \
_
-> onClose
position :: forall t. Record (Props t) -> DOMRect -> { left :: Number, top :: Number }
position mouse {width: menuWidth, height: menuHeight} = {left, top}
...
...
src/Gargantext/Components/DocsTable.purs
View file @
6bc4257d
...
...
@@ -194,13 +194,13 @@ searchBarCpt = here.component "searchBar" cpt
searchButton query queryText' =
H.button { className: "btn btn-primary"
, on: { click: \
e
-> T.write_ queryText' query }
, on: { click: \
_
-> T.write_ queryText' query }
, type: "submit" }
[ H.span {className: "fa fa-search"} [] ]
clearButton query =
H.button { className: "btn btn-danger"
, on: { click: \
e
-> T.write_ "" query } }
, on: { click: \
_
-> T.write_ "" query } }
[ H.span {className: "fa fa-times"} [] ]
mock :: Boolean
...
...
@@ -274,7 +274,7 @@ pageLayoutCpt = here.component "pageLayout" cpt where
let path = { listId, mCorpusId, nodeId, params, query, tabType, yearFilter: yearFilter' }
handleResponse :: HashedResponse (TableResult Response) -> Tuple Int (Array DocumentsView)
handleResponse (HashedResponse {
hash,
value: res }) = ret
handleResponse (HashedResponse { value: res }) = ret
where
filters = filterDocs query
...
...
src/Gargantext/Components/FacetsTable.purs
View file @
6bc4257d
...
...
@@ -336,14 +336,14 @@ pageCpt = here.component "page" cpt
let isDeleted (DocumentsView {id}) = Set.member id deletions'.deleted
rows
path'
= case rowsLoaded of
rows = case rowsLoaded of
Docs {docs} -> docRow path' <$> Seq.filter (not <<< isDeleted) docs
Contacts {contacts} -> contactRow path' <$> contacts
pure $ T.table { colNames
, container
, params
, rows
: rows path'
, rows
, syncResetButton : [ H.div {} [] ]
, totalRecords
, wrapColElts
...
...
src/Gargantext/Components/FolderView.purs
View file @
6bc4257d
...
...
@@ -306,9 +306,9 @@ performAction = performAction' where
deleteNode' nt p@{ nodeId: id, parentId: parent_id, session } = do
case nt of
NodePublic FolderPublic -> void $ deleteNode session
nt
id
NodePublic FolderPublic -> void $ deleteNode session id
NodePublic _ -> void $ unpublishNode session (Just parent_id) id
_ -> void $ deleteNode session
nt
id
_ -> void $ deleteNode session id
refreshFolders p
doSearch task { boxes: { tasks }, nodeId: id } = liftEffect $ do
...
...
src/Gargantext/Components/FolderView/Box.purs
View file @
6bc4257d
...
...
@@ -3,7 +3,6 @@ module Gargantext.Components.FolderView.Box where
import Gargantext.Prelude
import DOM.Simple as DOM
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Gargantext.Components.Forest.Tree.Node.Settings (SettingsBox(..), settingsBox)
import Gargantext.Components.Forest.Tree.Node.Tools (prettyNodeType)
...
...
@@ -13,7 +12,6 @@ import Gargantext.Utils.Glyphicon (glyphicon)
import Gargantext.Utils.Reactix as R2
import Reactix as R
import Reactix.DOM.HTML as H
import Toestand as T
here :: R2.Here
here = R2.here "Gargantext.Components.FolderView.Box"
...
...
@@ -30,7 +28,7 @@ nodePopupView props = R.createElement nodePopupCpt props []
nodePopupCpt :: R.Component NodePopupProps
nodePopupCpt = here.component "nodePopupView" cpt where
cpt props
@{ id, name, nodeType }
_ = do
cpt props _ = do
pure $ H.div tooltipProps
[ H.div { className: "popup-container" }
...
...
@@ -43,7 +41,7 @@ nodePopupCpt = here.component "nodePopupView" cpt where
tooltipProps = { id: "node-popup-tooltip", title: "Node settings"
, data: { toggle: "tooltip", placement: "right" } }
panelHeading props@{
id, name,
nodeType } =
panelHeading props@{ nodeType } =
H.div { className: "card-header" }
[ R2.row
[ H.div { className: "col-4" }
...
...
@@ -54,4 +52,4 @@ nodePopupCpt = here.component "nodePopupView" cpt where
, H.div { className: "col-1" }
[ H.a { type: "button", on: { click: closePopover props }, title: "Close"
, className: glyphicon "window-close" } [] ]]] where
SettingsBox
{ edit, doc, buttons }
= settingsBox nodeType
SettingsBox
_
= settingsBox nodeType
src/Gargantext/Components/Forest/Tree.purs
View file @
6bc4257d
...
...
@@ -223,13 +223,13 @@ refreshTree p@{ reloadTree } = liftEffect $ T2.reload reloadTree *> closePopover
deleteNode' nt p@{ boxes: { forestOpen }, session, tree: (NTree (LNode {id, parent_id}) _) } = do
case nt of
GT.NodePublic GT.FolderPublic -> void $ deleteNode session
nt
id
GT.NodePublic GT.FolderPublic -> void $ deleteNode session id
GT.NodePublic _ -> void $ unpublishNode session parent_id id
_ -> void $ deleteNode session
nt
id
_ -> void $ deleteNode session id
liftEffect $ T.modify_ (openNodesDelete (mkNodeId session id)) forestOpen
refreshTree p
doSearch task
p@
{ boxes: { tasks }, tree: NTree (LNode {id}) _ } = liftEffect $ do
doSearch task { boxes: { tasks }, tree: NTree (LNode {id}) _ } = liftEffect $ do
GAT.insert id task tasks
here.log2 "[doSearch] DoSearch task:" task
...
...
@@ -244,7 +244,7 @@ renameNode name p@{ boxes: { errors }, session, tree: (NTree (LNode {id}) _) } =
handleRESTError errors eTask $ \_task -> pure unit
refreshTree p
shareTeam username
p@
{ boxes: { errors }, session, tree: (NTree (LNode {id}) _)} = do
shareTeam username { boxes: { errors }, session, tree: (NTree (LNode {id}) _)} = do
eTask <- Share.shareReq session id $ Share.ShareTeamParams { username }
handleRESTError errors eTask $ \_task -> pure unit
...
...
@@ -255,7 +255,7 @@ sharePublic params p@{ boxes: { errors, forestOpen }, session } = traverse_ f pa
liftEffect $ T.modify_ (openNodesInsert (mkNodeId p.session out)) forestOpen
refreshTree p
addContact params
p@
{ boxes: { errors }, session, tree: (NTree (LNode {id}) _) } = do
addContact params { boxes: { errors }, session, tree: (NTree (LNode {id}) _) } = do
eTask <- Contact.contactReq session id params
handleRESTError errors eTask $ \_task -> pure unit
...
...
@@ -265,13 +265,13 @@ addNode' name nodeType p@{ boxes: { errors, forestOpen }, session, tree: (NTree
liftEffect $ T.modify_ (openNodesInsert (mkNodeId session id)) forestOpen
refreshTree p
uploadFile' nodeType fileType mName contents
p@
{ boxes: { errors, tasks }, session, tree: (NTree (LNode { id }) _) } = do
uploadFile' nodeType fileType mName contents { boxes: { errors, tasks }, session, tree: (NTree (LNode { id }) _) } = do
eTask <- uploadFile { contents, fileType, id, mName, nodeType, session }
handleRESTError errors eTask $ \task -> liftEffect $ do
GAT.insert id task tasks
here.log2 "[uploadFile'] UploadFile, uploaded, task:" task
uploadArbitraryFile' mName blob
p@
{ boxes: { errors, tasks }, session, tree: (NTree (LNode { id }) _) } = do
uploadArbitraryFile' mName blob { boxes: { errors, tasks }, session, tree: (NTree (LNode { id }) _) } = do
eTask <- uploadArbitraryFile session id { blob, mName }
handleRESTError errors eTask $ \task -> liftEffect $ do
GAT.insert id task tasks
...
...
src/Gargantext/Components/Forest/Tree/Node.purs
View file @
6bc4257d
...
...
@@ -112,7 +112,7 @@ nodeMainSpanCpt = here.component "nodeMainSpan" cpt
pure $ H.span (dropProps droppedFile droppedFile' isDragOver isDragOver')
$ reverseHanded handed'
[ folderIcon { folderOpen, nodeType } []
, chevronIcon { folderOpen, handed, isLeaf
, nodeType
} []
, chevronIcon { folderOpen, handed, isLeaf } []
, nodeLink { boxes
, folderOpen
, frontends
...
...
@@ -200,14 +200,14 @@ nodeMainSpanCpt = here.component "nodeMainSpan" cpt
{ className: "leaf " <> (dropClass droppedFile' isDragOver')
, on: { dragLeave: onDragLeave isDragOver
, dragOver: onDragOverHandler isDragOver
, drop: dropHandler
droppedFile
}
, drop: dropHandler }
}
where
dropClass (Just _) _ = "file-dropped"
dropClass _ true = "file-dropped"
dropClass Nothing _ = ""
dropHandler
droppedFile e
= do
dropHandler
e
= do
-- prevent redirection when file is dropped
E.preventDefault e
E.stopPropagation e
...
...
@@ -247,7 +247,6 @@ type ChevronIconProps = (
folderOpen :: T.Box Boolean
, handed :: T.Box GT.Handed
, isLeaf :: Boolean
, nodeType :: GT.NodeType
)
chevronIcon :: R2.Component ChevronIconProps
...
...
@@ -255,9 +254,9 @@ chevronIcon = R.createElement chevronIconCpt
chevronIconCpt :: R.Component ChevronIconProps
chevronIconCpt = here.component "chevronIcon" cpt
where
cpt {
folderOpen, handed, isLeaf: true, nodeTyp
e } _ = do
cpt {
isLeaf: tru
e } _ = do
pure $ H.div {} []
cpt { folderOpen, handed, isLeaf: false
, nodeType
} _ = do
cpt { folderOpen, handed, isLeaf: false } _ = do
handed' <- T.useLive T.unequal handed
open <- T.useLive T.unequal folderOpen
pure $ H.a { className: "chevron-icon"
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Add.purs
View file @
6bc4257d
...
...
@@ -77,8 +77,6 @@ addNodeView = R.createElement addNodeViewCpt
addNodeViewCpt :: R.Component CreateNodeProps
addNodeViewCpt = here.component "addNodeView" cpt where
cpt { dispatch
, id
, name
, nodeTypes } _ = do
nodeName <- T.useBox "Name"
nodeName' <- T.useLive T.unequal nodeName
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Delete.purs
View file @
6bc4257d
...
...
@@ -23,8 +23,8 @@ here = R2.here "Gargantext.Components.Forest.Tree.Node.Action.Delete"
-- TODO Delete with asyncTaskWithType
deleteNode :: Session ->
NodeType ->
GT.ID -> Aff (Either RESTError GT.ID)
deleteNode session n
t n
odeId = delete session $ NodeAPI GT.Node (Just nodeId) ""
deleteNode :: Session -> GT.ID -> Aff (Either RESTError GT.ID)
deleteNode session nodeId = delete session $ NodeAPI GT.Node (Just nodeId) ""
{-
case nt of
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Download.purs
View file @
6bc4257d
...
...
@@ -77,5 +77,5 @@ actionDownloadOther :: R2.Component ActionDownload
actionDownloadOther = R.createElement actionDownloadOtherCpt
actionDownloadOtherCpt :: R.Component ActionDownload
actionDownloadOtherCpt = here.component "actionDownloadOther" cpt where
cpt
{ id, session }
_ = do
cpt
_
_ = do
pure $ fragmentPT $ "Soon, you will be able to download your file here "
src/Gargantext/Components/Forest/Tree/Node/Action/Search.purs
View file @
6bc4257d
...
...
@@ -7,7 +7,6 @@ import Effect (Effect)
import Effect.Aff (Aff, launchAff)
import Gargantext.Components.App.Data (Boxes)
import Gargantext.Components.Forest.Tree.Node.Action (Action(..))
import Gargantext.Components.Forest.Tree.Node.Action.Add (NodePopup)
import Gargantext.Components.Forest.Tree.Node.Action.Search.SearchBar (searchBar)
import Gargantext.Components.Forest.Tree.Node.Action.Search.SearchField (defaultSearch)
import Gargantext.Components.Lang (allLangs)
...
...
@@ -27,7 +26,6 @@ type Props =
( boxes :: Boxes
, dispatch :: Action -> Aff Unit
, id :: Maybe ID
, nodePopup :: Maybe NodePopup
, session :: Session )
-- | Action : Search
...
...
@@ -36,24 +34,23 @@ actionSearch = R.createElement actionSearchCpt
actionSearchCpt :: R.Component Props
actionSearchCpt = here.component "actionSearch" cpt
where
cpt { boxes: { errors }, dispatch, id,
nodePopup,
session } _ = do
cpt { boxes: { errors }, dispatch, id, session } _ = do
search <- T.useBox $ defaultSearch { node_id = id }
pure $ R.fragment [ H.p { className: "action-search" }
[ H.text $ "Search and create a private "
<> "corpus with the search query as corpus name." ]
, searchBar { errors
, langs: allLangs
, onSearch: searchOn dispatch
nodePopup
, onSearch: searchOn dispatch
, search
, session
} []
]
where
searchOn :: (Action -> Aff Unit)
-> Maybe NodePopup
-> GT.AsyncTaskWithType
-> Effect Unit
searchOn dispatch' p task = do
-> GT.AsyncTaskWithType
-> Effect Unit
searchOn dispatch' task = do
_ <- launchAff $ dispatch' (DoSearch task)
-- close popup
_ <- launchAff $ dispatch' ClosePopover
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Search/Frame.purs
View file @
6bc4257d
...
...
@@ -9,7 +9,6 @@ import Data.Show.Generic (genericShow)
import Data.Maybe (Maybe(..))
import Data.Nullable (Nullable)
import Data.Tuple (Tuple(..))
import Data.Tuple.Nested ((/\))
import Reactix as R
import Reactix.DOM.HTML as H
import Toestand as T
...
...
@@ -44,7 +43,6 @@ type SearchIFramesProps = (
searchIframes :: R2.Component SearchIFramesProps
searchIframes = R.createElement searchIframesCpt
searchIframesCpt :: R.Component SearchIFramesProps
searchIframesCpt = here.component "searchIframes" cpt
where
...
...
@@ -67,7 +65,6 @@ type IFrameProps = (
divIframe :: R2.Component IFrameProps
divIframe = R.createElement divIframeCpt
divIframeCpt :: R.Component IFrameProps
divIframeCpt = here.component "divIframe" cpt
where
...
...
@@ -82,7 +79,6 @@ frameUrl Searx = "https://searx.frame.gargantext.org" -- 192.168.1.4:8080"
iframeWith :: R2.Component IFrameProps
iframeWith = R.createElement iframeWithCpt
iframeWithCpt :: R.Component IFrameProps
iframeWithCpt = here.component "iframeWith" cpt
where
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Search/SearchField.purs
View file @
6bc4257d
...
...
@@ -7,7 +7,6 @@ import Data.Maybe (Maybe(..), maybe, fromMaybe)
import Data.Newtype (over)
import Data.Nullable (null)
import Data.Set as Set
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Effect.Aff (launchAff_)
import Effect.Class (liftEffect)
...
...
@@ -61,7 +60,7 @@ searchFieldCpt = here.component "searchField" cpt
-- then
-- H.div {}[]
-- else
, H.div {} [ dataFieldNav {
datafields: dataFields,
search } []
, H.div {} [ dataFieldNav { search } []
, if isExternal search'.datafield
then databaseInput { databases: props.databases, search } []
...
...
@@ -128,11 +127,10 @@ componentIMTCpt = here.component "componentIMT" cpt
componentCNRS :: R2.Component ComponentProps
componentCNRS = R.createElement componentCNRSCpt
componentCNRSCpt :: R.Component ComponentProps
componentCNRSCpt = here.component "componentCNRS" cpt
where
cpt
{ search }
_ = do
cpt
_
_ = do
pure $ R.fragment [
H.div {} []
--, filterInput fi
...
...
@@ -261,15 +259,14 @@ langNavCpt = here.component "langNav" cpt
------------------------------------------------------------------------
type DataFieldNavProps =
( datafields :: Array DataField
, search :: T.Box Search )
( search :: T.Box Search )
dataFieldNav :: R2.Component DataFieldNavProps
dataFieldNav = R.createElement dataFieldNavCpt
dataFieldNavCpt :: R.Component DataFieldNavProps
dataFieldNavCpt = here.component "dataFieldNav" cpt
where
cpt {
datafields,
search } _ = do
cpt { search } _ = do
search'@{ datafield } <- T.useLive T.unequal search
pure $ R.fragment [ H.div { className: "text-primary center"} [H.text "with DataField"]
...
...
src/Gargantext/Components/Forest/Tree/Node/Action/Upload.purs
View file @
6bc4257d
...
...
@@ -88,7 +88,7 @@ uploadFileView props = R.createElement uploadFileViewCpt props []
uploadFileViewCpt :: R.Component Props
uploadFileViewCpt = here.component "uploadFileView" cpt
where
cpt {dispatch,
id,
nodeType} _ = do
cpt {dispatch, nodeType} _ = do
-- mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing
mFile <- T.useBox (Nothing :: Maybe UploadFile)
fileType <- T.useBox CSV
...
...
@@ -130,7 +130,6 @@ uploadFileViewCpt = here.component "uploadFileView" cpt
let footer = H.div {} [ uploadButton { dispatch
, fileType
, lang
, id
, mFile
, nodeType
}
...
...
@@ -154,7 +153,6 @@ uploadFileViewCpt = here.component "uploadFileView" cpt
type UploadButtonProps =
( dispatch :: Action -> Aff Unit
, fileType :: T.Box FileType
, id :: GT.ID
, lang :: T.Box Lang
, mFile :: T.Box (Maybe UploadFile)
, nodeType :: GT.NodeType
...
...
@@ -167,7 +165,6 @@ uploadButtonCpt = here.component "uploadButton" cpt
where
cpt { dispatch
, fileType
, id
, lang
, mFile
, nodeType
...
...
@@ -186,7 +183,7 @@ uploadButtonCpt = here.component "uploadButton" cpt
, on: {click: onClick fileType' mFile'}
} [ H.text "Upload" ]
where
onClick fileType' mFile'
e
= do
onClick fileType' mFile'
_
= do
let { blob, name } = unsafePartial $ fromJust mFile'
here.log2 "[uploadButton] fileType" fileType'
void $ launchAff do
...
...
@@ -225,7 +222,7 @@ fileTypeViewCpt = here.component "fileTypeView" cpt
case droppedFile' of
Nothing -> pure $ H.div {} []
Just df@(DroppedFile
{ blob, fileType }
) ->
Just df@(DroppedFile
_
) ->
pure $ H.div tooltipProps [ H.div { className: "card"}
[ panelHeading
, panelBody df
...
...
@@ -259,12 +256,12 @@ fileTypeViewCpt = here.component "fileTypeView" cpt
panelBody (DroppedFile { blob }) =
H.div {className: "card-body"}
[ R2.select {className: "col-md-12 form-control"
, on: {change: onChange
blob
}
, on: {change: onChange}
}
(map renderOption [CSV, CSV_HAL, WOS])
]
where
onChange
blob
e l =
onChange e l =
T.write_ (Just $ DroppedFile $ { blob
, fileType: read $ R.unsafeEventValue e
, lang : fromMaybe EN $ read $ R.unsafeEventValue l
...
...
@@ -464,7 +461,7 @@ uploadTermButtonCpt = here.component "uploadTermButton" cpt
, on: { click: onClick mFile' uploadType' }
} [ H.text "Upload" ]
where
onClick mFile' uploadType'
e
= do
onClick mFile' uploadType'
_
= do
let {name, blob} = unsafePartial $ fromJust mFile'
void $ launchAff do
contents <- readUFBAsText blob
...
...
src/Gargantext/Components/Forest/Tree/Node/Box.purs
View file @
6bc4257d
...
...
@@ -25,7 +25,7 @@ import Gargantext.Components.Forest.Tree.Node.Settings (NodeAction(..), Settings
import Gargantext.Components.Forest.Tree.Node.Status (Status(..), hasStatus)
import Gargantext.Components.Forest.Tree.Node.Tools (textInputBox, fragmentPT)
import Gargantext.Sessions (Session)
import Gargantext.Types (
FrontendError,
ID, Name, prettyNodeType)
import Gargantext.Types (ID, Name, prettyNodeType)
import Gargantext.Types as GT
import Gargantext.Utils.Glyphicon (glyphicon, glyphiconActive)
import Gargantext.Utils.Reactix as R2
...
...
@@ -83,14 +83,14 @@ nodePopupCpt = here.component "nodePopupView" cpt where
, H.div { className: "col-1" }
[ H.a { type: "button", on: { click: closePopover p }, title: "Close"
, className: glyphicon "window-close" } [] ]]] where
SettingsBox
{ edit, doc, buttons }
= settingsBox nodeType
SettingsBox
_
= settingsBox nodeType
editIcon _ true = H.div {} []
editIcon isOpen false =
H.a { className: glyphicon "pencil", id: "rename1"
, title : "Rename", on: { click: \_ -> T.write_ true isOpen } } []
panelBody :: T.Box (Maybe NodeAction) -> Record NodePopupProps -> R.Element
panelBody nodePopupState {
dispatch: d, nodeType
} =
let (SettingsBox {
edit, doc, buttons
}) = settingsBox nodeType in
panelBody nodePopupState {
nodeType
} =
let (SettingsBox {
doc, buttons
}) = settingsBox nodeType in
H.div {className: "card-body flex-space-between"}
$ [ H.p { className: "spacer" } []
, H.div { className: "flex-center" }
...
...
@@ -183,26 +183,26 @@ panelAction p = R.createElement panelActionCpt p []
panelActionCpt :: R.Component PanelActionProps
panelActionCpt = here.component "panelAction" cpt
where
cpt {action: Documentation nodeType} _ = pure $ actionDoc { nodeType } []
cpt {action: Download, id, nodeType, session} _ = pure $ actionDownload { id, nodeType, session } []
cpt {action: Upload, dispatch, id, nodeType, session} _ = pure $ actionUpload { dispatch, id, nodeType, session } []
cpt {action: Delete, nodeType, dispatch} _ = pure $ actionDelete { dispatch, nodeType } []
cpt {action: Add xs, dispatch, id, name, nodeType} _ =
cpt {
action: Documentation nodeType} _ = pure $ actionDoc { nodeType } []
cpt {
action: Download, id, nodeType, session} _ = pure $ actionDownload { id, nodeType, session } []
cpt {
action: Upload, dispatch, id, nodeType, session} _ = pure $ actionUpload { dispatch, id, nodeType, session } []
cpt {
action: Delete, nodeType, dispatch} _ = pure $ actionDelete { dispatch, nodeType } []
cpt {
action: Add xs, dispatch, id, name, nodeType} _ =
pure $ addNodeView {dispatch, id, name, nodeType, nodeTypes: xs} []
cpt {
action: Refresh , dispatch, id, nodeType, session
} _ = pure $ update { dispatch, nodeType } []
cpt {
action: Config , dispatch, id, nodeType, session
} _ =
cpt {
action: Refresh , dispatch, nodeType
} _ = pure $ update { dispatch, nodeType } []
cpt {
action: Config, nodeType
} _ =
pure $ fragmentPT $ "Config " <> show nodeType
-- Functions using SubTree
cpt { action: Merge {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
pure $ mergeNode { boxes, dispatch, id, nodeType, session, subTreeParams } []
cpt {action: Move {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
cpt {
action: Move {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
pure $ moveNode { boxes, dispatch, id, nodeType, session, subTreeParams } []
cpt {action: Link {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
cpt {
action: Link {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
pure $ linkNode { boxes, dispatch, id, nodeType, session, subTreeParams } []
cpt {
action : Share, dispatch, id, name
} _ = pure $ Share.shareNode { dispatch, id } []
cpt {
action : AddingContact, dispatch, id, name
} _ = pure $ Contact.actionAddContact { dispatch, id } []
cpt {action : Publish {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
cpt {
action : Share, dispatch, id
} _ = pure $ Share.shareNode { dispatch, id } []
cpt {
action : AddingContact, dispatch, id
} _ = pure $ Contact.actionAddContact { dispatch, id } []
cpt {
action : Publish {subTreeParams}, boxes, dispatch, id, nodeType, session } _ =
pure $ Share.publishNode { boxes, dispatch, id, nodeType, session, subTreeParams } []
cpt
props@{action: SearchBox, boxes, id, session, dispatch, nodePopup
} _ =
pure $ actionSearch { boxes, dispatch, id: (Just id),
nodePopup,
session } []
cpt
{ action: SearchBox, boxes, id, session, dispatch
} _ =
pure $ actionSearch { boxes, dispatch, id: (Just id), session } []
cpt _ _ = pure $ H.div {} []
src/Gargantext/Components/Forest/Tree/Node/Settings.purs
View file @
6bc4257d
module Gargantext.Components.Forest.Tree.Node.Settings where
import Data.Generic.Rep (class Generic)
import Data.Show.Generic (genericShow)
import Data.Eq.Generic (genericEq)
import Gargantext.Prelude (class Eq, class Show, show, (&&), (<>), (==))
import Gargantext.Components.Forest.Tree.Node.Tools.SubTree.Types (SubTreeParams(..))
import Data.Array (foldl)
import Gargantext.Types
------------------------------------------------------------------------
...
...
@@ -55,15 +51,15 @@ instance Show NodeAction where
show Download = "Download"
show Upload = "Upload"
show Refresh = "Refresh"
show (Move
t
) = "Move with subtree params" -- <> show t
show (Move
_
) = "Move with subtree params" -- <> show t
show Clone = "Clone"
show Delete = "Delete"
show Share = "Share"
show Config = "Config"
show (Link
x
) = "Link to " -- <> show x
show (Add
xs
) = "Add Child" -- foldl (\a b -> a <> show b) "Add " xs
show (Merge
t
) = "Merge with subtree" -- <> show t
show (Publish
x
) = "Publish" -- <> show x
show (Link
_
) = "Link to " -- <> show x
show (Add
_
) = "Add Child" -- foldl (\a b -> a <> show b) "Add " xs
show (Merge
_
) = "Merge with subtree" -- <> show t
show (Publish
_
) = "Publish" -- <> show x
show AddingContact = "AddingContact"
show CloseNodePopover = "CloseNodePopover"
...
...
src/Gargantext/Components/Forest/Tree/Node/Tools.purs
View file @
6bc4257d
module Gargantext.Components.Forest.Tree.Node.Tools where
import Data.Maybe (fromMaybe, Maybe(..))
import Data.Nullable (null)
import Data.Set (Set)
import Data.Set as Set
import Data.String as S
...
...
@@ -201,7 +200,6 @@ type CheckboxProps =
checkbox :: R2.Leaf CheckboxProps
checkbox props = R.createElement checkboxCpt props []
checkboxCpt :: R.Component CheckboxProps
checkboxCpt = here.component "checkbox" cpt
where
...
...
@@ -223,11 +221,10 @@ type CheckboxesListGroup a =
checkboxesListGroup :: forall a. Ord a => Show a => R2.Component (CheckboxesListGroup a)
checkboxesListGroup = R.createElement checkboxesListGroupCpt
checkboxesListGroupCpt :: forall a. Ord a => Show a => R.Component (CheckboxesListGroup a)
checkboxesListGroupCpt = here.component "checkboxesListGroup" cpt
where
cpt {
groups,
options } _ = do
cpt { options } _ = do
options' <- T.useLive T.unequal options
let one a =
...
...
@@ -278,8 +275,6 @@ nodeLinkCpt = here.component "nodeLink" cpt
, nodeType
, session
} _ = do
popoverRef <- R.useRef null
pure $
H.div { className: "node-link"
, on: { click } }
...
...
src/Gargantext/Components/Forest/Tree/Node/Tools/FTree.purs
View file @
6bc4257d
module Gargantext.Components.Forest.Tree.Node.Tools.FTree where
import Data.Array as A
import Data.Generic.Rep (class Generic)
import Data.Eq.Generic (genericEq)
import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype)
import Foreign as F
import Simple.JSON as JSON
import Simple.JSON.Generics as JSONG
import Gargantext.Prelude
...
...
src/Gargantext/Components/Forest/Tree/Node/Tools/Sync.purs
View file @
6bc4257d
module Gargantext.Components.Forest.Tree.Node.Tools.Sync where
import Gargantext.Prelude
( Unit, bind,
const,
discard, pure, unit, ($), (<>), (==) )
( Unit, bind, discard, pure, unit, ($), (<>), (==) )
import Effect.Aff (Aff, launchAff_)
import Data.Tuple.Nested ((/\))
import Data.Maybe (Maybe(..))
import Data.Tuple (fst)
import Effect.Class (liftEffect)
import Reactix.DOM.HTML as H
import Reactix as R
...
...
@@ -69,7 +67,7 @@ graphUpdateButtonCpt = here.component "graphUpdateButton" cpt
onClick true enabled = do
launchAff_ $ do
liftEffect $ T.write_ false enabled
g <- GraphAPI.updateGraphVersions { graphId: id, session }
_
g <- GraphAPI.updateGraphVersions { graphId: id, session }
liftEffect $ T.write_ true enabled
refresh unit
pure unit
...
...
@@ -86,7 +84,6 @@ type NodeActionsNodeListProps =
nodeActionsNodeList :: Record NodeActionsNodeListProps -> R.Element
nodeActionsNodeList p = R.createElement nodeActionsNodeListCpt p []
nodeActionsNodeListCpt :: R.Component NodeActionsNodeListProps
nodeActionsNodeListCpt = here.component "nodeActionsNodeList" cpt
where
...
...
@@ -105,11 +102,10 @@ type NodeListUpdateButtonProps =
nodeListUpdateButton :: Record NodeListUpdateButtonProps -> R.Element
nodeListUpdateButton p = R.createElement nodeListUpdateButtonCpt p []
nodeListUpdateButtonCpt :: R.Component NodeListUpdateButtonProps
nodeListUpdateButtonCpt = here.component "nodeListUpdateButton" cpt
where
cpt
{ listId, nodeId, nodeType, session, refresh }
_ = do
cpt
_
_ = do
-- enabled <- T.useBox true
pure $ H.div {} [] {- { className: "update-button "
...
...
src/Gargantext/Components/GraphExplorer/API.purs
View file @
6bc4257d
...
...
@@ -2,7 +2,7 @@ module Gargantext.Components.GraphExplorer.API where
import Gargantext.Prelude
import Data.Either (Either
(..)
)
import Data.Either (Either)
import Data.Maybe (Maybe)
import Effect.Aff (Aff)
import Gargantext.Components.GraphExplorer.Types as GET
...
...
src/Gargantext/Components/GraphExplorer/Button.purs
View file @
6bc4257d
...
...
@@ -21,7 +21,6 @@ import Gargantext.Components.Forest.Tree.Node.Action.Upload (uploadArbitraryData
import Gargantext.Components.GraphExplorer.API (cloneGraph)
import Gargantext.Components.GraphExplorer.Types as GET
import Gargantext.Components.GraphExplorer.Utils as GEU
import Gargantext.Config.REST (RESTError)
import Gargantext.Hooks.Sigmax as Sigmax
import Gargantext.Hooks.Sigmax.Sigma as Sigma
import Gargantext.Sessions (Session)
...
...
src/Gargantext/Components/GraphExplorer/Sidebar.purs
View file @
6bc4257d
...
...
@@ -260,7 +260,7 @@ updateTermButtonCpt = here.component "updateTermButton" cpt
, rType
, session
, text } _ = do
{ removedNodeIds, s
ideTab, s
electedNodeIds } <- GEST.focusedSidePanel sidePanelGraph
{ removedNodeIds, selectedNodeIds } <- GEST.focusedSidePanel sidePanelGraph
selectedNodeIds' <- T.useLive T.unequal selectedNodeIds
pure $ if Set.isEmpty selectedNodeIds' then
...
...
src/Gargantext/Components/GraphExplorer/TopBar.purs
View file @
6bc4257d
...
...
@@ -25,8 +25,7 @@ topBar :: R2.Leaf TopBar
topBar p = R.createElement topBarCpt p []
topBarCpt :: R.Component TopBar
topBarCpt = here.component "topBar" cpt where
cpt { boxes: { showTree
, sidePanelGraph
cpt { boxes: { sidePanelGraph
, sidePanelState } } _ = do
{ mGraph, multiSelectEnabled, selectedNodeIds, showControls } <- GEST.focusedSidePanel sidePanelGraph
...
...
@@ -43,7 +42,3 @@ topBarCpt = here.component "topBar" cpt where
, Toggle.sidebarToggleButton { state: sidePanelState } []
, search
]
where
rowToggle = RH.ul { className: "navbar-nav ml-auto mr-auto" }
col = RH.li { className: "nav-item" }
spaces = RH.a { className: "nav-link" }
src/Gargantext/Components/Login.purs
View file @
6bc4257d
...
...
@@ -72,7 +72,7 @@ chooserCpt = here.component "chooser" cpt where
-- Shown in the chooser
activeConnections :: forall s. T.ReadWrite s Sessions => s -> Sessions -> Array R.Element
activeConnections
sessions
sessions' | Sessions.null sessions' = []
activeConnections
_
sessions' | Sessions.null sessions' = []
activeConnections sessions sessions' =
[ H.h3 {} [ H.text "Active connection(s)" ]
, H.ul {} [ renderSessions sessions sessions' ] ]
...
...
src/Gargantext/Components/Login/Form.purs
View file @
6bc4257d
...
...
@@ -55,7 +55,7 @@ form props = R.createElement formCpt props []
formCpt :: forall s v. T.ReadWrite s Sessions => T.ReadWrite v Boolean
=> R.Component (Props s v)
formCpt = here.component "form" cpt where
cpt
props@
{ backend, sessions, visible } _ = do
cpt { backend, sessions, visible } _ = do
cell <- T.useBox emptyForm
cursors <- useFocusedFields cell {}
pure $ R2.row
...
...
src/Gargantext/Components/NgramsTable.purs
View file @
6bc4257d
...
...
@@ -80,7 +80,7 @@ setTermListSetA ngramsTable ns new_list =
CoreAction $ CommitPatch $ fromNgramsPatches $ PatchMap $ mapWithIndex f $ toMap ns
where
f :: NgramsTerm -> Unit -> NgramsPatch
f n unit = NgramsPatch { patch_list, patch_children: mempty }
f n
_
unit = NgramsPatch { patch_list, patch_children: mempty }
where
cur_list = ngramsTable ^? at n <<< _Just <<< _NgramsRepoElement <<< _list
patch_list = maybe mempty (\c -> replace c new_list) cur_list
...
...
@@ -352,7 +352,7 @@ loadedNgramsTableCpt = here.component "loadedNgramsTable" cpt where
, performAction: performAction <<< CoreAction }
-- autoUpdate :: Array R.Element
autoUpdate
path'
= if withAutoUpdate then
autoUpdate = if withAutoUpdate then
[ R2.buff
$ autoUpdateElt
{ duration: 5000
...
...
@@ -371,7 +371,7 @@ loadedNgramsTableCpt = here.component "loadedNgramsTable" cpt where
) =<< ngramsParent
pure $ R.fragment $
autoUpdate
path'
<>
autoUpdate <>
[ H.h4 {style: {textAlign : "center"}}
[ H.span {className: "fa fa-hand-o-down"} []
, H.text "Extracted Terms" ]
...
...
src/Gargantext/Components/NgramsTable/Components.purs
View file @
6bc4257d
...
...
@@ -25,7 +25,6 @@ import Gargantext.Components.NgramsTable.Core
( Action(..), Dispatch, NgramsElement, NgramsTable, NgramsTablePatch, NgramsTerm
, _NgramsElement, _NgramsRepoElement, _PatchMap, _children, _list
, _ngrams, _occurrences, ngramsTermText, replace, setTermListA )
import Gargantext.Components.Nodes.Lists.Types as NT
import Gargantext.Components.Table as Tbl
import Gargantext.Types as T
import Gargantext.Utils.Reactix as R2
...
...
@@ -64,7 +63,7 @@ searchInputCpt = here.component "searchInput" cpt
]
removeButton =
H.button { className: "btn btn-danger"
, on: {click: \
e
-> T.write "" searchQuery}}
, on: {click: \
_
-> T.write "" searchQuery}}
[ H.span {className: "fa fa-times"} []]
fieldInput searchQuery' =
...
...
src/Gargantext/Components/NgramsTable/Core.purs
View file @
6bc4257d
...
...
@@ -121,7 +121,7 @@ import Data.TraversableWithIndex (traverseWithIndex)
import Data.Tuple (Tuple(..))
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Effect.Aff (Aff,
error,
launchAff_)
import Effect.Aff (Aff, launchAff_)
import Effect.Class (liftEffect)
import Effect.Exception.Unsafe (unsafeThrow)
import FFI.Simple.Functions (delay)
...
...
@@ -503,7 +503,7 @@ highlightNgrams ntype table@(NgramsTable {ngrams_repo_elements: elts}) input0 =
A.fromFoldable ((\(s /\ ls)-> undb s /\ ls) <$> unsafePartial (foldl goFold ((input /\ Nil) : Nil) ixs))
where
spR x = " " <> R.replace wordBoundaryReg "$1$1" x <> " "
reR = R.replace wordBoundaryReg " "
--
reR = R.replace wordBoundaryReg " "
db = S.replaceAll (S.Pattern " ") (S.Replacement " ")
sp x = " " <> db x <> " "
undb = R.replace wordBoundaryReg2 "$1"
...
...
@@ -911,7 +911,6 @@ syncPatches :: forall p s. CoreParams p -> T.Box (CoreState s) -> (Unit -> Aff U
syncPatches props state callback = do
{ ngramsLocalPatch: ngramsLocalPatch@{ ngramsPatches }
, ngramsStagePatch
, ngramsValidPatch
, ngramsVersion } <- T.read state
when (isEmptyNgramsTablePatch ngramsStagePatch) $ do
let pt = Versioned { data: ngramsPatches, version: ngramsVersion }
...
...
@@ -970,8 +969,10 @@ commitPatch tablePatch state = do
loadNgramsTable :: PageParams -> Aff (Either RESTError VersionedNgramsTable)
loadNgramsTable
{ nodeId, listIds, termListFilter, termSizeFilter, session, scoreType
, searchQuery, tabType, params: {offset, limit, orderBy}}
{ nodeId
, listIds
, session
, tabType }
= get session query
where
query = GetNgramsTableAll { listIds
...
...
@@ -988,7 +989,7 @@ loadNgramsTable
type NgramsListByTabType = Map TabType VersionedNgramsTable
loadNgramsTableAll :: PageParams -> Aff (Either RESTError NgramsListByTabType)
loadNgramsTableAll { nodeId, listIds, session
, scoreType
} = do
loadNgramsTableAll { nodeId, listIds, session } = do
let
cTagNgramTypes =
[ CTabTerms
...
...
src/Gargantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
View file @
6bc4257d
...
...
@@ -7,7 +7,6 @@ import Data.Generic.Rep (class Generic)
import Data.Maybe (Maybe(..))
import Data.Show.Generic (genericShow)
import Data.Tuple.Nested ((/\))
import Gargantext.AsyncTasks as GAT
import Gargantext.Components.App.Data (Boxes)
import Gargantext.Components.DocsTable as DT
import Gargantext.Components.DocsTable.Types (Year)
...
...
@@ -19,9 +18,8 @@ import Gargantext.Components.Nodes.Texts.Types as TTypes
import Gargantext.Components.Tab as Tab
import Gargantext.Ends (Frontends)
import Gargantext.Sessions (Session)
import Gargantext.Types (CTabNgramType(..),
FrontendError, PTabNgramType(..), SidePanelState
, TabSubType(..), TabType(..))
import Gargantext.Types (CTabNgramType(..),
PTabNgramType(..)
, TabSubType(..), TabType(..))
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Toestand as T2
import Reactix as R
import Toestand as T
...
...
src/Gargantext/Components/Nodes/Corpus.purs
View file @
6bc4257d
...
...
@@ -89,9 +89,8 @@ corpusLayoutSelectionCpt :: R.Component SelectionProps
corpusLayoutSelectionCpt = here.component "corpusLayoutSelection" cpt where
cpt { boxes, key, nodeId, session, state } _ = do
state' <- T.useLive T.unequal state
viewType <- T.read state
pure $ renderContent
viewType
nodeId session key boxes
pure $ renderContent
state'
nodeId session key boxes
renderContent Folders nodeId session _ boxes =
FV.folderView { backFolder: true
...
...
@@ -202,7 +201,7 @@ fieldsCodeEditor = R.createElement fieldsCodeEditorCpt
fieldsCodeEditorCpt :: R.Component FieldsCodeEditorProps
fieldsCodeEditorCpt = here.component "fieldsCodeEditorCpt" cpt
where
cpt { fields
, nodeId, session
} _ = do
cpt { fields } _ = do
(FTFieldsWithIndex fields') <- T.useLive T.unequal fields
masterKey <- T.useBox T2.newReload
masterKey' <- T.useLive T.unequal masterKey
...
...
@@ -268,7 +267,6 @@ type FieldCodeEditorProps =
fieldCodeEditorWrapper :: Record FieldCodeEditorProps -> R.Element
fieldCodeEditorWrapper props = R.createElement fieldCodeEditorWrapperCpt props []
fieldCodeEditorWrapperCpt :: R.Component FieldCodeEditorProps
fieldCodeEditorWrapperCpt = here.component "fieldCodeEditorWrapperCpt" cpt
where
...
...
@@ -324,7 +322,6 @@ type RenameableProps =
renameable :: Record RenameableProps -> R.Element
renameable props = R.createElement renameableCpt props []
renameableCpt :: R.Component RenameableProps
renameableCpt = here.component "renameableCpt" cpt
where
...
...
@@ -420,29 +417,29 @@ fieldCodeEditorCpt = here.component "fieldCodeEditorCpt" cpt
-- CE.Code is the editor code (might have been the cause of the trigger)
changeCode :: (FieldType -> Effect Unit) -> FieldType -> CE.CodeType -> CE.Code -> Effect Unit
changeCode onc (Haskell hs) CE.Haskell c = onc $ Haskell $ hs { haskell = c }
changeCode onc (Haskell
hs)
CE.Python c = onc $ Python $ defaultPython' { python = c }
changeCode onc (Haskell {haskell}) CE.JSON
c
= onc $ JSON $ defaultJSON' { desc = haskell }
changeCode onc (Haskell {haskell}) CE.Markdown
c
= onc $ Markdown $ defaultMarkdown' { text = haskell }
changeCode onc (Haskell
_)
CE.Python c = onc $ Python $ defaultPython' { python = c }
changeCode onc (Haskell {haskell}) CE.JSON
_
= onc $ JSON $ defaultJSON' { desc = haskell }
changeCode onc (Haskell {haskell}) CE.Markdown
_
= onc $ Markdown $ defaultMarkdown' { text = haskell }
changeCode onc (Python hs) CE.Python c = onc $ Python $ hs { python = c }
changeCode onc (Python
hs)
CE.Haskell c = onc $ Haskell $ defaultHaskell' { haskell = c }
changeCode onc (Python {python}) CE.JSON
c
= onc $ JSON $ defaultJSON' { desc = python }
changeCode onc (Python {python}) CE.Markdown
c
= onc $ Markdown $ defaultMarkdown' { text = python }
changeCode onc (Python
_)
CE.Haskell c = onc $ Haskell $ defaultHaskell' { haskell = c }
changeCode onc (Python {python}) CE.JSON
_
= onc $ JSON $ defaultJSON' { desc = python }
changeCode onc (Python {python}) CE.Markdown
_
= onc $ Markdown $ defaultMarkdown' { text = python }
changeCode onc (Markdown
md)
CE.Haskell c = onc $ Haskell $ defaultHaskell' { haskell = c }
changeCode onc (Markdown
md)
CE.Python c = onc $ Python $ defaultPython' { python = c }
changeCode onc (Markdown
md)
CE.JSON c = onc $ Markdown $ defaultMarkdown' { text = c }
changeCode onc (Markdown
_)
CE.Haskell c = onc $ Haskell $ defaultHaskell' { haskell = c }
changeCode onc (Markdown
_)
CE.Python c = onc $ Python $ defaultPython' { python = c }
changeCode onc (Markdown
_)
CE.JSON c = onc $ Markdown $ defaultMarkdown' { text = c }
changeCode onc (Markdown md) CE.Markdown c = onc $ Markdown $ md { text = c }
changeCode onc (JSON j
@{desc}) CE.Haskell c
= onc $ Haskell $ defaultHaskell' { haskell = haskell }
changeCode onc (JSON j
) CE.Haskell _
= onc $ Haskell $ defaultHaskell' { haskell = haskell }
where
haskell = R2.stringify (JSON.writeImpl j) 2
changeCode onc (JSON j
@{desc}) CE.Python c
= onc $ Python $ defaultPython' { python = toCode }
changeCode onc (JSON j
) CE.Python _
= onc $ Python $ defaultPython' { python = toCode }
where
toCode = R2.stringify (JSON.writeImpl j) 2
changeCode onc _ CE.JSON c = do
case JSON.readJSON c of
Left err -> here.log2 "[fieldCodeEditor'] cannot parse json" c
Left err -> here.log2 "[fieldCodeEditor'] cannot parse json" c
-- TODO Refactor?
Right j' -> onc $ JSON j'
-- case jsonParser c of
-- Left err -> here.log2 "[fieldCodeEditor'] cannot parse json" c
...
...
@@ -549,7 +546,7 @@ type LoadWithReloadProps =
-- Just to make reloading effective
loadCorpusWithChildAndReload :: Record LoadWithReloadProps -> Aff (Either RESTError CorpusData)
loadCorpusWithChildAndReload {nodeId,
reload,
session} = loadCorpusWithChild {nodeId, session}
loadCorpusWithChildAndReload {nodeId, session} = loadCorpusWithChild {nodeId, session}
data ViewType = Code | Folders
derive instance Generic ViewType _
...
...
src/Gargantext/Components/Nodes/Corpus/Chart/Tree.purs
View file @
6bc4257d
module Gargantext.Components.Nodes.Corpus.Chart.Tree where
import Data.Either (Either
(..)
)
import Data.Either (Either)
import Data.Generic.Rep (class Generic)
import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype)
...
...
src/Gargantext/Components/Nodes/Corpus/Chart/Types.purs
View file @
6bc4257d
...
...
@@ -7,9 +7,8 @@ import Gargantext.Components.App.Data (Boxes)
import Gargantext.Components.Charts.Options.Type (EChartsInstance, MouseEvent)
import Gargantext.Prelude (Unit)
import Gargantext.Sessions (Session)
import Gargantext.Types (
FrontendError,
TabType)
import Gargantext.Types (TabType)
import Gargantext.Utils.Toestand as T2
import Toestand as T
type Path = (
corpusId :: Int
...
...
src/Gargantext/Components/Nodes/Corpus/Dashboard.purs
View file @
6bc4257d
...
...
@@ -15,7 +15,7 @@ import Gargantext.Components.Nodes.Types (FTFieldList(..), FTFieldsWithIndex(..)
import Gargantext.Hooks.Loader (useLoader)
import Gargantext.Prelude (Unit, bind, discard, pure, read, show, unit, ($), (<$>), (<>), (==))
import Gargantext.Sessions (Session, sessionId)
import Gargantext.Types (
FrontendError,
NodeID)
import Gargantext.Types (NodeID)
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Toestand as T2
import Reactix as R
...
...
src/Gargantext/Components/Nodes/Corpus/Document.purs
View file @
6bc4257d
...
...
@@ -4,8 +4,6 @@ module Gargantext.Components.Nodes.Corpus.Document where
--import Data.Argonaut.Core (stringifyWithIndent) -- DEBUG
import Data.Either (Either(..))
import Data.Maybe (Maybe(..), fromMaybe)
import Data.Tuple (fst)
import Data.Tuple.Nested ((/\))
import Effect.Aff (Aff)
import Reactix as R
import Reactix.DOM.HTML as H
...
...
@@ -34,10 +32,10 @@ here :: R2.Here
here = R2.here "Gargantext.Components.Nodes.Corpus.Document"
publicationDate :: Document -> String
publicationDate (Document
doc@
{publication_year: Nothing}) = ""
publicationDate (Document
doc@
{publication_year: Just py, publication_month: Nothing}) = U.zeroPad 2 py
publicationDate (Document
doc@
{publication_year: Just py, publication_month: Just pm, publication_day: Nothing}) = (U.zeroPad 2 py) <> "-" <> (U.zeroPad 2 pm)
publicationDate (Document
doc@
{publication_year: Just py, publication_month: Just pm, publication_day: Just pd}) = (U.zeroPad 2 py) <> "-" <> (U.zeroPad 2 pm) <> "-" <> (U.zeroPad 2 pd)
publicationDate (Document {publication_year: Nothing}) = ""
publicationDate (Document {publication_year: Just py, publication_month: Nothing}) = U.zeroPad 2 py
publicationDate (Document {publication_year: Just py, publication_month: Just pm, publication_day: Nothing}) = (U.zeroPad 2 py) <> "-" <> (U.zeroPad 2 pm)
publicationDate (Document {publication_year: Just py, publication_month: Just pm, publication_day: Just pd}) = (U.zeroPad 2 py) <> "-" <> (U.zeroPad 2 pm) <> "-" <> (U.zeroPad 2 pd)
docViewWrapper :: R2.Component Props
docViewWrapper = R.createElement docViewWrapperCpt
...
...
@@ -60,10 +58,10 @@ docViewCpt :: R.Component DocViewProps
docViewCpt = here.component "docView" cpt
where
cpt { path
, loaded:
loaded@
{ ngramsTable: Versioned { data: initTable }, document }
, loaded: { ngramsTable: Versioned { data: initTable }, document }
, state
} _children = do
state'@{ ngramsLocalPatch
, ngramsVersion: version
} <- T.useLive T.unequal state
state'@{ ngramsLocalPatch } <- T.useLive T.unequal state
let
afterSync = \_ -> pure unit
...
...
src/Gargantext/Components/Nodes/Corpus/Phylo.purs
View file @
6bc4257d
...
...
@@ -5,8 +5,6 @@ import Gargantext.Prelude
-- import Gargantext.Utils.Toestand as T2
-- import Toestand as T
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Gargantext.Sessions (Session)
import Gargantext.Types (NodeID)
import Gargantext.Utils.Reactix as R2
...
...
@@ -20,7 +18,6 @@ type Props = ( nodeId :: NodeID, session :: Session )
phyloLayout :: R2.Component Props
phyloLayout = R.createElement phyloLayoutCpt
phyloLayoutCpt :: R.Component Props
phyloLayoutCpt = here.component "phyloLayout" cpt where
cpt { nodeId, session } content = do
...
...
src/Gargantext/Components/Nodes/Corpus/Types.purs
View file @
6bc4257d
module Gargantext.Components.Nodes.Corpus.Types where
import Data.Argonaut (class DecodeJson, class EncodeJson, decodeJson, (.:), (:=), (~>), jsonEmptyObject)
import Data.Eq.Generic (genericEq)
import Data.Generic.Rep (class Generic)
import Data.List as List
import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype)
import Gargantext.Components.Node (NodePoly)
import Gargantext.Components.Nodes.Types (F
TField, Field(..), FieldType(..), FTField
, FTFieldList(..), isJSON)
import Gargantext.Components.Nodes.Types (F
ield(..), FieldType(..)
, FTFieldList(..), isJSON)
import Gargantext.Prelude
import Reactix as R
import Record as Record
import Simple.JSON as JSON
import Toestand as T
newtype Hyperdata =
Hyperdata { fields :: FTFieldList }
...
...
src/Gargantext/Components/Nodes/File.purs
View file @
6bc4257d
module Gargantext.Components.Nodes.File where
import Data.Generic.Rep (class Generic)
import Data.Either (Either
(..)
)
import Data.Either (Either)
import Data.Eq.Generic (genericEq)
import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype)
...
...
src/Gargantext/Components/Nodes/Lists/Tabs.purs
View file @
6bc4257d
module Gargantext.Components.Nodes.Lists.Tabs where
import Gargantext.Components.Nodes.Lists.Types
import Data.Array as A
import Data.Maybe (Maybe(..), fromMaybe)
import Data.Tuple.Nested ((/\))
import Effect.Class (liftEffect)
import Gargantext.AsyncTasks as GAT
import Gargantext.Components.App.Data (Boxes)
import Gargantext.Components.NgramsTable as NT
import Gargantext.Components.NgramsTable.Core as NTC
...
...
@@ -15,10 +12,11 @@ import Gargantext.Components.Nodes.Corpus.Chart.Pie (pie, bar)
import Gargantext.Components.Nodes.Corpus.Chart.Tree (tree)
import Gargantext.Components.Nodes.Corpus.Chart.Utils (mNgramsTypeFromTabType)
import Gargantext.Components.Nodes.Corpus.Types (CorpusData)
import Gargantext.Components.Nodes.Lists.Types hiding (here)
import Gargantext.Components.Tab as Tab
import Gargantext.Prelude (bind, pure, unit, ($), (<>))
import Gargantext.Sessions (Session)
import Gargantext.Types (CTabNgramType(..),
FrontendError,
Mode(..), TabSubType(..), TabType(..), modeTabType)
import Gargantext.Types (CTabNgramType(..), Mode(..), TabSubType(..), TabType(..), modeTabType)
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Toestand as T2
import Reactix as R
...
...
@@ -71,7 +69,7 @@ ngramsViewCpt = here.component "ngramsView" cpt where
chartsReload <- T.useBox T2.newReload
path <- T.useBox $ NTC.initialPageParams props.session initialPath.corpusId [initialPath.listId] initialPath.tabType
{ listIds, nodeId, params
, tabType
} <- T.useLive T.unequal path
{ listIds, nodeId, params } <- T.useLive T.unequal path
let path' = {
corpusId: nodeId
, limit: params.limit
...
...
@@ -102,7 +100,7 @@ ngramsViewCpt = here.component "ngramsView" cpt where
where
afterSync chartsReload _ = do
case mNgramsType of
Just
ngramsType
-> do
Just
_
-> do
-- NOTE: No need to recompute chart, after ngrams are sync this
-- should be recomputed already
-- We just refresh it
...
...
@@ -120,7 +118,7 @@ ngramsViewCpt = here.component "ngramsView" cpt where
, tabType
}
charts params CTabTerms = [
charts
_
params CTabTerms = [
H.div {className: "row"}
[ H.div {className: "col-12 d-flex justify-content-center"}
[ H.img { src: "images/Gargantextuel-212x300.jpg"
...
...
src/Gargantext/Components/Nodes/Texts.purs
View file @
6bc4257d
...
...
@@ -381,10 +381,10 @@ type SidePanelProps = (
, sidePanel :: T.Box (Maybe (Record TT.SidePanel))
)
s
idePanel :: R2.Component SidePanelProps
sidePanel = R.createElement s
idePanelCpt
s
idePanelCpt :: R.Component SidePanelProps
s
idePanelCpt = here.component "sidePanel" cpt
textsS
idePanel :: R2.Component SidePanelProps
textsSidePanel = R.createElement textsS
idePanelCpt
textsS
idePanelCpt :: R.Component SidePanelProps
textsS
idePanelCpt = here.component "sidePanel" cpt
where
cpt { boxes: { sidePanelState }
, session
...
...
@@ -465,7 +465,6 @@ type SidePanelDocView = (
sidePanelDocView :: R2.Component SidePanelDocView
sidePanelDocView = R.createElement sidePanelDocViewCpt
sidePanelDocViewCpt :: R.Component SidePanelDocView
sidePanelDocViewCpt = here.component "sidePanelDocView" cpt
where
...
...
src/Gargantext/Components/Nodes/Texts/SidePanelToggleButton.purs
View file @
6bc4257d
...
...
@@ -2,7 +2,6 @@ module Gargantext.Components.Nodes.Texts.SidePanelToggleButton
( Props, sidePanelToggleButton
) where
import Data.Tuple.Nested ((/\))
import Prelude
import Reactix as R
import Reactix.DOM.HTML as H
...
...
src/Gargantext/Components/Renameable.purs
View file @
6bc4257d
module Gargantext.Components.Renameable where
import Data.Tuple (Tuple(..), fst, snd)
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Reactix as R
import Reactix.DOM.HTML as H
...
...
@@ -24,7 +22,6 @@ type RenameableProps =
renameable :: R2.Component RenameableProps
renameable = R.createElement renameableCpt
renameableCpt :: R.Component RenameableProps
renameableCpt = here.component "renameableCpt" cpt
where
...
...
@@ -54,11 +51,10 @@ type RenameableTextProps =
renameableText :: R2.Component RenameableTextProps
renameableText = R.createElement renameableTextCpt
renameableTextCpt :: R.Component RenameableTextProps
renameableTextCpt = here.component "renameableText" cpt
where
cpt props@{ isEditing
, state
} _ = do
cpt props@{ isEditing } _ = do
isEditing' <- T.useLive T.unequal isEditing
pure $ if isEditing' then
...
...
@@ -69,11 +65,10 @@ renameableTextCpt = here.component "renameableText" cpt
notEditing :: R2.Component RenameableTextProps
notEditing = R.createElement notEditingCpt
notEditingCpt :: R.Component RenameableTextProps
notEditingCpt = here.component "notEditing" cpt
where
cpt
props@
{ isEditing, state } _ = do
cpt { isEditing, state } _ = do
state' <- T.useLive T.unequal state
pure $ H.div { className: "input-group" }
...
...
@@ -90,11 +85,10 @@ notEditingCpt = here.component "notEditing" cpt
editing :: R2.Component RenameableTextProps
editing = R.createElement editingCpt
editingCpt :: R.Component RenameableTextProps
editingCpt = here.component "editing" cpt
where
cpt
props@
{ isEditing, onRename, state } _ = do
cpt { isEditing, onRename, state } _ = do
state' <- T.useLive T.unequal state
pure $ H.div { className: "input-group" }
...
...
src/Gargantext/Components/Router.purs
View file @
6bc4257d
...
...
@@ -232,9 +232,9 @@ openedSidePanelCpt = here.component "openedSidePanel" cpt where
} [] ]
GR.Texts _s _n -> do
pure $ wrapper
[ Texts.
s
idePanel { boxes
, session
, sidePanel: sidePanelTexts } [] ]
[ Texts.
textsS
idePanel { boxes
, session
, sidePanel: sidePanelTexts } [] ]
_ -> pure $ wrapper []
annuaire :: R2.Component SessionNodeProps
...
...
src/Gargantext/Components/Table.purs
View file @
6bc4257d
...
...
@@ -160,7 +160,7 @@ type FilterRowsParams =
)
filterRows :: forall a. Record FilterRowsParams -> Seq.Seq a -> Seq.Seq a
filterRows { params: { limit, offset
, orderBy
} } rs = newRs
filterRows { params: { limit, offset } } rs = newRs
where
newRs = Seq.take limit $ Seq.drop offset $ rs
...
...
src/Gargantext/Components/TopBar.purs
View file @
6bc4257d
...
...
@@ -163,7 +163,7 @@ menuButton = R.createElement menuButtonCpt
menuButtonCpt :: R.Component MenuButtonProps
menuButtonCpt = here.component "menuButton" cpt
where
cpt { element: LiNav {
title, href, icon, text
}, show } _ = do
cpt { element: LiNav {
icon, text, title
}, show } _ = do
pure $ H.a { className: "dropdown-toggle navbar-text"
-- , data: {toggle: "dropdown"}
, title
...
...
src/Gargantext/Hooks/Loader.purs
View file @
6bc4257d
...
...
@@ -21,7 +21,6 @@ import Gargantext.Utils.Crypto (Hash)
import Gargantext.Utils.Reactix as R2
import Reactix as R
import Simple.JSON as JSON
import Toestand (Box)
import Toestand as T
here :: R2.Here
...
...
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