mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 15:15:58 +00:00
Externalize strings in upload page
This commit is contained in:
parent
12cad398ac
commit
968c8e02b7
@ -139,13 +139,13 @@ mainContent model =
|
|||||||
viewRegister texts model
|
viewRegister texts model
|
||||||
|
|
||||||
UploadPage mid ->
|
UploadPage mid ->
|
||||||
viewUpload mid model
|
viewUpload texts mid model
|
||||||
|
|
||||||
NewInvitePage ->
|
NewInvitePage ->
|
||||||
viewNewInvite texts model
|
viewNewInvite texts model
|
||||||
|
|
||||||
ItemDetailPage id ->
|
ItemDetailPage id ->
|
||||||
viewItemDetail id model
|
viewItemDetail texts id model
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -476,8 +476,8 @@ viewNewInvite texts model =
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
viewUpload : Maybe String -> Model -> List (Html Msg)
|
viewUpload : Messages -> Maybe String -> Model -> List (Html Msg)
|
||||||
viewUpload mid model =
|
viewUpload texts mid model =
|
||||||
[ Html.map UploadMsg
|
[ Html.map UploadMsg
|
||||||
(Upload.viewSidebar
|
(Upload.viewSidebar
|
||||||
mid
|
mid
|
||||||
@ -487,7 +487,8 @@ viewUpload mid model =
|
|||||||
model.uploadModel
|
model.uploadModel
|
||||||
)
|
)
|
||||||
, Html.map UploadMsg
|
, Html.map UploadMsg
|
||||||
(Upload.viewContent mid
|
(Upload.viewContent texts.upload
|
||||||
|
mid
|
||||||
model.flags
|
model.flags
|
||||||
model.uiSettings
|
model.uiSettings
|
||||||
model.uploadModel
|
model.uploadModel
|
||||||
@ -495,21 +496,21 @@ viewUpload mid model =
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
viewItemDetail : String -> Model -> List (Html Msg)
|
viewItemDetail : Messages -> String -> Model -> List (Html Msg)
|
||||||
viewItemDetail id model =
|
viewItemDetail texts id model =
|
||||||
let
|
let
|
||||||
inav =
|
inav =
|
||||||
Page.Home.Data.itemNav id model.homeModel
|
Page.Home.Data.itemNav id model.homeModel
|
||||||
in
|
in
|
||||||
[ Html.map ItemDetailMsg
|
[ Html.map ItemDetailMsg
|
||||||
(ItemDetail.viewSidebar
|
(ItemDetail.viewSidebar texts.itemDetail
|
||||||
model.sidebarVisible
|
model.sidebarVisible
|
||||||
model.flags
|
model.flags
|
||||||
model.uiSettings
|
model.uiSettings
|
||||||
model.itemDetailModel
|
model.itemDetailModel
|
||||||
)
|
)
|
||||||
, Html.map ItemDetailMsg
|
, Html.map ItemDetailMsg
|
||||||
(ItemDetail.viewContent
|
(ItemDetail.viewContent texts.itemDetail
|
||||||
inav
|
inav
|
||||||
model.flags
|
model.flags
|
||||||
model.uiSettings
|
model.uiSettings
|
||||||
|
@ -18,6 +18,7 @@ import File.Select
|
|||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (..)
|
import Html.Events exposing (..)
|
||||||
|
import Messages.DropzoneComp exposing (Texts)
|
||||||
import Styles as S
|
import Styles as S
|
||||||
import Util.Html exposing (onDragEnter, onDragLeave, onDragOver, onDropFiles)
|
import Util.Html exposing (onDragEnter, onDragLeave, onDragOver, onDropFiles)
|
||||||
|
|
||||||
@ -124,8 +125,8 @@ filterMime model files =
|
|||||||
--- View2
|
--- View2
|
||||||
|
|
||||||
|
|
||||||
view2 : Model -> Html Msg
|
view2 : Texts -> Model -> Html Msg
|
||||||
view2 model =
|
view2 texts model =
|
||||||
div
|
div
|
||||||
[ classList
|
[ classList
|
||||||
[ ( "bg-opacity-100 bg-blue-100 dark:bg-lightblue-800", model.state.hover )
|
[ ( "bg-opacity-100 bg-blue-100 dark:bg-lightblue-800", model.state.hover )
|
||||||
@ -144,24 +145,23 @@ view2 model =
|
|||||||
]
|
]
|
||||||
[ i [ class "fa fa-mouse-pointer" ] []
|
[ i [ class "fa fa-mouse-pointer" ] []
|
||||||
, div [ class "ml-3" ]
|
, div [ class "ml-3" ]
|
||||||
[ text "Drop files here"
|
[ text texts.dropFilesHere
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
, B.horizontalDivider
|
, B.horizontalDivider
|
||||||
{ label = "Or"
|
{ label = texts.or
|
||||||
, topCss = "w-2/3 mb-4 hidden md:inline-flex"
|
, topCss = "w-2/3 mb-4 hidden md:inline-flex"
|
||||||
, labelCss = "px-4 bg-gray-200 bg-opacity-50"
|
, labelCss = "px-4 bg-gray-200 bg-opacity-50"
|
||||||
, lineColor = "bg-gray-300 dark:bg-bluegray-600"
|
, lineColor = "bg-gray-300 dark:bg-bluegray-600"
|
||||||
}
|
}
|
||||||
, B.primaryBasicButton
|
, B.primaryBasicButton
|
||||||
{ label = "Select ..."
|
{ label = texts.select
|
||||||
, icon = "fa fa-folder-open font-thin"
|
, icon = "fa fa-folder-open font-thin"
|
||||||
, handler = onClick PickFiles
|
, handler = onClick PickFiles
|
||||||
, attrs = [ href "#" ]
|
, attrs = [ href "#" ]
|
||||||
, disabled = not model.state.active
|
, disabled = not model.state.active
|
||||||
}
|
}
|
||||||
, div [ class "text-center opacity-75 text-sm mt-4" ]
|
, div [ class "text-center opacity-75 text-sm mt-4" ]
|
||||||
[ text "Choose document files (pdf, docx, txt, html, …). "
|
[ text texts.selectInfo
|
||||||
, text "Archives (zip and eml) are extracted."
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
@ -13,6 +13,7 @@ import Data.Flags exposing (Flags)
|
|||||||
import Data.ItemNav exposing (ItemNav)
|
import Data.ItemNav exposing (ItemNav)
|
||||||
import Data.UiSettings exposing (UiSettings)
|
import Data.UiSettings exposing (UiSettings)
|
||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
|
import Messages.ItemDetailComp exposing (Texts)
|
||||||
import Page exposing (Page(..))
|
import Page exposing (Page(..))
|
||||||
|
|
||||||
|
|
||||||
@ -30,6 +31,6 @@ update =
|
|||||||
Comp.ItemDetail.Update.update
|
Comp.ItemDetail.Update.update
|
||||||
|
|
||||||
|
|
||||||
view2 : ItemNav -> UiSettings -> Model -> Html Msg
|
view2 : Texts -> ItemNav -> UiSettings -> Model -> Html Msg
|
||||||
view2 =
|
view2 =
|
||||||
Comp.ItemDetail.View2.view
|
Comp.ItemDetail.View2.view
|
||||||
|
@ -3,20 +3,20 @@ module Comp.ItemDetail.AddFilesForm exposing (view)
|
|||||||
import Comp.Dropzone
|
import Comp.Dropzone
|
||||||
import Comp.ItemDetail.Model exposing (..)
|
import Comp.ItemDetail.Model exposing (..)
|
||||||
import Comp.Progress
|
import Comp.Progress
|
||||||
import Data.DropdownStyle
|
|
||||||
import Dict
|
import Dict
|
||||||
import File exposing (File)
|
import File exposing (File)
|
||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (onCheck, onClick, onInput)
|
import Html.Events exposing (onClick)
|
||||||
|
import Messages.ItemDetail.AddFilesForm exposing (Texts)
|
||||||
import Set
|
import Set
|
||||||
import Styles as S
|
import Styles as S
|
||||||
import Util.File exposing (makeFileId)
|
import Util.File exposing (makeFileId)
|
||||||
import Util.Size
|
import Util.Size
|
||||||
|
|
||||||
|
|
||||||
view : Model -> Html Msg
|
view : Texts -> Model -> Html Msg
|
||||||
view model =
|
view texts model =
|
||||||
div
|
div
|
||||||
[ classList
|
[ classList
|
||||||
[ ( "hidden", not model.addFilesOpen )
|
[ ( "hidden", not model.addFilesOpen )
|
||||||
@ -28,7 +28,7 @@ view model =
|
|||||||
[ text "Add more files to this item"
|
[ text "Add more files to this item"
|
||||||
]
|
]
|
||||||
, Html.map AddFilesMsg
|
, Html.map AddFilesMsg
|
||||||
(Comp.Dropzone.view2 model.addFilesModel)
|
(Comp.Dropzone.view2 texts.dropzone model.addFilesModel)
|
||||||
, div [ class "flex flex-row space-x-2 mt-2" ]
|
, div [ class "flex flex-row space-x-2 mt-2" ]
|
||||||
[ button
|
[ button
|
||||||
[ class S.primaryButton
|
[ class S.primaryButton
|
||||||
|
@ -23,17 +23,18 @@ import Data.UiSettings exposing (UiSettings)
|
|||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (onClick)
|
import Html.Events exposing (onClick)
|
||||||
|
import Messages.ItemDetailComp exposing (Texts)
|
||||||
import Page exposing (Page(..))
|
import Page exposing (Page(..))
|
||||||
import Styles as S
|
import Styles as S
|
||||||
import Util.Time
|
import Util.Time
|
||||||
|
|
||||||
|
|
||||||
view : ItemNav -> UiSettings -> Model -> Html Msg
|
view : Texts -> ItemNav -> UiSettings -> Model -> Html Msg
|
||||||
view inav settings model =
|
view texts inav settings model =
|
||||||
div [ class "flex flex-col h-full" ]
|
div [ class "flex flex-col h-full" ]
|
||||||
[ header settings model
|
[ header settings model
|
||||||
, menuBar inav settings model
|
, menuBar inav settings model
|
||||||
, body inav settings model
|
, body texts inav settings model
|
||||||
, itemModal model
|
, itemModal model
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -194,20 +195,20 @@ menuBar inav settings model =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
body : ItemNav -> UiSettings -> Model -> Html Msg
|
body : Texts -> ItemNav -> UiSettings -> Model -> Html Msg
|
||||||
body inav settings model =
|
body texts _ settings model =
|
||||||
div [ class "grid gap-2 grid-cols-1 md:grid-cols-3 h-full" ]
|
div [ class "grid gap-2 grid-cols-1 md:grid-cols-3 h-full" ]
|
||||||
[ leftArea settings model
|
[ leftArea texts settings model
|
||||||
, rightArea settings model
|
, rightArea settings model
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
leftArea : UiSettings -> Model -> Html Msg
|
leftArea : Texts -> UiSettings -> Model -> Html Msg
|
||||||
leftArea settings model =
|
leftArea texts settings model =
|
||||||
div [ class "w-full md:order-first md:mr-2 flex flex-col" ]
|
div [ class "w-full md:order-first md:mr-2 flex flex-col" ]
|
||||||
[ addDetailForm settings model
|
[ addDetailForm settings model
|
||||||
, sendMailForm settings model
|
, sendMailForm settings model
|
||||||
, Comp.ItemDetail.AddFilesForm.view model
|
, Comp.ItemDetail.AddFilesForm.view texts.addFilesForm model
|
||||||
, Comp.ItemDetail.Notes.view model
|
, Comp.ItemDetail.Notes.view model
|
||||||
, div
|
, div
|
||||||
[ classList
|
[ classList
|
||||||
|
@ -7,8 +7,11 @@ module Messages exposing
|
|||||||
|
|
||||||
import Messages.App
|
import Messages.App
|
||||||
import Messages.CollectiveSettingsPage
|
import Messages.CollectiveSettingsPage
|
||||||
|
import Messages.ItemDetailPage
|
||||||
import Messages.LoginPage
|
import Messages.LoginPage
|
||||||
|
import Messages.NewInvitePage
|
||||||
import Messages.RegisterPage
|
import Messages.RegisterPage
|
||||||
|
import Messages.UploadPage
|
||||||
import UiLanguage exposing (UiLanguage(..))
|
import UiLanguage exposing (UiLanguage(..))
|
||||||
|
|
||||||
|
|
||||||
@ -23,6 +26,9 @@ type alias Messages =
|
|||||||
, collectiveSettings : Messages.CollectiveSettingsPage.Texts
|
, collectiveSettings : Messages.CollectiveSettingsPage.Texts
|
||||||
, login : Messages.LoginPage.Texts
|
, login : Messages.LoginPage.Texts
|
||||||
, register : Messages.RegisterPage.Texts
|
, register : Messages.RegisterPage.Texts
|
||||||
|
, newInvite : Messages.NewInvitePage.Texts
|
||||||
|
, upload : Messages.UploadPage.Texts
|
||||||
|
, itemDetail : Messages.ItemDetailPage.Texts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -79,6 +85,9 @@ gb =
|
|||||||
, collectiveSettings = Messages.CollectiveSettingsPage.gb
|
, collectiveSettings = Messages.CollectiveSettingsPage.gb
|
||||||
, login = Messages.LoginPage.gb
|
, login = Messages.LoginPage.gb
|
||||||
, register = Messages.RegisterPage.gb
|
, register = Messages.RegisterPage.gb
|
||||||
|
, newInvite = Messages.NewInvitePage.gb
|
||||||
|
, upload = Messages.UploadPage.gb
|
||||||
|
, itemDetail = Messages.ItemDetailPage.gb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -92,4 +101,7 @@ de =
|
|||||||
, collectiveSettings = Messages.CollectiveSettingsPage.de
|
, collectiveSettings = Messages.CollectiveSettingsPage.de
|
||||||
, login = Messages.LoginPage.de
|
, login = Messages.LoginPage.de
|
||||||
, register = Messages.RegisterPage.de
|
, register = Messages.RegisterPage.de
|
||||||
|
, newInvite = Messages.NewInvitePage.de
|
||||||
|
, upload = Messages.UploadPage.de
|
||||||
|
, itemDetail = Messages.ItemDetailPage.de
|
||||||
}
|
}
|
||||||
|
20
modules/webapp/src/main/elm/Messages/DropzoneComp.elm
Normal file
20
modules/webapp/src/main/elm/Messages/DropzoneComp.elm
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
module Messages.DropzoneComp exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
type alias Texts =
|
||||||
|
{ dropFilesHere : String
|
||||||
|
, or : String
|
||||||
|
, select : String
|
||||||
|
, selectInfo : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gb : Texts
|
||||||
|
gb =
|
||||||
|
{ dropFilesHere = "Drop files here"
|
||||||
|
, or = "Or"
|
||||||
|
, select = "Select ..."
|
||||||
|
, selectInfo =
|
||||||
|
"Choose document files (pdf, docx, txt, html, …). "
|
||||||
|
++ "Archives (zip and eml) are extracted."
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
module Messages.ItemDetail.AddFilesForm exposing (..)
|
||||||
|
|
||||||
|
import Messages.DropzoneComp
|
||||||
|
|
||||||
|
|
||||||
|
type alias Texts =
|
||||||
|
{ dropzone : Messages.DropzoneComp.Texts }
|
||||||
|
|
||||||
|
|
||||||
|
gb : Texts
|
||||||
|
gb =
|
||||||
|
{ dropzone = Messages.DropzoneComp.gb }
|
14
modules/webapp/src/main/elm/Messages/ItemDetailComp.elm
Normal file
14
modules/webapp/src/main/elm/Messages/ItemDetailComp.elm
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
module Messages.ItemDetailComp exposing (..)
|
||||||
|
|
||||||
|
import Messages.ItemDetail.AddFilesForm
|
||||||
|
|
||||||
|
|
||||||
|
type alias Texts =
|
||||||
|
{ addFilesForm : Messages.ItemDetail.AddFilesForm.Texts
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gb : Texts
|
||||||
|
gb =
|
||||||
|
{ addFilesForm = Messages.ItemDetail.AddFilesForm.gb
|
||||||
|
}
|
21
modules/webapp/src/main/elm/Messages/ItemDetailPage.elm
Normal file
21
modules/webapp/src/main/elm/Messages/ItemDetailPage.elm
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
module Messages.ItemDetailPage exposing (..)
|
||||||
|
|
||||||
|
import Messages.ItemDetailComp
|
||||||
|
|
||||||
|
|
||||||
|
type alias Texts =
|
||||||
|
{ itemDetail : Messages.ItemDetailComp.Texts
|
||||||
|
, editMetadata : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gb : Texts
|
||||||
|
gb =
|
||||||
|
{ itemDetail = Messages.ItemDetailComp.gb
|
||||||
|
, editMetadata = "Edit Metadata"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
de : Texts
|
||||||
|
de =
|
||||||
|
gb
|
@ -31,3 +31,8 @@ gb =
|
|||||||
Creating an invite requires providing the password
|
Creating an invite requires providing the password
|
||||||
from the configuration."""
|
from the configuration."""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
de : Texts
|
||||||
|
de =
|
||||||
|
gb
|
||||||
|
62
modules/webapp/src/main/elm/Messages/UploadPage.elm
Normal file
62
modules/webapp/src/main/elm/Messages/UploadPage.elm
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
module Messages.UploadPage exposing (..)
|
||||||
|
|
||||||
|
import Messages.Basics
|
||||||
|
import Messages.DropzoneComp
|
||||||
|
|
||||||
|
|
||||||
|
type alias Texts =
|
||||||
|
{ basics : Messages.Basics.Texts
|
||||||
|
, dropzone : Messages.DropzoneComp.Texts
|
||||||
|
, reset : String
|
||||||
|
, allFilesOneItem : String
|
||||||
|
, skipExistingFiles : String
|
||||||
|
, language : String
|
||||||
|
, languageInfo : String
|
||||||
|
, uploadErrorMessage : String
|
||||||
|
, successBox :
|
||||||
|
{ allFilesUploaded : String
|
||||||
|
, line1 : String
|
||||||
|
, itemsPage : String
|
||||||
|
, line2 : String
|
||||||
|
, processingPage : String
|
||||||
|
, line3 : String
|
||||||
|
, resetLine1 : String
|
||||||
|
, reset : String
|
||||||
|
, resetLine2 : String
|
||||||
|
}
|
||||||
|
, selectedFiles : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gb : Texts
|
||||||
|
gb =
|
||||||
|
{ basics = Messages.Basics.gb
|
||||||
|
, dropzone = Messages.DropzoneComp.gb
|
||||||
|
, reset = "Reset"
|
||||||
|
, allFilesOneItem = "All files are one single item"
|
||||||
|
, skipExistingFiles = "Skip files already present in docspell"
|
||||||
|
, language = "Language"
|
||||||
|
, languageInfo =
|
||||||
|
"Used for text extraction and analysis. The collective's "
|
||||||
|
++ "default language is used if not specified here."
|
||||||
|
, uploadErrorMessage = "There were errors uploading some files."
|
||||||
|
, successBox =
|
||||||
|
{ allFilesUploaded = "All files uploaded"
|
||||||
|
, line1 =
|
||||||
|
"Your files have been successfully uploaded. "
|
||||||
|
++ "They are now being processed. Check the "
|
||||||
|
, itemsPage = "Items Page"
|
||||||
|
, line2 = " later where the files will arrive eventually. Or go to the "
|
||||||
|
, processingPage = "Processing Page"
|
||||||
|
, line3 = " to view the current processing state."
|
||||||
|
, resetLine1 = " Click "
|
||||||
|
, reset = "Reset"
|
||||||
|
, resetLine2 = " to upload more files."
|
||||||
|
}
|
||||||
|
, selectedFiles = "Selected Files"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
de : Texts
|
||||||
|
de =
|
||||||
|
gb
|
@ -11,12 +11,13 @@ import Data.UiSettings exposing (UiSettings)
|
|||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (onClick)
|
import Html.Events exposing (onClick)
|
||||||
|
import Messages.ItemDetailPage exposing (Texts)
|
||||||
import Page.ItemDetail.Data exposing (..)
|
import Page.ItemDetail.Data exposing (..)
|
||||||
import Styles as S
|
import Styles as S
|
||||||
|
|
||||||
|
|
||||||
viewSidebar : Bool -> Flags -> UiSettings -> Model -> Html Msg
|
viewSidebar : Texts -> Bool -> Flags -> UiSettings -> Model -> Html Msg
|
||||||
viewSidebar visible _ settings model =
|
viewSidebar texts visible _ settings model =
|
||||||
div
|
div
|
||||||
[ id "sidebar"
|
[ id "sidebar"
|
||||||
, class S.sidebar
|
, class S.sidebar
|
||||||
@ -28,7 +29,7 @@ viewSidebar visible _ settings model =
|
|||||||
, class "font-bold mt-2"
|
, class "font-bold mt-2"
|
||||||
]
|
]
|
||||||
[ i [ class "fa fa-pencil-alt mr-2" ] []
|
[ i [ class "fa fa-pencil-alt mr-2" ] []
|
||||||
, text "Edit Metadata"
|
, text texts.editMetadata
|
||||||
]
|
]
|
||||||
, MB.viewSide
|
, MB.viewSide
|
||||||
{ start =
|
{ start =
|
||||||
@ -52,12 +53,12 @@ viewSidebar visible _ settings model =
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
viewContent : ItemNav -> Flags -> UiSettings -> Model -> Html Msg
|
viewContent : Texts -> ItemNav -> Flags -> UiSettings -> Model -> Html Msg
|
||||||
viewContent inav _ settings model =
|
viewContent texts inav _ settings model =
|
||||||
div
|
div
|
||||||
[ id "content"
|
[ id "content"
|
||||||
, class S.content
|
, class S.content
|
||||||
]
|
]
|
||||||
[ Html.map ItemDetailMsg
|
[ Html.map ItemDetailMsg
|
||||||
(Comp.ItemDetail.view2 inav settings model.detail)
|
(Comp.ItemDetail.view2 texts.itemDetail inav settings model.detail)
|
||||||
]
|
]
|
||||||
|
@ -11,6 +11,7 @@ import File exposing (File)
|
|||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (onCheck, onClick)
|
import Html.Events exposing (onCheck, onClick)
|
||||||
|
import Messages.UploadPage exposing (Texts)
|
||||||
import Page exposing (Page(..))
|
import Page exposing (Page(..))
|
||||||
import Page.Upload.Data exposing (..)
|
import Page.Upload.Data exposing (..)
|
||||||
import Styles as S
|
import Styles as S
|
||||||
@ -28,8 +29,8 @@ viewSidebar _ _ _ _ _ =
|
|||||||
[]
|
[]
|
||||||
|
|
||||||
|
|
||||||
viewContent : Maybe String -> Flags -> UiSettings -> Model -> Html Msg
|
viewContent : Texts -> Maybe String -> Flags -> UiSettings -> Model -> Html Msg
|
||||||
viewContent mid _ _ model =
|
viewContent texts mid _ _ model =
|
||||||
div
|
div
|
||||||
[ id "content"
|
[ id "content"
|
||||||
, class S.content
|
, class S.content
|
||||||
@ -37,11 +38,11 @@ viewContent mid _ _ model =
|
|||||||
[ div [ class "container mx-auto" ]
|
[ div [ class "container mx-auto" ]
|
||||||
[ div [ class "px-0 flex flex-col" ]
|
[ div [ class "px-0 flex flex-col" ]
|
||||||
[ div [ class "py-4" ]
|
[ div [ class "py-4" ]
|
||||||
[ renderForm model
|
[ renderForm texts model
|
||||||
]
|
]
|
||||||
, div [ class "py-0" ]
|
, div [ class "py-0" ]
|
||||||
[ Html.map DropzoneMsg
|
[ Html.map DropzoneMsg
|
||||||
(Comp.Dropzone.view2 model.dropzone)
|
(Comp.Dropzone.view2 texts.dropzone model.dropzone)
|
||||||
]
|
]
|
||||||
, div [ class "py-4" ]
|
, div [ class "py-4" ]
|
||||||
[ a
|
[ a
|
||||||
@ -49,7 +50,7 @@ viewContent mid _ _ model =
|
|||||||
, href "#"
|
, href "#"
|
||||||
, onClick SubmitUpload
|
, onClick SubmitUpload
|
||||||
]
|
]
|
||||||
[ text "Submit"
|
[ text texts.basics.submit
|
||||||
]
|
]
|
||||||
, a
|
, a
|
||||||
[ class S.secondaryButton
|
[ class S.secondaryButton
|
||||||
@ -57,19 +58,19 @@ viewContent mid _ _ model =
|
|||||||
, href "#"
|
, href "#"
|
||||||
, onClick Clear
|
, onClick Clear
|
||||||
]
|
]
|
||||||
[ text "Reset"
|
[ text texts.reset
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
, renderErrorMsg model
|
, renderErrorMsg texts model
|
||||||
, renderSuccessMsg (Util.Maybe.nonEmpty mid) model
|
, renderSuccessMsg texts (Util.Maybe.nonEmpty mid) model
|
||||||
, renderUploads model
|
, renderUploads texts model
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
renderForm : Model -> Html Msg
|
renderForm : Texts -> Model -> Html Msg
|
||||||
renderForm model =
|
renderForm texts model =
|
||||||
div [ class "row" ]
|
div [ class "row" ]
|
||||||
[ Html.form [ action "#" ]
|
[ Html.form [ action "#" ]
|
||||||
[ div [ class "flex flex-col mb-3" ]
|
[ div [ class "flex flex-col mb-3" ]
|
||||||
@ -81,7 +82,7 @@ renderForm model =
|
|||||||
, class S.radioInput
|
, class S.radioInput
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
, span [ class "ml-2" ] [ text "Incoming" ]
|
, span [ class "ml-2" ] [ text texts.basics.incoming ]
|
||||||
]
|
]
|
||||||
, label [ class "inline-flex items-center" ]
|
, label [ class "inline-flex items-center" ]
|
||||||
[ input
|
[ input
|
||||||
@ -91,7 +92,7 @@ renderForm model =
|
|||||||
, class S.radioInput
|
, class S.radioInput
|
||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
, span [ class "ml-2" ] [ text "Outgoing" ]
|
, span [ class "ml-2" ] [ text texts.basics.outgoing ]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
, div [ class "flex flex-col mb-3" ]
|
, div [ class "flex flex-col mb-3" ]
|
||||||
@ -104,7 +105,7 @@ renderForm model =
|
|||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
, span [ class "ml-2" ]
|
, span [ class "ml-2" ]
|
||||||
[ text "All files are one single item"
|
[ text texts.allFilesOneItem
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
@ -118,13 +119,13 @@ renderForm model =
|
|||||||
]
|
]
|
||||||
[]
|
[]
|
||||||
, span [ class "ml-2" ]
|
, span [ class "ml-2" ]
|
||||||
[ text "Skip files already present in docspell"
|
[ text texts.skipExistingFiles
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
, div [ class "flex flex-col mb-3" ]
|
, div [ class "flex flex-col mb-3" ]
|
||||||
[ label [ class "inline-flex items-center mb-2" ]
|
[ label [ class "inline-flex items-center mb-2" ]
|
||||||
[ span [ class "mr-2" ] [ text "Language:" ]
|
[ span [ class "mr-2" ] [ text (texts.language ++ ":") ]
|
||||||
, Html.map LanguageMsg
|
, Html.map LanguageMsg
|
||||||
(Comp.FixedDropdown.viewStyled2
|
(Comp.FixedDropdown.viewStyled2
|
||||||
(DS.mainStyleWith "w-40")
|
(DS.mainStyleWith "w-40")
|
||||||
@ -134,30 +135,29 @@ renderForm model =
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
, div [ class "text-gray-400 text-xs" ]
|
, div [ class "text-gray-400 text-xs" ]
|
||||||
[ text "Used for text extraction and analysis. The collective's "
|
[ text texts.languageInfo
|
||||||
, text "default language is used if not specified here."
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
renderErrorMsg : Model -> Html Msg
|
renderErrorMsg : Texts -> Model -> Html Msg
|
||||||
renderErrorMsg model =
|
renderErrorMsg texts model =
|
||||||
div
|
div
|
||||||
[ class "row"
|
[ class "row"
|
||||||
, classList [ ( "hidden", not (isDone model && hasErrors model) ) ]
|
, classList [ ( "hidden", not (isDone model && hasErrors model) ) ]
|
||||||
]
|
]
|
||||||
[ div [ class "mt-4" ]
|
[ div [ class "mt-4" ]
|
||||||
[ div [ class S.errorMessage ]
|
[ div [ class S.errorMessage ]
|
||||||
[ text "There were errors uploading some files."
|
[ text texts.uploadErrorMessage
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
renderSuccessMsg : Bool -> Model -> Html Msg
|
renderSuccessMsg : Texts -> Bool -> Model -> Html Msg
|
||||||
renderSuccessMsg public model =
|
renderSuccessMsg texts public model =
|
||||||
div
|
div
|
||||||
[ class "row"
|
[ class "row"
|
||||||
, classList [ ( "hidden", List.isEmpty model.files || not (isSuccessAll model) ) ]
|
, classList [ ( "hidden", List.isEmpty model.files || not (isSuccessAll model) ) ]
|
||||||
@ -167,47 +167,46 @@ renderSuccessMsg public model =
|
|||||||
[ h3 [ class S.header2, class "text-green-800 dark:text-lime-800" ]
|
[ h3 [ class S.header2, class "text-green-800 dark:text-lime-800" ]
|
||||||
[ i [ class "fa fa-smile font-thin" ] []
|
[ i [ class "fa fa-smile font-thin" ] []
|
||||||
, span [ class "ml-2" ]
|
, span [ class "ml-2" ]
|
||||||
[ text "All files uploaded"
|
[ text texts.successBox.allFilesUploaded
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
, p
|
, p
|
||||||
[ classList [ ( "hidden", public ) ]
|
[ classList [ ( "hidden", public ) ]
|
||||||
]
|
]
|
||||||
[ text "Your files have been successfully uploaded. "
|
[ text texts.successBox.line1
|
||||||
, text "They are now being processed. Check the "
|
|
||||||
, a
|
, a
|
||||||
[ class S.successMessageLink
|
[ class S.successMessageLink
|
||||||
, Page.href HomePage
|
, Page.href HomePage
|
||||||
]
|
]
|
||||||
[ text "Items page"
|
[ text texts.successBox.itemsPage
|
||||||
]
|
]
|
||||||
, text " later where the files will arrive eventually. Or go to the "
|
, text texts.successBox.line2
|
||||||
, a
|
, a
|
||||||
[ class S.successMessageLink
|
[ class S.successMessageLink
|
||||||
, Page.href QueuePage
|
, Page.href QueuePage
|
||||||
]
|
]
|
||||||
[ text "Processing Page"
|
[ text texts.successBox.processingPage
|
||||||
]
|
]
|
||||||
, text " to view the current processing state."
|
, text texts.successBox.line3
|
||||||
]
|
]
|
||||||
, p []
|
, p []
|
||||||
[ text "Click "
|
[ text texts.successBox.resetLine1
|
||||||
, a
|
, a
|
||||||
[ class S.successMessageLink
|
[ class S.successMessageLink
|
||||||
, href "#"
|
, href "#"
|
||||||
, onClick Clear
|
, onClick Clear
|
||||||
]
|
]
|
||||||
[ text "Reset"
|
[ text texts.successBox.reset
|
||||||
]
|
]
|
||||||
, text " to upload more files."
|
, text texts.successBox.resetLine2
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
renderUploads : Model -> Html Msg
|
renderUploads : Texts -> Model -> Html Msg
|
||||||
renderUploads model =
|
renderUploads texts model =
|
||||||
div
|
div
|
||||||
[ class "mt-4"
|
[ class "mt-4"
|
||||||
, classList [ ( "hidden", List.isEmpty model.files || isSuccessAll model ) ]
|
, classList [ ( "hidden", List.isEmpty model.files || isSuccessAll model ) ]
|
||||||
@ -215,7 +214,7 @@ renderUploads model =
|
|||||||
[ div [ class "sixteen wide column" ]
|
[ div [ class "sixteen wide column" ]
|
||||||
[ div [ class "ui basic segment" ]
|
[ div [ class "ui basic segment" ]
|
||||||
[ h2 [ class S.header2 ]
|
[ h2 [ class S.header2 ]
|
||||||
[ text "Selected Files"
|
[ text texts.selectedFiles
|
||||||
]
|
]
|
||||||
, div [ class "ui items" ] <|
|
, div [ class "ui items" ] <|
|
||||||
if model.singleItem then
|
if model.singleItem then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user