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
36df4cc8
Commit
36df4cc8
authored
May 09, 2022
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/383-dev-docs-chart-update' into dev-merge
parents
976f1755
183d0cf6
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
161 additions
and
76 deletions
+161
-76
bootstrap-darkster.css
dist/styles/bootstrap-darkster.css
+4
-0
bootstrap-default.css
dist/styles/bootstrap-default.css
+4
-0
bootstrap-greyson.css
dist/styles/bootstrap-greyson.css
+4
-0
bootstrap-herbie.css
dist/styles/bootstrap-herbie.css
+4
-0
bootstrap-monotony.css
dist/styles/bootstrap-monotony.css
+4
-0
Category.purs
src/Gargantext/Components/Category.purs
+16
-10
DocsTable.purs
src/Gargantext/Components/DocsTable.purs
+28
-22
LoadingSpinner.purs
src/Gargantext/Components/LoadingSpinner.purs
+8
-3
NgramsTable.purs
src/Gargantext/Components/NgramsTable.purs
+1
-0
Loader.purs
src/Gargantext/Components/NgramsTable/Loader.purs
+9
-2
Tabs.purs
src/Gargantext/Components/Nodes/Annuaire/Tabs.purs
+5
-5
Tabs.purs
...gantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
+5
-3
Common.purs
src/Gargantext/Components/Nodes/Corpus/Chart/Common.purs
+3
-1
Texts.purs
src/Gargantext/Components/Nodes/Texts.purs
+56
-26
Tab.purs
src/Gargantext/Components/Tab.purs
+0
-1
Loader.purs
src/Gargantext/Hooks/Loader.purs
+5
-3
Toestand.purs
src/Gargantext/Utils/Toestand.purs
+1
-0
_components.sass
src/sass/_components.sass
+1
-0
_loading_spinner.scss
src/sass/components/_loading_spinner.scss
+3
-0
No files found.
dist/styles/bootstrap-darkster.css
View file @
36df4cc8
...
@@ -6220,6 +6220,10 @@ h3 {
...
@@ -6220,6 +6220,10 @@ h3 {
background-image
:
radial-gradient
(
circle
,
#000000
10%
,
transparent
10%
);
background-image
:
radial-gradient
(
circle
,
#000000
10%
,
transparent
10%
);
}
}
.echarts-for-react
{
height
:
300px
;
}
html
{
html
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
100%
;
height
:
100%
;
...
...
dist/styles/bootstrap-default.css
View file @
36df4cc8
...
@@ -6173,6 +6173,10 @@ h3 {
...
@@ -6173,6 +6173,10 @@ h3 {
background-image
:
radial-gradient
(
circle
,
#343a40
10%
,
transparent
10%
);
background-image
:
radial-gradient
(
circle
,
#343a40
10%
,
transparent
10%
);
}
}
.echarts-for-react
{
height
:
300px
;
}
html
{
html
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
100%
;
height
:
100%
;
...
...
dist/styles/bootstrap-greyson.css
View file @
36df4cc8
...
@@ -5929,6 +5929,10 @@ h3 {
...
@@ -5929,6 +5929,10 @@ h3 {
background-image
:
radial-gradient
(
circle
,
#1e2b37
10%
,
transparent
10%
);
background-image
:
radial-gradient
(
circle
,
#1e2b37
10%
,
transparent
10%
);
}
}
.echarts-for-react
{
height
:
300px
;
}
html
{
html
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
100%
;
height
:
100%
;
...
...
dist/styles/bootstrap-herbie.css
View file @
36df4cc8
...
@@ -6177,6 +6177,10 @@ h3 {
...
@@ -6177,6 +6177,10 @@ h3 {
background-image
:
radial-gradient
(
circle
,
#072247
10%
,
transparent
10%
);
background-image
:
radial-gradient
(
circle
,
#072247
10%
,
transparent
10%
);
}
}
.echarts-for-react
{
height
:
300px
;
}
html
{
html
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
100%
;
height
:
100%
;
...
...
dist/styles/bootstrap-monotony.css
View file @
36df4cc8
...
@@ -6178,6 +6178,10 @@ h3 {
...
@@ -6178,6 +6178,10 @@ h3 {
background-image
:
radial-gradient
(
circle
,
#111111
10%
,
transparent
10%
);
background-image
:
radial-gradient
(
circle
,
#111111
10%
,
transparent
10%
);
}
}
.echarts-for-react
{
height
:
300px
;
}
html
{
html
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
100%
;
height
:
100%
;
...
...
src/Gargantext/Components/Category.purs
View file @
36df4cc8
...
@@ -7,7 +7,8 @@ import Data.Array as A
...
@@ -7,7 +7,8 @@ import Data.Array as A
import Data.Generic.Rep (class Generic)
import Data.Generic.Rep (class Generic)
import Data.Map as Map
import Data.Map as Map
import Data.Maybe (Maybe(..))
import Data.Maybe (Maybe(..))
import Effect.Aff (launchAff)
import Effect.Aff (launchAff_)
import Effect.Class (liftEffect)
import Gargantext.Components.Category.Types (Category(..), Star(..), cat2score, categories, clickAgain, star2score, stars)
import Gargantext.Components.Category.Types (Category(..), Star(..), cat2score, categories, clickAgain, star2score, stars)
import Gargantext.Components.DocsTable.Types (DocumentsView(..), LocalCategories, LocalUserScore)
import Gargantext.Components.DocsTable.Types (DocumentsView(..), LocalCategories, LocalUserScore)
import Gargantext.Config.REST (AffRESTError)
import Gargantext.Config.REST (AffRESTError)
...
@@ -15,6 +16,7 @@ import Gargantext.Routes (SessionRoute(NodeAPI))
...
@@ -15,6 +16,7 @@ import Gargantext.Routes (SessionRoute(NodeAPI))
import Gargantext.Sessions (Session, put)
import Gargantext.Sessions (Session, put)
import Gargantext.Types (NodeID, NodeType(..))
import Gargantext.Types (NodeID, NodeType(..))
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Toestand as T2
import Reactix as R
import Reactix as R
import Reactix.DOM.HTML as H
import Reactix.DOM.HTML as H
import Simple.JSON as JSON
import Simple.JSON as JSON
...
@@ -23,19 +25,24 @@ here :: R2.Here
...
@@ -23,19 +25,24 @@ here :: R2.Here
here = R2.here "Gargantext.Components.Category"
here = R2.here "Gargantext.Components.Category"
type RatingProps =
type RatingProps =
(
score :: Star
(
chartReload :: T2.ReloadS
, nodeId :: NodeID
, nodeId :: NodeID
, row :: DocumentsView
, row :: DocumentsView
, score :: Star
, session :: Session
, session :: Session
, setLocalCategories :: R.Setter LocalUserScore
, setLocalCategories :: R.Setter LocalUserScore
)
)
rating :: R2.Component RatingProps
rating :: R2.Component RatingProps
rating = R.createElement ratingCpt
rating = R.createElement ratingCpt
ratingCpt :: R.Component RatingProps
ratingCpt :: R.Component RatingProps
ratingCpt = here.component "rating" cpt where
ratingCpt = here.component "rating" cpt where
cpt { nodeId, row: DocumentsView r, score, session, setLocalCategories } _ =
cpt { chartReload
, nodeId
, row: DocumentsView r
, score
, session
, setLocalCategories } _ =
pure $ H.div { className:"flex" } divs where
pure $ H.div { className:"flex" } divs where
divs = map (\s -> H.div { className : icon' score s
divs = map (\s -> H.div { className : icon' score s
, on: { click: onClick s } } []) stars
, on: { click: onClick s } } []) stars
...
@@ -48,9 +55,9 @@ ratingCpt = here.component "rating" cpt where
...
@@ -48,9 +55,9 @@ ratingCpt = here.component "rating" cpt where
else c
else c
setLocalCategories $ Map.insert r._id c'
setLocalCategories $ Map.insert r._id c'
void $ launchAff
launchAff_ $ do
$ putRating session nodeId
_ <- putRating session nodeId $ RatingQuery { nodeIds: [r._id], rating: c' }
$ RatingQuery { nodeIds: [r._id], rating: c' }
liftEffect $ T2.reload chartReload
newtype RatingQuery =
newtype RatingQuery =
RatingQuery { nodeIds :: Array Int
RatingQuery { nodeIds :: Array Int
...
@@ -98,9 +105,8 @@ carousselCpt = here.component "caroussel" cpt
...
@@ -98,9 +105,8 @@ carousselCpt = here.component "caroussel" cpt
onClick c = \_-> do
onClick c = \_-> do
setLocalCategories $ Map.insert r._id c
setLocalCategories $ Map.insert r._id c
void $ launchAff
launchAff_ $ do
$ putCategories session nodeId
putCategories session nodeId $ CategoryQuery {nodeIds: [r._id], category: c}
$ CategoryQuery {nodeIds: [r._id], category: c}
icon :: Category -> Boolean -> String
icon :: Category -> Boolean -> String
icon cat b = btn b $ "fa fa-" <> (color $ size b $ icon' cat b)
icon cat b = btn b $ "fa fa-" <> (color $ size b $ icon' cat b)
...
...
src/Gargantext/Components/DocsTable.purs
View file @
36df4cc8
...
@@ -74,6 +74,7 @@ type Path a =
...
@@ -74,6 +74,7 @@ type Path a =
type CommonProps =
type CommonProps =
( boxes :: Boxes
( boxes :: Boxes
, cacheState :: T.Box NT.CacheState
, cacheState :: T.Box NT.CacheState
, chartReload :: T2.ReloadS
, frontends :: Frontends
, frontends :: Frontends
, listId :: Int
, listId :: Int
, mCorpusId :: Maybe Int
, mCorpusId :: Maybe Int
...
@@ -88,8 +89,8 @@ type CommonProps =
...
@@ -88,8 +89,8 @@ type CommonProps =
)
)
type LayoutProps =
type LayoutProps =
( chart :: R.Element
( chart
:: R.Element
, showSearch :: Boolean
, showSearch
:: Boolean
| CommonProps
| CommonProps
-- , path :: Record (Path a)
-- , path :: Record (Path a)
)
)
...
@@ -126,6 +127,7 @@ docViewCpt = here.component "docView" cpt where
...
@@ -126,6 +127,7 @@ docViewCpt = here.component "docView" cpt where
cpt { layout: { boxes
cpt { layout: { boxes
, cacheState
, cacheState
, chart
, chart
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId
, mCorpusId
...
@@ -204,20 +206,21 @@ docViewCpt = here.component "docView" cpt where
...
@@ -204,20 +206,21 @@ docViewCpt = here.component "docView" cpt where
]
]
, H.div {className: "col-md-12"}
, H.div {className: "col-md-12"}
[ pageLayout { boxes
[ pageLayout { boxes
, cacheState
, cacheState
, frontends
, chartReload
, key: "docView-" <> (show cacheState')
, frontends
, listId
, key: "docView-" <> (show cacheState')
, mCorpusId
, listId
, nodeId
, mCorpusId
, params
, nodeId
, query: query'
, params
, session
, query: query'
, sidePanel
, session
, tabType
, sidePanel
, totalRecords
, tabType
, yearFilter
, totalRecords
} []
, yearFilter
} []
]
]
]
]
]
]
...
@@ -434,6 +437,7 @@ pageLayoutCpt = here.component "pageLayout" cpt where
...
@@ -434,6 +437,7 @@ pageLayoutCpt = here.component "pageLayout" cpt where
, mkRequest
, mkRequest
, path
, path
, renderer: paint
, renderer: paint
, spinnerClass: Nothing
}
}
NT.CacheOff -> do
NT.CacheOff -> do
localCategories <- T.useBox (Map.empty :: LocalUserScore)
localCategories <- T.useBox (Map.empty :: LocalUserScore)
...
@@ -448,7 +452,7 @@ pageLayoutCpt = here.component "pageLayout" cpt where
...
@@ -448,7 +452,7 @@ pageLayoutCpt = here.component "pageLayout" cpt where
pure $ handleResponse <$> eRes
pure $ handleResponse <$> eRes
let render (Tuple count documents) = pagePaintRaw { documents
let render (Tuple count documents) = pagePaintRaw { documents
, layout: props' { params = paramsS'
, layout: props' { params = paramsS'
, totalRecords = count }
, totalRecords = count }
, localCategories
, localCategories
, params: paramsS } []
, params: paramsS } []
let errorHandler = logRESTError here "[pageLayout]"
let errorHandler = logRESTError here "[pageLayout]"
...
@@ -515,9 +519,10 @@ type PagePaintRawProps =
...
@@ -515,9 +519,10 @@ type PagePaintRawProps =
pagePaintRaw :: R2.Component PagePaintRawProps
pagePaintRaw :: R2.Component PagePaintRawProps
pagePaintRaw = R.createElement pagePaintRawCpt
pagePaintRaw = R.createElement pagePaintRawCpt
pagePaintRawCpt :: R.Component PagePaintRawProps
pagePaintRawCpt :: R.Component PagePaintRawProps
pagePaintRawCpt = here.component "pagePaintRaw
Cpt
" cpt where
pagePaintRawCpt = here.component "pagePaintRaw" cpt where
cpt { documents
cpt { documents
, layout: { boxes
, layout: { boxes
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId
, mCorpusId
...
@@ -539,7 +544,7 @@ pagePaintRawCpt = here.component "pagePaintRawCpt" cpt where
...
@@ -539,7 +544,7 @@ pagePaintRawCpt = here.component "pagePaintRawCpt" cpt where
{ colNames
{ colNames
, container: TT.defaultContainer
, container: TT.defaultContainer
, params
, params
, rows: rows reload localCategories' mCurrentDocId'
, rows: rows reload
chartReload
localCategories' mCurrentDocId'
, syncResetButton : [ H.div {} [] ]
, syncResetButton : [ H.div {} [] ]
, totalRecords
, totalRecords
, wrapColElts
, wrapColElts
...
@@ -554,9 +559,9 @@ pagePaintRawCpt = here.component "pagePaintRawCpt" cpt where
...
@@ -554,9 +559,9 @@ pagePaintRawCpt = here.component "pagePaintRawCpt" cpt where
| otherwise = Routes.Document sid listId
| otherwise = Routes.Document sid listId
colNames = TT.ColumnName <$> [ "Show", "Tag", "Date", "Title", "Source", "Score" ]
colNames = TT.ColumnName <$> [ "Show", "Tag", "Date", "Title", "Source", "Score" ]
wrapColElts = const identity
wrapColElts = const identity
rows reload
localCategories' mCurrentDocId' = row reload
<$> A.toUnfoldable documents
rows reload
chartReload localCategories' mCurrentDocId' = row
<$> A.toUnfoldable documents
where
where
row
reload
dv@(DocumentsView r@{ _id, category }) =
row dv@(DocumentsView r@{ _id, category }) =
{ row:
{ row:
TT.makeRow [ -- H.div {} [ H.a { className, style, on: {click: click Favorite} } [] ]
TT.makeRow [ -- H.div {} [ H.a { className, style, on: {click: click Favorite} } [] ]
H.div { className: "" }
H.div { className: "" }
...
@@ -568,7 +573,8 @@ pagePaintRawCpt = here.component "pagePaintRawCpt" cpt where
...
@@ -568,7 +573,8 @@ pagePaintRawCpt = here.component "pagePaintRawCpt" cpt where
]
]
--, H.div { className: "column-tag flex" } [ caroussel { category: cat, nodeId, row: dv, session, setLocalCategories } [] ]
--, H.div { className: "column-tag flex" } [ caroussel { category: cat, nodeId, row: dv, session, setLocalCategories } [] ]
, H.div { className: "column-tag flex" }
, H.div { className: "column-tag flex" }
[ rating { nodeId
[ rating { chartReload
, nodeId
, row: dv
, row: dv
, score: cat
, score: cat
, setLocalCategories: \lc -> T.modify_ lc localCategories
, setLocalCategories: \lc -> T.modify_ lc localCategories
...
...
src/Gargantext/Components/LoadingSpinner.purs
View file @
36df4cc8
module Gargantext.Components.LoadingSpinner where
module Gargantext.Components.LoadingSpinner where
import Data.Maybe (Maybe(..), fromMaybe)
import Reactix as R
import Reactix as R
import Reactix.DOM.HTML as H
import Reactix.DOM.HTML as H
...
@@ -10,7 +11,9 @@ import Gargantext.Utils.Reactix as R2
...
@@ -10,7 +11,9 @@ import Gargantext.Utils.Reactix as R2
here :: R2.Here
here :: R2.Here
here = R2.here "Gargantext.Components.LoadingSpinner"
here = R2.here "Gargantext.Components.LoadingSpinner"
type Props = ()
type Props =
( additionalClass :: Maybe String -- addtional classes for styling the spinner
)
loadingSpinner :: Record Props -> R.Element
loadingSpinner :: Record Props -> R.Element
loadingSpinner props = R.createElement loadingSpinnerCpt props []
loadingSpinner props = R.createElement loadingSpinnerCpt props []
...
@@ -22,5 +25,7 @@ loadingSpinnerCpt = here.component "LoadingSpinner" cpt
...
@@ -22,5 +25,7 @@ loadingSpinnerCpt = here.component "LoadingSpinner" cpt
-- cpt _ _ = H.i {className: "fa fa-globe fa-spin fa-3x fa-fw"} [H.text ""]
-- cpt _ _ = H.i {className: "fa fa-globe fa-spin fa-3x fa-fw"} [H.text ""]
-- cpt _ _ = H.i {className: "fa fa-circle-o-notch fa-spin fa-3x fa-fw"} [H.text ""]
-- cpt _ _ = H.i {className: "fa fa-circle-o-notch fa-spin fa-3x fa-fw"} [H.text ""]
cpt _ _ = do
cpt { additionalClass } _ = do
pure $ H.i {className: "fa fa-spinner fa-pulse fa-3x fa-fw"} [H.text ""]
pure $ H.i { className: "fa fa-spinner fa-pulse fa-3x fa-fw " <> c } [H.text ""]
where
c = fromMaybe "" additionalClass
src/Gargantext/Components/NgramsTable.purs
View file @
36df4cc8
...
@@ -605,6 +605,7 @@ mainNgramsTableCacheOnCpt = here.component "mainNgramsTableCacheOn" cpt where
...
@@ -605,6 +605,7 @@ mainNgramsTableCacheOnCpt = here.component "mainNgramsTableCacheOn" cpt where
, mkRequest
, mkRequest
, path: path'
, path: path'
, renderer: render
, renderer: render
, spinnerClass: Nothing
}
}
versionEndpoint { defaultListId, path: { nodeId, tabType, session } } _ = get session $ R.GetNgramsTableVersion { listId: defaultListId, tabType } (Just nodeId)
versionEndpoint { defaultListId, path: { nodeId, tabType, session } } _ = get session $ R.GetNgramsTableVersion { listId: defaultListId, tabType } (Just nodeId)
errorHandler = logRESTError here "[mainNgramsTable]"
errorHandler = logRESTError here "[mainNgramsTable]"
...
...
src/Gargantext/Components/NgramsTable/Loader.purs
View file @
36df4cc8
...
@@ -32,13 +32,20 @@ type LoaderWithCacheAPIProps path res ret = (
...
@@ -32,13 +32,20 @@ type LoaderWithCacheAPIProps path res ret = (
, mkRequest :: path -> GUC.Request
, mkRequest :: path -> GUC.Request
, path :: path
, path :: path
, renderer :: ret -> R.Element
, renderer :: ret -> R.Element
, spinnerClass :: Maybe String
)
)
useLoaderWithCacheAPI :: forall path res ret. Eq path => JSON.ReadForeign res => Eq ret =>
useLoaderWithCacheAPI :: forall path res ret. Eq path => JSON.ReadForeign res => Eq ret =>
Record (LoaderWithCacheAPIProps path res ret)
Record (LoaderWithCacheAPIProps path res ret)
-> R.Hooks R.Element
-> R.Hooks R.Element
useLoaderWithCacheAPI { cacheEndpoint, errorHandler, handleResponse, mkRequest, path, renderer } = do
useLoaderWithCacheAPI { cacheEndpoint
, errorHandler
, handleResponse
, mkRequest
, path
, renderer
, spinnerClass } = do
state <- T.useBox Nothing
state <- T.useBox Nothing
state' <- T.useLive T.unequal state
state' <- T.useLive T.unequal state
...
@@ -48,7 +55,7 @@ useLoaderWithCacheAPI { cacheEndpoint, errorHandler, handleResponse, mkRequest,
...
@@ -48,7 +55,7 @@ useLoaderWithCacheAPI { cacheEndpoint, errorHandler, handleResponse, mkRequest,
, mkRequest
, mkRequest
, path
, path
, state }
, state }
pure $ maybe (loadingSpinner {}) renderer state'
pure $ maybe (loadingSpinner {
additionalClass: spinnerClass
}) renderer state'
type LoaderWithCacheAPIEffectProps path res ret = (
type LoaderWithCacheAPIEffectProps path res ret = (
cacheEndpoint :: path -> AffRESTError Version
cacheEndpoint :: path -> AffRESTError Version
...
...
src/Gargantext/Components/Nodes/Annuaire/Tabs.purs
View file @
36df4cc8
...
@@ -11,10 +11,8 @@ import Effect.Aff (Aff)
...
@@ -11,10 +11,8 @@ import Effect.Aff (Aff)
import Gargantext.Components.App.Store (Boxes)
import Gargantext.Components.App.Store (Boxes)
import Gargantext.Components.DocsTable as DT
import Gargantext.Components.DocsTable as DT
import Gargantext.Components.DocsTable.Types (Year)
import Gargantext.Components.DocsTable.Types (Year)
import Gargantext.Components.GraphQL.User (UserInfo)
import Gargantext.Components.NgramsTable as NT
import Gargantext.Components.NgramsTable as NT
import Gargantext.Components.NgramsTable.Core as NTC
import Gargantext.Components.NgramsTable.Core as NTC
import Gargantext.Components.Nodes.Annuaire.User.Contacts.Types (ContactData)
import Gargantext.Components.Nodes.Lists.Types as LTypes
import Gargantext.Components.Nodes.Lists.Types as LTypes
import Gargantext.Components.Nodes.Texts.Types as TextsT
import Gargantext.Components.Nodes.Texts.Types as TextsT
import Gargantext.Components.Tab as Tab
import Gargantext.Components.Tab as Tab
...
@@ -22,6 +20,7 @@ import Gargantext.Ends (Frontends)
...
@@ -22,6 +20,7 @@ import Gargantext.Ends (Frontends)
import Gargantext.Sessions (Session)
import Gargantext.Sessions (Session)
import Gargantext.Types (CTabNgramType(..), PTabNgramType(..), TabSubType(..), TabType(..))
import Gargantext.Types (CTabNgramType(..), PTabNgramType(..), TabSubType(..), TabType(..))
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Toestand as T2
import Reactix as R
import Reactix as R
import Record as Record
import Record as Record
import Record.Extra as RX
import Record.Extra as RX
...
@@ -67,9 +66,10 @@ tabsCpt = here.component "tabs" cpt where
...
@@ -67,9 +66,10 @@ tabsCpt = here.component "tabs" cpt where
cpt props _ = do
cpt props _ = do
activeTab <- T.useBox 0
activeTab <- T.useBox 0
yearFilter <- T.useBox (Nothing :: Maybe Year)
yearFilter <- T.useBox (Nothing :: Maybe Year)
chartReload <- T.useBox T2.newReload
pure $ Tab.tabs { activeTab, tabs: tabs' yearFilter props }
pure $ Tab.tabs { activeTab, tabs: tabs' yearFilter
chartReload
props }
tabs' yearFilter props@{ boxes, defaultListId, sidePanel } =
tabs' yearFilter
chartReload
props@{ boxes, defaultListId, sidePanel } =
[ "Documents" /\ docs
[ "Documents" /\ docs
, "Patents" /\ ngramsView (viewProps Patents)
, "Patents" /\ ngramsView (viewProps Patents)
, "Books" /\ ngramsView (viewProps Books)
, "Books" /\ ngramsView (viewProps Books)
...
@@ -78,7 +78,7 @@ tabsCpt = here.component "tabs" cpt where
...
@@ -78,7 +78,7 @@ tabsCpt = here.component "tabs" cpt where
] where
] where
viewProps mode = Record.merge props { mode }
viewProps mode = Record.merge props { mode }
totalRecords = 4736 -- TODO lol
totalRecords = 4736 -- TODO lol
docs = DT.docViewLayout (Record.merge { boxes, sidePanel } $ Record.merge dtCommon dtExtra)
docs = DT.docViewLayout (Record.merge { boxes,
chartReload,
sidePanel } $ Record.merge dtCommon dtExtra)
dtCommon = RX.pick props :: Record DTCommon
dtCommon = RX.pick props :: Record DTCommon
dtExtra =
dtExtra =
{ chart: mempty
{ chart: mempty
...
...
src/Gargantext/Components/Nodes/Annuaire/User/Contacts/Tabs.purs
View file @
36df4cc8
...
@@ -12,7 +12,6 @@ import Gargantext.Components.DocsTable as DT
...
@@ -12,7 +12,6 @@ import Gargantext.Components.DocsTable as DT
import Gargantext.Components.DocsTable.Types (Year)
import Gargantext.Components.DocsTable.Types (Year)
import Gargantext.Components.NgramsTable as NT
import Gargantext.Components.NgramsTable as NT
import Gargantext.Components.NgramsTable.Core as NTC
import Gargantext.Components.NgramsTable.Core as NTC
import Gargantext.Components.Nodes.Annuaire.User.Contacts.Types (ContactData')
import Gargantext.Components.Nodes.Lists.Types as LTypes
import Gargantext.Components.Nodes.Lists.Types as LTypes
import Gargantext.Components.Nodes.Texts.Types as TTypes
import Gargantext.Components.Nodes.Texts.Types as TTypes
import Gargantext.Components.Tab as Tab
import Gargantext.Components.Tab as Tab
...
@@ -20,6 +19,7 @@ import Gargantext.Ends (Frontends)
...
@@ -20,6 +19,7 @@ import Gargantext.Ends (Frontends)
import Gargantext.Sessions (Session)
import Gargantext.Sessions (Session)
import Gargantext.Types (CTabNgramType(..), PTabNgramType(..), TabSubType(..), TabType(..))
import Gargantext.Types (CTabNgramType(..), PTabNgramType(..), TabSubType(..), TabType(..))
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Reactix as R2
import Gargantext.Utils.Toestand as T2
import Reactix as R
import Reactix as R
import Toestand as T
import Toestand as T
...
@@ -72,10 +72,11 @@ tabsCpt = here.component "tabs" cpt
...
@@ -72,10 +72,11 @@ tabsCpt = here.component "tabs" cpt
} _ = do
} _ = do
activeTab <- T.useBox 0
activeTab <- T.useBox 0
yearFilter <- T.useBox (Nothing :: Maybe Year)
yearFilter <- T.useBox (Nothing :: Maybe Year)
chartReload <- T.useBox T2.newReload
pure $ Tab.tabs { activeTab, tabs: tabs' yearFilter }
pure $ Tab.tabs { activeTab, tabs: tabs' yearFilter
chartReload
}
where
where
tabs' yearFilter =
tabs' yearFilter
chartReload
=
[ "Documents" /\ docs
[ "Documents" /\ docs
, "Patents" /\ ngramsView patentsView []
, "Patents" /\ ngramsView patentsView []
, "Books" /\ ngramsView booksView []
, "Books" /\ ngramsView booksView []
...
@@ -110,6 +111,7 @@ tabsCpt = here.component "tabs" cpt
...
@@ -110,6 +111,7 @@ tabsCpt = here.component "tabs" cpt
{ boxes
{ boxes
, cacheState
, cacheState
, chart
, chart
, chartReload
, frontends
, frontends
, listId: defaultListId
, listId: defaultListId
, mCorpusId: Nothing
, mCorpusId: Nothing
...
...
src/Gargantext/Components/Nodes/Corpus/Chart/Common.purs
View file @
36df4cc8
...
@@ -3,6 +3,7 @@ module Gargantext.Components.Nodes.Corpus.Chart.Common where
...
@@ -3,6 +3,7 @@ module Gargantext.Components.Nodes.Corpus.Chart.Common where
import Gargantext.Prelude
import Gargantext.Prelude
import Data.Array as A
import Data.Array as A
import Data.Maybe (Maybe(..))
import Data.Tuple.Nested ((/\))
import Data.Tuple.Nested ((/\))
import Gargantext.Components.Nodes.Corpus.Chart.Types (MetricsProps, ReloadPath)
import Gargantext.Components.Nodes.Corpus.Chart.Types (MetricsProps, ReloadPath)
import Gargantext.Config.REST (AffRESTError)
import Gargantext.Config.REST (AffRESTError)
...
@@ -86,4 +87,5 @@ metricsWithCacheLoadViewCpt = here.component "metricsWithCacheLoadView" cpt
...
@@ -86,4 +87,5 @@ metricsWithCacheLoadViewCpt = here.component "metricsWithCacheLoadView" cpt
, handleResponse
, handleResponse
, mkRequest
, mkRequest
, path: (reload' /\ path)
, path: (reload' /\ path)
, renderer: loaded { boxes, path, reload, session, onClick, onInit } }
, renderer: loaded { boxes, path, reload, session, onClick, onInit }
, spinnerClass: Just "echarts-for-react-spinner" }
src/Gargantext/Components/Nodes/Texts.purs
View file @
36df4cc8
...
@@ -6,6 +6,7 @@ import Data.Generic.Rep (class Generic)
...
@@ -6,6 +6,7 @@ import Data.Generic.Rep (class Generic)
import Data.Maybe (Maybe(..))
import Data.Maybe (Maybe(..))
import Data.Show.Generic (genericShow)
import Data.Show.Generic (genericShow)
import Data.Tuple.Nested ((/\))
import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Effect.Aff (launchAff_)
import Effect.Aff (launchAff_)
import Gargantext.Components.App.Store (Boxes)
import Gargantext.Components.App.Store (Boxes)
import Gargantext.Components.Charts.Options.ECharts (dispatchAction)
import Gargantext.Components.Charts.Options.ECharts (dispatchAction)
...
@@ -16,6 +17,7 @@ import Gargantext.Components.NgramsTable.Loader (clearCache)
...
@@ -16,6 +17,7 @@ import Gargantext.Components.NgramsTable.Loader (clearCache)
import Gargantext.Components.Node (NodePoly(..))
import Gargantext.Components.Node (NodePoly(..))
import Gargantext.Components.Nodes.Corpus (loadCorpusWithChild)
import Gargantext.Components.Nodes.Corpus (loadCorpusWithChild)
import Gargantext.Components.Nodes.Corpus.Chart.Histo (histo)
import Gargantext.Components.Nodes.Corpus.Chart.Histo (histo)
import Gargantext.Components.Nodes.Corpus.Chart.Types as CTypes
import Gargantext.Components.Nodes.Corpus.Document as D
import Gargantext.Components.Nodes.Corpus.Document as D
import Gargantext.Components.Nodes.Corpus.Types (CorpusData)
import Gargantext.Components.Nodes.Corpus.Types (CorpusData)
import Gargantext.Components.Nodes.Lists.Types as LT
import Gargantext.Components.Nodes.Lists.Types as LT
...
@@ -203,14 +205,16 @@ tabsCpt = here.component "tabs" cpt
...
@@ -203,14 +205,16 @@ tabsCpt = here.component "tabs" cpt
activeTab <- T.useBox 0
activeTab <- T.useBox 0
chartReload <- T.useBox T2.newReload
pure $ Tab.tabs {
pure $ Tab.tabs {
activeTab
activeTab
, tabs: [
, tabs: [
"Documents" /\ R.fragment [
"Documents" /\ R.fragment [
histo
{ boxes, path, session, onClick, onInit }
histo
Render { boxes, path, onClick, onInit, reload: chartReload, session } []
, docView' path TabDocs
, docView' path
chartReload
TabDocs
]
]
, "Trash" /\ docView' path TabTrash
, "Trash" /\ docView' path
chartReload
TabTrash
-- , "More like fav" /\ docView' path TabMoreLikeFav
-- , "More like fav" /\ docView' path TabMoreLikeFav
-- , "More like trash" /\ docView' path TabMoreLikeTrash
-- , "More like trash" /\ docView' path TabMoreLikeTrash
]
]
...
@@ -221,31 +225,47 @@ tabsCpt = here.component "tabs" cpt
...
@@ -221,31 +225,47 @@ tabsCpt = here.component "tabs" cpt
, listId: corpusData.defaultListId
, listId: corpusData.defaultListId
, limit: Nothing
, limit: Nothing
, tabType: TabCorpus TabDocs }
, tabType: TabCorpus TabDocs }
docView' path tabType = docView { boxes
docView' path chartReload tabType = docView { boxes
, cacheState
, cacheState
, corpusData
, chartReload
, corpusId
, corpusData
, frontends
, corpusId
, listId: path.listId
, frontends
-- , path
, listId: path.listId
, session
-- , path
, tabType
, session
, sidePanel
, tabType
, yearFilter
, sidePanel
} []
, yearFilter
} []
type HistoProps =
( reload :: T2.ReloadS
| CTypes.Props
)
histoRender :: R2.Component HistoProps
histoRender = R.createElement histoRenderCpt
histoRenderCpt :: R.Component HistoProps
histoRenderCpt = here.component "histoRender" cpt where
cpt { boxes, path, onClick, onInit, reload, session } _ = do
reload' <- T.useLive T.unequal reload
pure $ histo { boxes, path, onClick, onInit, session }
type DocViewProps a =
type DocViewProps a =
( boxes :: Boxes
( boxes :: Boxes
, cacheState :: T.Box LT.CacheState
, cacheState :: T.Box LT.CacheState
, corpusData :: CorpusData
, chartReload :: T2.ReloadS
, corpusId :: NodeID
, corpusData :: CorpusData
, frontends :: Frontends
, corpusId :: NodeID
, listId :: ListId
, frontends :: Frontends
-- , path :: Record DT.Path
, listId :: ListId
, session :: Session
-- , path :: Record DT.Path
, tabType :: TabSubType a
, session :: Session
, sidePanel :: T.Box (Maybe (Record TT.SidePanel))
, tabType :: TabSubType a
, yearFilter :: T.Box (Maybe Year)
, sidePanel :: T.Box (Maybe (Record TT.SidePanel))
, yearFilter :: T.Box (Maybe Year)
)
)
docView :: forall a. R2.Component (DocViewProps a)
docView :: forall a. R2.Component (DocViewProps a)
...
@@ -259,6 +279,7 @@ docViewCpt = here.component "docView" cpt
...
@@ -259,6 +279,7 @@ docViewCpt = here.component "docView" cpt
-- docViewLayoutRec :: forall a. DocViewProps a -> Record DT.LayoutProps
-- docViewLayoutRec :: forall a. DocViewProps a -> Record DT.LayoutProps
docViewLayoutRec { boxes
docViewLayoutRec { boxes
, cacheState
, cacheState
, chartReload
, corpusId
, corpusId
, frontends
, frontends
, listId
, listId
...
@@ -270,6 +291,7 @@ docViewLayoutRec { boxes
...
@@ -270,6 +291,7 @@ docViewLayoutRec { boxes
{ boxes
{ boxes
, cacheState
, cacheState
, chart : H.div {} []
, chart : H.div {} []
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId: Just corpusId
, mCorpusId: Just corpusId
...
@@ -284,6 +306,7 @@ docViewLayoutRec { boxes
...
@@ -284,6 +306,7 @@ docViewLayoutRec { boxes
}
}
docViewLayoutRec { boxes
docViewLayoutRec { boxes
, cacheState
, cacheState
, chartReload
, corpusId
, corpusId
, frontends
, frontends
, listId
, listId
...
@@ -295,6 +318,7 @@ docViewLayoutRec { boxes
...
@@ -295,6 +318,7 @@ docViewLayoutRec { boxes
{ boxes
{ boxes
, cacheState
, cacheState
, chart : H.div {} []
, chart : H.div {} []
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId: Just corpusId
, mCorpusId: Just corpusId
...
@@ -309,6 +333,7 @@ docViewLayoutRec { boxes
...
@@ -309,6 +333,7 @@ docViewLayoutRec { boxes
}
}
docViewLayoutRec { boxes
docViewLayoutRec { boxes
, cacheState
, cacheState
, chartReload
, corpusId
, corpusId
, frontends
, frontends
, listId
, listId
...
@@ -320,6 +345,7 @@ docViewLayoutRec { boxes
...
@@ -320,6 +345,7 @@ docViewLayoutRec { boxes
{ boxes
{ boxes
, cacheState
, cacheState
, chart : H.div {} []
, chart : H.div {} []
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId: Just corpusId
, mCorpusId: Just corpusId
...
@@ -334,6 +360,7 @@ docViewLayoutRec { boxes
...
@@ -334,6 +360,7 @@ docViewLayoutRec { boxes
}
}
docViewLayoutRec { boxes
docViewLayoutRec { boxes
, cacheState
, cacheState
, chartReload
, corpusId
, corpusId
, frontends
, frontends
, listId
, listId
...
@@ -345,6 +372,7 @@ docViewLayoutRec { boxes
...
@@ -345,6 +372,7 @@ docViewLayoutRec { boxes
{ boxes
{ boxes
, cacheState
, cacheState
, chart : H.div {} []
, chart : H.div {} []
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId: Just corpusId
, mCorpusId: Just corpusId
...
@@ -360,6 +388,7 @@ docViewLayoutRec { boxes
...
@@ -360,6 +388,7 @@ docViewLayoutRec { boxes
-- DUMMY
-- DUMMY
docViewLayoutRec { boxes
docViewLayoutRec { boxes
, cacheState
, cacheState
, chartReload
, corpusId
, corpusId
, frontends
, frontends
, listId
, listId
...
@@ -371,6 +400,7 @@ docViewLayoutRec { boxes
...
@@ -371,6 +400,7 @@ docViewLayoutRec { boxes
{ boxes
{ boxes
, cacheState
, cacheState
, chart : H.div {} []
, chart : H.div {} []
, chartReload
, frontends
, frontends
, listId
, listId
, mCorpusId: Just corpusId
, mCorpusId: Just corpusId
...
...
src/Gargantext/Components/Tab.purs
View file @
36df4cc8
...
@@ -49,7 +49,6 @@ type TabProps = ( selected :: Int, index :: Int )
...
@@ -49,7 +49,6 @@ type TabProps = ( selected :: Int, index :: Int )
tab :: R2.Component TabProps
tab :: R2.Component TabProps
tab = R.createElement tabCpt
tab = R.createElement tabCpt
-- | A tab only shows its contents if it is currently selected
-- | A tab only shows its contents if it is currently selected
tabCpt :: R.Component TabProps
tabCpt :: R.Component TabProps
tabCpt = here.component "tab" cpt
tabCpt = here.component "tab" cpt
...
...
src/Gargantext/Hooks/Loader.purs
View file @
36df4cc8
...
@@ -62,7 +62,7 @@ loaderCpt = here.component "loader" cpt
...
@@ -62,7 +62,7 @@ loaderCpt = here.component "loader" cpt
cpt { render, state } _ = do
cpt { render, state } _ = do
state' <- T.useLive T.unequal state
state' <- T.useLive T.unequal state
pure $ maybe (loadingSpinner {}) render state'
pure $ maybe (loadingSpinner {
additionalClass: Nothing
}) render state'
type UseLoaderEffect path state =
type UseLoaderEffect path state =
( errorHandler :: RESTError -> Effect Unit
( errorHandler :: RESTError -> Effect Unit
...
@@ -142,6 +142,7 @@ type LoaderWithCacheAPIProps path res ret =
...
@@ -142,6 +142,7 @@ type LoaderWithCacheAPIProps path res ret =
, mkRequest :: path -> GUC.Request
, mkRequest :: path -> GUC.Request
, path :: path
, path :: path
, renderer :: ret -> R.Element
, renderer :: ret -> R.Element
, spinnerClass :: Maybe String
)
)
useLoaderWithCacheAPI :: forall path res ret.
useLoaderWithCacheAPI :: forall path res ret.
...
@@ -153,7 +154,8 @@ useLoaderWithCacheAPI { boxes
...
@@ -153,7 +154,8 @@ useLoaderWithCacheAPI { boxes
, handleResponse
, handleResponse
, mkRequest
, mkRequest
, path
, path
, renderer } = do
, renderer
, spinnerClass } = do
state <- T.useBox Nothing
state <- T.useBox Nothing
state' <- T.useLive T.unequal state
state' <- T.useLive T.unequal state
...
@@ -163,7 +165,7 @@ useLoaderWithCacheAPI { boxes
...
@@ -163,7 +165,7 @@ useLoaderWithCacheAPI { boxes
, mkRequest
, mkRequest
, path
, path
, state }
, state }
pure $ maybe (loadingSpinner {}) renderer state'
pure $ maybe (loadingSpinner {
additionalClass: spinnerClass
}) renderer state'
type LoaderWithCacheAPIEffectProps path res ret = (
type LoaderWithCacheAPIEffectProps path res ret = (
boxes :: Boxes
boxes :: Boxes
...
...
src/Gargantext/Utils/Toestand.purs
View file @
36df4cc8
...
@@ -55,3 +55,4 @@ useMemberBox val box = T.useFocused (Set.member val) (toggleSet val) box
...
@@ -55,3 +55,4 @@ useMemberBox val box = T.useFocused (Set.member val) (toggleSet val) box
toggleSet :: forall s. Ord s => s -> Boolean -> Set s -> Set s
toggleSet :: forall s. Ord s => s -> Boolean -> Set s -> Set s
toggleSet val true set = Set.insert val set
toggleSet val true set = Set.insert val set
toggleSet val false set = Set.delete val set
toggleSet val false set = Set.delete val set
src/sass/_components.sass
View file @
36df4cc8
@import
"./components/_grouped.scss"
@import
"./components/_grouped.scss"
@import
"./components/_loading_spinner.scss"
src/sass/components/_loading_spinner.scss
0 → 100644
View file @
36df4cc8
.echarts-for-react
{
height
:
300px
;
}
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