diff --git a/dist/styles/bootstrap-darkster.css b/dist/styles/bootstrap-darkster.css index d05f1ca3dac4a339f997fd65cbbed4fc8c995d3c..981ff0ec61e221e9ed5a9028fcc67b7d869c77dd 100644 --- a/dist/styles/bootstrap-darkster.css +++ b/dist/styles/bootstrap-darkster.css @@ -5927,6 +5927,7 @@ a.close.disabled { background-color: #fff; margin-left: 1.75rem; margin-right: 1.75rem; + max-width: 800px; } .b-modal__header { background-color: white; @@ -11099,7 +11100,7 @@ select.form-control { display: none; } .node-popup-tooltip .popup-container .toolbox-tab-content { - padding: 40px 56px; + padding: 32px; } .table tr td { diff --git a/dist/styles/bootstrap-default.css b/dist/styles/bootstrap-default.css index b473cf5f696c0ceb744cbdfa94551ddf04b107c8..75dc63f89dcc99b81dbbef39761e361828fcd5b5 100644 --- a/dist/styles/bootstrap-default.css +++ b/dist/styles/bootstrap-default.css @@ -5739,6 +5739,7 @@ a.close.disabled { background-color: #fff; margin-left: 1.75rem; margin-right: 1.75rem; + max-width: 800px; } .b-modal__header { background-color: rgba(0, 0, 0, 0.03); @@ -10905,7 +10906,7 @@ select.form-control { display: none; } .node-popup-tooltip .popup-container .toolbox-tab-content { - padding: 40px 56px; + padding: 32px; } .table tr td { diff --git a/dist/styles/bootstrap-greyson.css b/dist/styles/bootstrap-greyson.css index 9d702416a34f043aa1f78521ab4aba02051bfcba..04f4c440d8d15d579dba46c3f0a0dad235ce6b70 100644 --- a/dist/styles/bootstrap-greyson.css +++ b/dist/styles/bootstrap-greyson.css @@ -5578,6 +5578,7 @@ a.close.disabled { background-color: #fff; margin-left: 1.75rem; margin-right: 1.75rem; + max-width: 800px; } .b-modal__header { background-color: rgba(0, 0, 0, 0.03); @@ -10750,7 +10751,7 @@ select.form-control { display: none; } .node-popup-tooltip .popup-container .toolbox-tab-content { - padding: 40px 56px; + padding: 32px; } .table tr td { diff --git a/dist/styles/bootstrap-herbie.css b/dist/styles/bootstrap-herbie.css index 88e5a9a76e8af9382669a84d69ab093cd8bba19e..fc4cb2cdcf9873c864d873d9d7ec4794ef93614c 100644 --- a/dist/styles/bootstrap-herbie.css +++ b/dist/styles/bootstrap-herbie.css @@ -5803,6 +5803,7 @@ a.close.disabled { background-color: #fff; margin-left: 1.75rem; margin-right: 1.75rem; + max-width: 800px; } .b-modal__header { background-color: rgba(0, 0, 0, 0.03); @@ -10975,7 +10976,7 @@ select.form-control { display: none; } .node-popup-tooltip .popup-container .toolbox-tab-content { - padding: 40px 56px; + padding: 32px; } .table tr td { diff --git a/dist/styles/bootstrap-monotony.css b/dist/styles/bootstrap-monotony.css index 62eac1104362eeeb00f118be20435566a0639761..5b8f87af0e65d1c75901458bd3fe4347a9d33dd4 100644 --- a/dist/styles/bootstrap-monotony.css +++ b/dist/styles/bootstrap-monotony.css @@ -5876,6 +5876,7 @@ a.close.disabled { background-color: #fff; margin-left: 1.75rem; margin-right: 1.75rem; + max-width: 800px; } .b-modal__header { background-color: rgba(0, 0, 0, 0.03); @@ -11048,7 +11049,7 @@ select.form-control { display: none; } .node-popup-tooltip .popup-container .toolbox-tab-content { - padding: 40px 56px; + padding: 32px; } .table tr td { diff --git a/src/Gargantext/Components/Forest/Tree/Node/Action/Documentation.purs b/src/Gargantext/Components/Forest/Tree/Node/Action/Documentation.purs index 151c947c0cacfab6df9aff6aad2e0d42524002fe..42e84a8ce68028b320c2c9be01205c5332e9a7d3 100644 --- a/src/Gargantext/Components/Forest/Tree/Node/Action/Documentation.purs +++ b/src/Gargantext/Components/Forest/Tree/Node/Action/Documentation.purs @@ -1,6 +1,7 @@ module Gargantext.Components.Forest.Tree.Node.Action.Documentation where import Data.Maybe (Maybe(..)) +import Gargantext.Components.Bootstrap as B import Gargantext.Components.Forest.Tree.Node.Tools as Tools import Gargantext.Prelude (map, pure, show, ($), (<>)) import Gargantext.Types (NodeType) @@ -27,7 +28,10 @@ actionDocCpt = here.component "actionDoc" cpt Tools.panelNoFooter { mError: Nothing } ([ H.div { } - [ H.h5 { className: "text-primary" } [H.text "Documentation about the current node" ] + [ H.h5 { className: "text-primary font-weight-normal" } + [ B.icon { name: "question-circle" } + , H.span { className: "px-1"} [ H.text "Documentation" ] + ] , H.div { className: "" } [ H.dl { className: "row" } [ diff --git a/src/Gargantext/Components/Forest/Tree/Node/Action/Search.purs b/src/Gargantext/Components/Forest/Tree/Node/Action/Search.purs index f6aa3c34844e373b91b80f575d696e21fb4910db..ce14cd7c9e29b043e1fecd27867126873f4d2c88 100644 --- a/src/Gargantext/Components/Forest/Tree/Node/Action/Search.purs +++ b/src/Gargantext/Components/Forest/Tree/Node/Action/Search.purs @@ -62,19 +62,19 @@ actionSearchWithLangsCpt = here.component "actionSearchWithLangs" cpt cpt { dispatch, id, langs, session } _ = do { errors } <- Store.use search <- T.useBox $ defaultSearch { node_id = id } - pure $ R.fragment + pure $ H.div { className: "card-body toolbox-tab-content p-5" } [ H.p { className: "action-search mx-2" } - [ H.text $ "Search and create a private " - <> "corpus with the search query as corpus name." - ] + [ H.text $ "Search and create a private " + <> "corpus with the search query as corpus name." + ] , searchBar - { errors - , langs - , onSearch: searchOn dispatch - , search - , session - } - [] + { errors + , langs + , onSearch: searchOn dispatch + , search + , session + } + [] ] where searchOn diff --git a/src/Gargantext/Components/Forest/Tree/Node/Action/Upload.purs b/src/Gargantext/Components/Forest/Tree/Node/Action/Upload.purs index fac55ba1624d3de9890a68af66ba5961d7b8ca37..48cc9e32ac65bf5dcafa9502e60ecd47eb249ae0 100644 --- a/src/Gargantext/Components/Forest/Tree/Node/Action/Upload.purs +++ b/src/Gargantext/Components/Forest/Tree/Node/Action/Upload.purs @@ -140,106 +140,125 @@ uploadFileViewWithLangs = R2.leaf uploadFileViewWithLangsCpt uploadFileViewWithLangsCpt :: R.Component PropsWithLangs uploadFileViewWithLangsCpt = here.component "uploadFileViewWithLangs" cpt where - cpt { dispatch, langs, nodeType, session } _ = do - -- mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing - processed' /\ processed <- R2.useBox' false - message' /\ message <- R2.useBox' "" - mFile' /\ mFile <- R2.useBox' (Nothing :: Maybe UploadFile) - fileType' /\ fileType <- R2.useBox' TSV - fileFormat' /\ fileFormat <- R2.useBox' Plain - lang <- T.useBox EN - selection <- T.useBox ListSelection.MyListsFirst - infoText' /\ infoText <- R2.useBox' - "The following settings were found automatically, based on the extension of the provided file." - - let setFileType' val = T.write_ val fileType >>= \_ -> T.write_ "" infoText - let setFileFormat' val = T.write_ val fileFormat >>= \_ -> T.write_ "" infoText - let setLang' val = T.write_ val lang - - let props = { dispatch - , processed - , message - , fileFormat - , fileType - , lang - , mFile - , nodeType - , selection - } + cpt { dispatch, langs, nodeType, session } _ = do + -- mFile :: R.State (Maybe UploadFile) <- R.useState' Nothing + processed' /\ processed <- R2.useBox' false + alertType' /\ alertType <- R2.useBox' "d-none" -- by default, the alert box is not displayed + message' /\ message <- R2.useBox' "" + mFile' /\ mFile <- R2.useBox' (Nothing :: Maybe UploadFile) + fileType' /\ fileType <- R2.useBox' TSV + fileFormat' /\ fileFormat <- R2.useBox' Plain + lang <- T.useBox EN + selection <- T.useBox ListSelection.MyListsFirst + infoText' /\ infoText <- R2.useBox' + "The following settings were found automatically, based on the extension of the provided file. Please check and change if needed." + + let setFileType' val = T.write_ val fileType >>= \_ -> T.write_ "" infoText + let setFileFormat' val = T.write_ val fileFormat >>= \_ -> T.write_ "" infoText + let setLang' val = T.write_ val lang + + let titleSection = [ H.h5 { className: "text-primary font-weight-normal" } + [ B.icon { name: "upload" } + , H.span { className: "px-1"} [ H.text "Upload and analyze a corpus" ] + ] + , H.p { className: "small p-1 pl-3 pb-2" } + [ H.text "Allowed file types:", H.br {} + , H.text "- TSV/CSV (" + , H.a { className: "text-primary", href: "https://write.frame.gargantext.org/s/c02ec18bb82b0333a3fdd93d8fc3b391b502742af51b2f8a8cb4de774fa07508", target: "_blank" } + [ H.text "documentation TSV" ] + , H.text ")", H.br {} + , H.text "- TSV/CSV from HAL (specific format, sample soon available)", H.br {} + , H.text "- Istex (ZIP from the " + , H.a { className: "text-primary", href: "https://dl.istex.fr", target: "_blank" } + [ H.text "dl.istex.fr" ] + , H.text " search platform)", H.br {} + , H.text "- WOS: ZIP of TXT files from the Web of science platform (" + , H.a { className: "text-primary", href: "https://write.frame.gargantext.org/s/1da0b1f7eeb4fcd75c32b19e71249231618102e09fed4c695dabd0bb13ada610", target: "_blank" } + [ H.text "documentation WOS" ] + , H.text ")", H.br {} + , H.text "- JSON or ZIP of JSON files (such as an exported GarganText corpus)" + ] + ] + + let alertMessage = [ H.div { className: "alert " <> alertType', role: "alert" } + [ H.text message' ] + ] + + let fileName = case mFile' of + Nothing -> "Browse / choose a file (TSV/CSV or JSON or Zip of JSONs...)" + Just file -> file.name + + let props = { dispatch + , processed + , message + , fileFormat + , fileType + , lang + , mFile + , nodeType + , selection + , alertType + } - let fileUpload = - [ R2.row - [ H.div { className:"col-12 flex-space-around"} - [ H.div { className: "form-group" } - [ - H.div { className:"custom-file" } - [ - H.input { type: "file" - , className: "form-control" - , placeholder: "Choose file" - , on: {change: onChangeContents props} - , id: "customImportFile" - } - , H.label { className:"custom-file-label", for:"customImportFile" } + let fileUpload = + [ R2.row + [ H.div { className:"col-12 flex-space-around"} + [ H.div { className: "form-group" } + [ + H.div { className:"custom-file" } [ - H.text "Choose file or drag and drop here" + H.input { type: "file" + , className: "form-control" + , placeholder: "Choose file" + , on: {change: onChangeContents props} + , id: "customImportFile" + } + , H.label { className:"custom-file-label", for:"customImportFile" } + [ + H.text fileName + ] ] ] + -- , H.text message' ] - , H.text message' ] ] - ] - let selects = if processed' then - [ R2.row - [ H.div { className:"col-12 flex-space-around"} - [ H.div { className: "form-group" } - [ H.input { type: "file" - , className: "form-control" - , placeholder: "Choose file" - , on: {change: onChangeContents props} - } + let selects = if processed' then + [ R2.row + [ H.div {className:"col-12 flex-space-around"} + [ H.div { className: "alert alert-warning", role: "alert" } + [ H.text infoText' ] + , B.formSelect' { list: [ TSV + , TSV_HAL + , Istex + , WOS + , JSON + -- , Iramuteq + ] + , value: fileType' + , callback: setFileType' } [] + , B.formSelect' { list: [ Plain + , ZIP ] + , value: fileFormat' + , callback: setFileFormat' } [] ] - , H.text message' - ] - ] - ] - let selects = if processed' then - [ R2.row - [ H.div {className:"col-6 flex-space-around"} - [ H.text infoText' - , B.formSelect' { list: [ TSV - , TSV_HAL - , Istex - , WOS - , JSON - -- , Iramuteq - ] - , value: fileType' - , callback: setFileType' } [] - , B.formSelect' { list: [ Plain - , ZIP ] - , value: fileFormat' - , callback: setFileFormat' } [] ] - ] - , R2.row - [ H.div { className: "col-6 flex-space-around" } - [ H.text "Please choose the language of your documents and the list to use." - , Tools.formChoiceSafe { items: langs <> [No_extraction] - , default: EN - , callback: setLang' - , print: show - } [] - , ListSelection.selection { selection, session } [] + , R2.row + [ H.div { className: "col-12 flex-space-around" } + [ H.text "Please choose the language of your documents and the list to use." + , Tools.formChoiceSafe { items: langs <> [No_extraction] + , default: EN + , callback: setLang' + , print: show + } [] + , ListSelection.selection { selection, session } [] + ] ] ] - ] - else [] - let bodies = fileUpload <> selects - let footer = H.div {} [ uploadButton props [] - ] - pure $ Tools.panel { mError: Nothing } (bodies <> [ footer ]) + else [] + let bodies = titleSection <> fileUpload <> alertMessage <> selects + let footer = H.div {} [ uploadButton props [] ] + pure $ Tools.panel { mError: Nothing } (bodies <> [ footer ]) -- | Properties of a file upload type UploadFileProps = @@ -252,6 +271,7 @@ type UploadFileProps = , mFile :: T.Box (Maybe UploadFile) , nodeType :: GT.NodeType , selection :: T.Box ListSelection.Selection + , alertType :: T.Box String ) -- | Callback called upon selecting a file in the upload file selector. @@ -265,6 +285,7 @@ onChangeContents props@{ dispatch , mFile , nodeType , selection + , alertType } e = do let mF = R2.inputFileNameWithBlob 0 e E.preventDefault e @@ -337,6 +358,7 @@ checkFileUpdateParams { dispatch , mFile , nodeType , selection + , alertType } = do processed' <- T.read processed fileType' <- T.read fileType @@ -357,11 +379,13 @@ checkFileUpdateParams { dispatch T.write_ ZIP fileFormat -- update processed and message T.write_ true processed - T.write_ "" message + T.write_ "The file seems to be allowed. Let's continue." message + T.write_ "alert-success" alertType Left err -> liftEffect $ do here.log2 "[uploadFileCheck] error" err T.write_ false processed T.write_ err message + T.write_ "alert-danger" alertType Just false -> do case fileTypeFromFileName name of Just ft -> do @@ -371,37 +395,41 @@ checkFileUpdateParams { dispatch T.write_ Plain fileFormat -- update processed and message T.write_ true processed - T.write_ "" message + T.write_ "File uploaded and successfully analysed." message + T.write_ "alert-success" alertType Nothing -> do here.log2 "[uploadFileCheck] unkown filetype" name T.write_ false processed T.write_ "This filetype is not supported." message + T.write_ "alert-danger" alertType Nothing -> do here.log2 "[uploadFileCheck] extension invalid" name T.write_ false processed T.write_ "The file extension is invalid." message + T.write_ "alert-danger" alertType uploadButtonCpt :: R.Component UploadFileProps uploadButtonCpt = here.component "uploadButton" cpt where - cpt - { dispatch - , processed - , message - , fileFormat - , fileType - , lang - , mFile - , nodeType - , selection - } _ = do - processed' <- T.useLive T.unequal processed - fileType' <- T.useLive T.unequal fileType - fileFormat' <- T.useLive T.unequal fileFormat - mFile' <- T.useLive T.unequal mFile - lang' <- T.useLive T.unequal lang - selection' <- T.useLive T.unequal selection - onPending /\ onPendingBox <- R2.useBox' false + cpt + { dispatch + , processed + , message + , fileFormat + , fileType + , lang + , mFile + , nodeType + , selection + , alertType + } _ = do + processed' <- T.useLive T.unequal processed + fileType' <- T.useLive T.unequal fileType + fileFormat' <- T.useLive T.unequal fileFormat + mFile' <- T.useLive T.unequal mFile + lang' <- T.useLive T.unequal lang + selection' <- T.useLive T.unequal selection + onPending /\ onPendingBox <- R2.useBox' false let disabled = isNothing mFile' || onPending || not processed' @@ -480,6 +508,8 @@ uploadListViewCpt = here.component "uploadListView" cpt <- R2.useBox' EN selection <- T.useBox ListSelection.MyListsFirst + alertType + <- T.useBox "" let props = { dispatch , processed , message @@ -488,6 +518,7 @@ uploadListViewCpt = here.component "uploadListView" cpt , lang: langBox , mFile , selection + , alertType , nodeType: GT.Annuaire } @@ -663,10 +694,34 @@ fileTypeViewCpt = here.component "fileTypeView" cpt R2.fromMaybe droppedFile' \df -> H.div tooltipProps - [ H.div { className: "card" } - [ panelHeading - , panelBody df - , panelFooter df + [ + H.div { className: "card"} + [ panelHeading + , panelBody df + , panelFooter df + ] + ] + + where + tooltipProps = { className: "" + , id : "file-type-tooltip" + , title : "Choose file type" + , data : { toggle: "tooltip" + , placement: "right" + } + } + panelHeading = + H.div {className: "card-header"} + [ H.div {className: "row"} + [ H.div {className: "col-md-10"} + [ H.h5 { className: "font-weight-normal" } [H.text "Choose file type"] ] + , H.div {className: "col-md-2"} + [ H.a {className: "btn glyphitem fa fa-remove-circle" + , on: {click: \_ -> do + T.write_ Nothing droppedFile + T.write_ false isDragOver + } + , title: "Close"} [] ] ] @@ -701,8 +756,8 @@ fileTypeViewCpt = here.component "fileTypeView" cpt ] panelBody (DroppedFile { blob }) = - H.div {className: "card-body toolbox-tab-content"} - [ R2.select { className: "col-md-12 form-control" + H.div {className: "card-body toolbox-tab-content p-5"} + [ R2.select {className: "col-md-12 form-control" , on: {change: onChange} } (map renderOption [TSV, TSV_HAL, WOS, Iramuteq]) diff --git a/src/Gargantext/Components/Forest/Tree/Node/Box.purs b/src/Gargantext/Components/Forest/Tree/Node/Box.purs index 7951503081d2c44d7bd3939635d608b62a7e5d5d..eecfceaada654b819722b58368abb7b4f89e42ad 100644 --- a/src/Gargantext/Components/Forest/Tree/Node/Box.purs +++ b/src/Gargantext/Components/Forest/Tree/Node/Box.purs @@ -140,7 +140,6 @@ nodePopupViewCpt = here.component "nodePopupView" cpt H.div { className: intercalate " " [ "popup-container__body" - , "card-body" , "toolbox-tabs-labels" ] } $ @@ -172,10 +171,11 @@ nodePopupViewCpt = here.component "nodePopupView" cpt else [] mPanelAction :: Record NodePopupS -> Record NodePopupProps -> R.Element - mPanelAction + + mPanelAction { action: Just action } { boxes, dispatch, id, name, nodeType, session } = - panelAction + panelAction { action , boxes , dispatch @@ -184,39 +184,67 @@ nodePopupViewCpt = here.component "nodePopupView" cpt , nodeType , session } - mPanelAction { action: Nothing } _ = - H.div - { className: "popup-container__footer card-footer" } - [ H.h6 - {} - [ B.icon - { name: "hand-pointer-o" - , className: "mr-1" - } - , H.text "Select available actions of this node" - ] - , H.ul - { className: "panel-actions" } - [ H.div - { className: "panel-actions__ok-to-use" } - [ B.icon - { name: "circle" } - , B.span_ "usable" - ] - , H.div - { className: "panel-actions__almost-useable" } - [ B.icon - { name: "circle" } - , B.span_ "almost useable" - ] - , H.div - { className: "panel-actions__development-in-progress" } - [ B.icon - { name: "circle" } - , B.span_ "development in progress" - ] - ] + mPanelAction { action: Nothing } + props@{ boxes, dispatch, id, name, nodeType, session } = + R.fragment + [ H.div { className: "" } + [ + panelAction { action: Documentation nodeType + , boxes + , dispatch + , id + , name + , nodeType + , session + } ] + -- , H.div + -- { className: "popup-container__footer card-footer" } + -- [ + -- H.h6 + -- {} + -- [ + -- B.icon + -- { name: "hand-pointer-o" + -- , className: "mr-1" + -- } + -- , + -- H.text "Select available actions of this node" + -- ] + -- , + -- H.ul + -- { className: "panel-actions" } + -- [ + -- H.div + -- { className: "panel-actions__ok-to-use" } + -- [ + -- B.icon + -- { name: "circle" } + -- , + -- B.span_ "usable" + -- ] + -- , + -- H.div + -- { className: "panel-actions__almost-useable" } + -- [ + -- B.icon + -- { name: "circle" } + -- , + -- B.span_ "almost useable" + -- ] + -- , + -- H.div + -- { className: "panel-actions__development-in-progress" } + -- [ + -- B.icon + -- { name: "circle" } + -- , + -- B.span_ "development in progress" + -- ] + -- ] + -- ] + ] + type ActionState = ( action :: Maybe NodeAction @@ -338,6 +366,7 @@ panelAction = R2.leaf panelActionCpt panelActionCpt :: R.Component PanelActionProps panelActionCpt = here.component "panelAction" cpt where +<<<<<<< HEAD cpt { action: Add xs, dispatch, id, name, nodeType } _ = pure $ addNodeView { dispatch, id, name, nodeType, nodeTypes: xs } [] cpt { action: AddingContact, dispatch, id } _ = @@ -375,3 +404,43 @@ panelActionCpt = here.component "panelAction" cpt cpt { action: WriteNodesDocuments, dispatch, id, session } _ = pure $ actionWriteNodesDocuments { dispatch, id, session } [] cpt _ _ = pure $ H.div {} [] +======= + cpt { action: Add xs, dispatch, id, name, nodeType} _ = + pure $ addNodeView {dispatch, id, name, nodeType, nodeTypes: xs} [] + cpt { action : AddingContact, dispatch, id } _ = + pure $ Contact.actionAddContact { dispatch, id } [] + cpt { action: Config, nodeType } _ = + -- pure $ fragmentPT $ "Config " <> show nodeType + pure $ H.div { className: "card-body toolbox-tab-content p-5" } [ H.text $ "Config " <> show nodeType ] + cpt { action: Delete, nodeType, dispatch} _ = + pure $ actionDelete { dispatch, nodeType } [] + cpt { action: Documentation nodeType} _ = + pure $ actionDoc { nodeType } [] + cpt { action: Download, id, nodeType, session} _ = + pure $ actionDownload { id, nodeType, session } [] + cpt { action: Link {subTreeParams}, dispatch, id, nodeType, session } _ = + pure $ linkNode { dispatch, id, nodeType, session, subTreeParams } [] + cpt { action: ManageTeam, nodeType, id, session} _ = + pure $ actionManageTeam { id, nodeType, session } [] + cpt { action: Merge {subTreeParams}, dispatch, id, nodeType, session } _ = + pure $ mergeNode { dispatch, id, nodeType, session, subTreeParams } [] + cpt { action: Move {subTreeParams}, dispatch, id, nodeType, session } _ = + pure $ moveNode { dispatch, id, nodeType, session, subTreeParams } [] + cpt { action : Publish {subTreeParams}, dispatch, id, nodeType, session } _ = + pure $ Share.publishNode { dispatch, id, nodeType, session, subTreeParams } [] + cpt { action: Reconstruct , dispatch, nodeType } _ = + pure $ update { dispatch, nodeType } [] + cpt { action: Refresh , dispatch, nodeType } _ = + pure $ update { dispatch, nodeType } [] + cpt { action: ReloadWithSettings , dispatch, nodeType } _ = + pure $ update { dispatch, nodeType } [] + cpt { action: SearchBox, dispatch, id, session } _ = + pure $ actionSearch { dispatch, id: Just id, session } [] + cpt { action : Share, id, session } _ = pure $ Share.shareNode { id, session } [] + cpt { action: ShareURL, id, nodeType, session } _ = pure $ Share.shareURL { nodeType, id, session } [] + cpt { action: Upload, dispatch, id, nodeType, session} _ = + pure $ actionUpload { dispatch, id, nodeType, session } [] + cpt { action: WriteNodesDocuments, dispatch, id, session } _ = + pure $ actionWriteNodesDocuments { dispatch, id, session } [] + cpt _ _ = pure $ H.div {} [] +>>>>>>> 645780497 (default tab first icons and node upload form alert messages) diff --git a/src/Gargantext/Components/Forest/Tree/Node/Tools.purs b/src/Gargantext/Components/Forest/Tree/Node/Tools.purs index d1ae57383f81c831f0f1fe20b720a91fc4ca2365..a09cf84ecd84ca3478a72275afa87d45d06e2ee3 100644 --- a/src/Gargantext/Components/Forest/Tree/Node/Tools.purs +++ b/src/Gargantext/Components/Forest/Tree/Node/Tools.purs @@ -52,7 +52,7 @@ panelCpt = here.component "panel" cpt ] pure $ R.fragment - [ H.div { className: "card-body toolbox-tab-content" } + [ H.div { className: "card-body toolbox-tab-content p-5" } [ H.div { className: "card-text" } [ R2.row -- TODO add type for text or form here [ H.form {className: "form-horizontal"} bodies ] diff --git a/src/sass/_legacy/_styles.sass b/src/sass/_legacy/_styles.sass index 526a2c76b93242750de80fcde4f4cfbc00178eba..309b160b1e16610767f0dd75052adb37e58c83ff 100644 --- a/src/sass/_legacy/_styles.sass +++ b/src/sass/_legacy/_styles.sass @@ -413,6 +413,6 @@ select.form-control display: none .toolbox-tab-content - padding: space-x(5) space-x(7) + padding: space-x(4) diff --git a/src/sass/components/_grouped.scss b/src/sass/components/_grouped.scss index bbfaac446bc4bba6fb009c99eaea31e8979bc16b..26d43876c00bc386a4405ddf5cabc71da739e68e 100644 --- a/src/sass/components/_grouped.scss +++ b/src/sass/components/_grouped.scss @@ -46,6 +46,7 @@ background-color: $modal-content-bg; margin-left: $wrapper-margin; margin-right: $wrapper-margin; + max-width: 800px; } &__header {