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

Merge branch 'dev' into testing

parents 90b4eda6 e60713e8
Pipeline #6276 passed with stages
in 19 minutes
......@@ -11998,6 +11998,19 @@ select.form-control {
.phylo-details-tab__counter__value {
font-weight: bold;
}
.phylo-details-tab__params {
margin: 16px 20px;
}
.phylo-details-tab__params__item {
margin-left: 16px;
list-style: initial;
}
.phylo-details-tab__params__label {
font-weight: bold;
}
.phylo-details-tab__params__value {
margin-left: 16px;
}
.phylo-details-tab__delimiter {
margin: 16px 20px;
}
......
......@@ -11802,6 +11802,19 @@ select.form-control {
.phylo-details-tab__counter__value {
font-weight: bold;
}
.phylo-details-tab__params {
margin: 16px 20px;
}
.phylo-details-tab__params__item {
margin-left: 16px;
list-style: initial;
}
.phylo-details-tab__params__label {
font-weight: bold;
}
.phylo-details-tab__params__value {
margin-left: 16px;
}
.phylo-details-tab__delimiter {
margin: 16px 20px;
}
......
......@@ -11652,6 +11652,19 @@ select.form-control {
.phylo-details-tab__counter__value {
font-weight: bold;
}
.phylo-details-tab__params {
margin: 16px 20px;
}
.phylo-details-tab__params__item {
margin-left: 16px;
list-style: initial;
}
.phylo-details-tab__params__label {
font-weight: bold;
}
.phylo-details-tab__params__value {
margin-left: 16px;
}
.phylo-details-tab__delimiter {
margin: 16px 20px;
}
......
......@@ -11873,6 +11873,19 @@ select.form-control {
.phylo-details-tab__counter__value {
font-weight: bold;
}
.phylo-details-tab__params {
margin: 16px 20px;
}
.phylo-details-tab__params__item {
margin-left: 16px;
list-style: initial;
}
.phylo-details-tab__params__label {
font-weight: bold;
}
.phylo-details-tab__params__value {
margin-left: 16px;
}
.phylo-details-tab__delimiter {
margin: 16px 20px;
}
......
......@@ -11946,6 +11946,19 @@ select.form-control {
.phylo-details-tab__counter__value {
font-weight: bold;
}
.phylo-details-tab__params {
margin: 16px 20px;
}
.phylo-details-tab__params__item {
margin-left: 16px;
list-style: initial;
}
.phylo-details-tab__params__label {
font-weight: bold;
}
.phylo-details-tab__params__value {
margin-left: 16px;
}
.phylo-details-tab__delimiter {
margin: 16px 20px;
}
......
{
"name": "Gargantext",
"version": "0.0.7.1.5.3",
"version": "0.0.7.1.6.5",
"scripts": {
"build": "spago build",
"bundle": "spago bundle --module Main --outfile dist/bundle.js",
......
cd dist/ && python3 -mhttp.server
......@@ -151,7 +151,7 @@ nodeSpanCpt = here.component "nodeSpan" cpt
liftEffect $ do
T.write_ (Just
$ DroppedFile { blob: (UploadFileBlob blob)
, fileType: Just CSV
, fileType: Just TSV
, lang : EN
}) droppedFile
......@@ -214,6 +214,22 @@ nodeSpanCpt = here.component "nodeSpan" cpt
host <- R2.getPortalHost
-- Tooltip
let hasTooltip = nodeType == GT.NodeUser
tooltipEl = if hasTooltip then
nodeTooltip
{ id
, nodeType
, name
}
[
case mVersion of
Nothing -> mempty
Just v -> versionComparator v
]
else
H.div {} []
-- Render
pure $
......@@ -235,17 +251,9 @@ nodeSpanCpt = here.component "nodeSpan" cpt
-- // Abstract informations //
-- nodeTooltip
-- { id
-- , nodeType
-- , name
-- }
-- [
-- case mVersion of
-- Nothing -> mempty
-- Just v -> versionComparator v
-- ]
-- ,
tooltipEl
,
R.createPortal
[
fileTypeView
......
......@@ -63,22 +63,22 @@ actionDownloadGraphCpt = here.component "actionDownloadGraph" cpt where
where
href = url session $ Routes.NodeAPI GT.Graph (Just id) "gexf"
data NodeListDownloadFormat = NL_CSV | NL_JSON | NL_JSON_ZIP
data NodeListDownloadFormat = NL_TSV | NL_JSON | NL_JSON_ZIP
derive instance Eq NodeListDownloadFormat
derive instance Generic NodeListDownloadFormat _
instance Show NodeListDownloadFormat
where
show NL_CSV = "CSV"
show NL_TSV = "TSV"
show NL_JSON = "JSON"
show NL_JSON_ZIP = "JSON (zipped)"
urlNodeListDownloadFormat :: NodeListDownloadFormat -> String
urlNodeListDownloadFormat NL_CSV = "csv"
urlNodeListDownloadFormat NL_TSV = "tsv"
urlNodeListDownloadFormat NL_JSON = "json"
urlNodeListDownloadFormat NL_JSON_ZIP = "json.zip"
readNodeListDownloadFormat :: String -> NodeListDownloadFormat
readNodeListDownloadFormat "CSV" = NL_CSV
readNodeListDownloadFormat "TSV" = NL_TSV
readNodeListDownloadFormat "JSON" = NL_JSON
readNodeListDownloadFormat "JSON (zipped)" = NL_JSON_ZIP
readNodeListDownloadFormat _ = NL_JSON
......@@ -98,8 +98,7 @@ actionDownloadNodeListCpt = here.component "actionDownloadNodeList" cpt where
[ R2.select { className: "form-control"
, defaultValue: show downloadFormat'
, on: { change: onChange downloadFormat } }
[ opt NL_CSV
, opt NL_JSON
[ opt NL_JSON
, opt NL_JSON_ZIP ]
, H.div {} [ H.text $ info downloadFormat' ]
]
......@@ -111,21 +110,21 @@ actionDownloadNodeListCpt = here.component "actionDownloadNodeList" cpt where
info :: NodeListDownloadFormat -> String
info t = "Info about the Documents as " <> show t <> " format"
data NodeTextsDownloadFormat = NT_CSV | NT_JSON | NT_JSON_ZIP
data NodeTextsDownloadFormat = NT_TSV | NT_JSON | NT_JSON_ZIP
derive instance Eq NodeTextsDownloadFormat
derive instance Generic NodeTextsDownloadFormat _
instance Show NodeTextsDownloadFormat where
show NT_CSV = "CSV"
show NT_TSV = "TSV"
show NT_JSON = "JSON"
show NT_JSON_ZIP = "JSON (zipped)"
urlNodeTextsDownloadFormat :: NodeTextsDownloadFormat -> String
urlNodeTextsDownloadFormat NT_CSV = "csv"
urlNodeTextsDownloadFormat NT_TSV = "tsv"
urlNodeTextsDownloadFormat NT_JSON = "json"
urlNodeTextsDownloadFormat NT_JSON_ZIP = "json.zip"
readNodeTextsDownloadFormat :: String -> NodeTextsDownloadFormat
readNodeTextsDownloadFormat "CSV" = NT_CSV
readNodeTextsDownloadFormat "TSV" = NT_TSV
readNodeTextsDownloadFormat "JSON" = NT_JSON
readNodeTextsDownloadFormat "JSON (zippped)" = NT_JSON_ZIP
readNodeTextsDownloadFormat _ = NT_JSON_ZIP
......@@ -144,7 +143,7 @@ actionDownloadNodeTextsCpt = here.component "actionDownloadNodeTexts" cpt where
[ R2.select { className: "form-control"
, defaultValue: show downloadFormat'
, on: { change: onChange downloadFormat } }
[ opt NT_CSV
[ opt NT_TSV
, opt NT_JSON
, opt NT_JSON_ZIP ]
, H.div {} [ H.text $ info downloadFormat' ]
......
......@@ -126,7 +126,7 @@ uploadFileViewWithLangsCpt = here.component "uploadFileViewWithLangs" cpt
cpt { dispatch, langs, nodeType, session } _ = do
-- mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing
mFile <- T.useBox (Nothing :: Maybe UploadFile)
fileType <- T.useBox CSV
fileType <- T.useBox TSV
fileFormat <- T.useBox Plain
lang <- T.useBox EN
selection <- T.useBox ListSelection.MyListsFirst
......@@ -149,14 +149,14 @@ uploadFileViewWithLangsCpt = here.component "uploadFileViewWithLangs" cpt
]
, R2.row
[ H.div {className:"col-6 flex-space-around"}
[ Tools.formChoiceSafe { items: [ CSV
, CSV_HAL
[ Tools.formChoiceSafe { items: [ TSV
, TSV_HAL
, Istex
, WOS
, JSON
-- , Iramuteq
]
, default: CSV
, default: TSV
, callback: setFileType'
, print: show } []
, Tools.formChoiceSafe { items: [ Plain
......@@ -288,7 +288,7 @@ uploadButtonCpt = here.component "uploadButton" cpt
dispatch $ UploadFile nodeType fileType' fileFormat' lang' (Just name) contents selection'
liftEffect $ do
T.write_ Nothing mFile
T.write_ CSV fileType
T.write_ TSV fileType
T.write_ Plain fileFormat
T.write_ EN lang
T.write_ false onPendingBox
......@@ -303,7 +303,7 @@ uploadListViewCpt = here.component "uploadListView" cpt where
mFile
<- T.useBox (Nothing :: Maybe UploadFile)
fileType
<- T.useBox CSV
<- T.useBox TSV
fileFormat /\ fileFormatBox
<- R2.useBox' Plain
lang /\ langBox
......@@ -356,14 +356,14 @@ uploadListViewCpt = here.component "uploadListView" cpt where
[
B.formSelect
{ callback: \_ -> pure unit
, value: show CSV
, value: show TSV
, status: Disabled
, className: "col-5"
}
[
H.option
{ value: show CSV }
[ H.text $ show CSV ]
{ value: show TSV }
[ H.text $ show TSV ]
]
,
B.formSelect'
......@@ -502,7 +502,7 @@ fileTypeViewCpt = here.component "fileTypeView" cpt
[ R2.select {className: "col-md-12 form-control"
, on: {change: onChange}
}
(map renderOption [CSV, CSV_HAL, WOS, Iramuteq])
(map renderOption [TSV, TSV_HAL, WOS, Iramuteq])
]
where
onChange e l =
......@@ -582,7 +582,7 @@ uploadFile { contents, fileFormat, lang, fileType, id, nodeType, mName, selectio
, Tuple "_wjf_filetype" (Just $ show fileType)
, Tuple "_wjf_name" mName
]
csvBodyParams = [ Tuple "_wtf_data" (Just contents)
tsvBodyParams = [ Tuple "_wtf_data" (Just contents)
, Tuple "_wtf_filetype" (Just $ show fileType)
, Tuple "_wtf_fileformat" (Just $ show fileFormat)
, Tuple "_wf_lang" (Just $ show lang)
......@@ -595,7 +595,7 @@ uploadFile { contents, fileFormat, lang, fileType, id, nodeType, mName, selectio
Annuaire -> GT.UploadFile /\ (GR.NodeAPI nodeType (Just id) "annuaire") /\ bodyParams
NodeList -> case fileType of
JSON -> GT.ListUpload /\ (GR.NodeAPI nodeType (Just id) $ GT.asyncTaskTypePath GT.ListUpload) /\ jsonBodyParams
CSV -> GT.ListCSVUpload /\ (GR.NodeAPI NodeList (Just id) $ GT.asyncTaskTypePath GT.ListCSVUpload) /\ csvBodyParams
TSV -> GT.ListCSVUpload /\ (GR.NodeAPI NodeList (Just id) $ GT.asyncTaskTypePath GT.ListCSVUpload) /\ tsvBodyParams
_ -> GT.UploadFile /\ (GR.NodeAPI nodeType (Just id) "") /\ bodyParams
_ -> GT.UploadFile /\ (GR.NodeAPI nodeType (Just id) "") /\ bodyParams
......@@ -649,7 +649,7 @@ uploadTermListViewCpt = here.component "uploadTermListView" cpt
let uploadTypeHtml = R2.select { className: "form-control"
, defaultValue: show defaultUploadType
, on: { change: onUploadTypeChange uploadType } } (opt <$> [ CSV, JSON ])
, on: { change: onUploadTypeChange uploadType } } (opt <$> [ TSV, JSON ])
let footer = H.div {} [ uploadTermButton { dispatch
, mFile
......@@ -753,7 +753,7 @@ uploadFrameCalcViewWithLangsCpt = here.component "uploadFrameCalcViewWithLangs"
H.div
{ className: "col-12 flex-space-around" }
[ H.h4 {}
[ H.text "This will upload current calc as Corpus CSV" ]
[ H.text "This will upload current calc as Corpus TSV" ]
]
,
-- Lang
......
......@@ -13,7 +13,7 @@ import Web.File.Blob (Blob, size)
import Web.File.FileReader.Aff (readAsArrayBuffer, readAsText)
data FileType = CSV | CSV_HAL | Istex | WOS | PresseRIS | Arbitrary | JSON | Iramuteq
data FileType = TSV | TSV_HAL | Istex | WOS | PresseRIS | Arbitrary | JSON | Iramuteq
derive instance Generic FileType _
instance Eq FileType where eq = genericEq
......@@ -21,8 +21,8 @@ instance Show FileType where show = genericShow
instance Read FileType where
read :: String -> Maybe FileType
read "Arbitrary" = Just Arbitrary
read "CSV" = Just CSV
read "CSV_HAL" = Just CSV_HAL
read "TSV" = Just TSV
read "TSV_HAL" = Just TSV_HAL
read "Istex" = Just Istex
read "PresseRIS" = Just PresseRIS
read "WOS" = Just WOS
......
......@@ -156,7 +156,6 @@ settingsBoxLens Corpus =
, Calc
, NodeTexts
, NodeList
, Graph
-- , Dashboard
, Phylo
-- , NodeFrameNotebook
......
......@@ -38,7 +38,7 @@ selectionCpt = here.component "selection" cpt where
, value: selection'
, list: [ MyListsFirst
, OtherListsFirst
, SelectedLists []
-- , SelectedLists []
, NoList
]
}
......
......@@ -75,8 +75,8 @@ detailsTabCpt = here.component "" cpt where
-- Phylo params
H.ul
{ className: "phylo-details-tab__counter" }
[ detailsTimeUnit c.timeUnit
, detailsParams c.levelOfObservation "Level of observation"
[ detailsParams c.levelOfObservation "Level of observation"
, detailsTimeUnit c.timeUnit
, detailsClique c.clique
, detailsParams c.proximity "Proximity"
, detailsParams c.synchrony "Synchrony"
......@@ -104,27 +104,118 @@ detailsCount value label =
detailsParams :: forall a. (Show a) => a -> String -> R.Element
detailsParams value label =
H.li {} [ H.text $ label <> ": " <> show value ]
H.li
{ className: "phylo-details-tab__params__item"}
[
H.span
{ className: "phylo-details-tab__params__label"}
[
H.text $ label <> ":"
]
,
H.span
{ className: "phylo-details-tab__params__value"}
[ H.text $ show value]
]
detailsClique :: Cluster -> R.Element
detailsClique c =
H.li {} [ H.text $ "Cluster algo: " <> parseClique c]
R.fragment [
H.li
{ className: "phylo-details-tab__params__item"}
[ H.span
{ className: "phylo-details-tab__params__label"}
[ H.text "Topic detection strategy" ]
]
,
H.ul
{ className: "phylo-details-tab__counter" }
(parseClique c)
]
where
parseClique (Fis { _fis_support, _fis_size }) = "FIS. Support: " <> show _fis_support <> ". Size: " <> show _fis_size
parseClique :: Cluster -> Array R.Element
parseClique (Fis { _fis_support, _fis_size }) =
[
detailsParams "Fis" "Algorithm"
,
detailsParams _fis_support "Support"
,
detailsParams _fis_size "Size"
]
parseClique (MaxClique { _mcl_size, _mcl_threshold, _mcl_filter}) =
"MaxClique. Size: " <> show _mcl_size <> ". Threshhold: " <> show _mcl_threshold <> ". Filter: " <> _mcl_filter
[
detailsParams "MaxClique" "Algorithm"
,
detailsParams _mcl_size "Size"
,
detailsParams _mcl_threshold "Threshold"
,
detailsParams _mcl_filter "Filter"
]
detailsTimeUnit :: TimeUnit -> R.Element
detailsTimeUnit t =
H.li {} [ H.text $ "Time unit: " <> parseTimeUnit t]
R.fragment [
H.li
{ className: "phylo-details-tab__params__item" }
[ H.span
{ className: "phylo-details-tab__params__label" }
[ H.text "Inter-temporal Matching" ]
]
,
H.ul
{ className: "phylo-details-tab__counter" }
(parseTimeUnit t)
]
where
parseTimeUnit (Epoch {_epoch_period, _epoch_step, _epoch_matchingFrame}) =
"Epoch. Period: " <> show _epoch_period <> ". Step: " <> show _epoch_step <>". Matching frame: " <> show _epoch_matchingFrame
parseTimeUnit :: TimeUnit -> Array R.Element
parseTimeUnit (Epoch {_epoch_period, _epoch_step, _epoch_matchingFrame}) =
[
detailsParams "Epoch" "Time unit"
,
detailsParams _epoch_period "Period"
,
detailsParams _epoch_step "Step"
,
detailsParams _epoch_matchingFrame "Matching frame"
]
parseTimeUnit (Year {_year_period, _year_step, _year_matchingFrame}) =
"Year. Period: " <> show _year_period <> ". Step: " <> show _year_step <>". Matching frame: " <> show _year_matchingFrame
[
detailsParams "Year" "Time unit"
,
detailsParams _year_period "Period"
,
detailsParams _year_step "Step"
,
detailsParams _year_matchingFrame "Matching frame"
]
parseTimeUnit (Month {_month_period, _month_step, _month_matchingFrame}) =
"Month. Period: " <> show _month_period <> ". Step: " <> show _month_step <>". Matching frame: " <> show _month_matchingFrame
parseTimeUnit (Week {_week_period, _week_step, _week_matchingFrame}) =
"Week. Period: " <> show _week_period <> ". Step: " <> show _week_step <>". Matching frame: " <> show _week_matchingFrame
[
detailsParams "Month" "Time unit"
,
detailsParams _month_period "Period"
,
detailsParams _month_step "Step"
,
detailsParams _month_matchingFrame "Matching frame"
]
parseTimeUnit (Week {_week_period, _week_step, _week_matchingFrame}) =
[
detailsParams "Week" "Time unit"
,
detailsParams _week_period "Period"
,
detailsParams _week_step "Step"
,
detailsParams _week_matchingFrame "Matching frame"
]
parseTimeUnit (Day {_day_period, _day_step, _day_matchingFrame}) =
"Day. Period: " <> show _day_period <> ". Step: " <> show _day_step <>". Matching frame: " <> show _day_matchingFrame
[
detailsParams "Day" "Time unit"
,
detailsParams _day_period "Period"
,
detailsParams _day_step "Step"
,
detailsParams _day_matchingFrame "Matching frame"
]
......@@ -487,7 +487,7 @@ stringedMaybeToNumber s =
-- | To ["user", "sentiment analysis"] :: Array String
stringedArrayToArray :: String -> Array String
stringedArrayToArray str =
if String.contains (String.Pattern "\\\"") str
if String.contains (String.Pattern "\"") str
then
str # String.length
>>> (\length -> String.splitAt (length - 1) str)
......
......@@ -10,10 +10,10 @@ import Gargantext.Prelude
type Base = String
type NodeId = String
downloadCSV :: Base -> NodeId -> Aff (Either Error (Response String))
downloadCSV base nodeId = do
downloadTSV :: Base -> NodeId -> Aff (Either Error (Response String))
downloadTSV base nodeId = do
let req = defaultRequest
{ url = base <> "/" <> nodeId <> ".csv"
{ url = base <> "/" <> nodeId <> ".tsv"
, responseFormat = ResponseFormat.string
, method = Left GET }
request req
......@@ -586,6 +586,23 @@ $decreasing-color: #11638F;
}
}
&__params {
margin: $margin-y $margin-x;
&__item {
margin-left: space-x(2);
list-style: initial;
}
&__label {
font-weight: bold;
}
&__value {
margin-left: space-x(2);
}
}
&__delimiter {
margin: $margin-y $margin-x;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment