Add language to upload page

This commit is contained in:
Eike Kettner 2020-11-23 21:12:45 +01:00
parent 2384af1347
commit c1c92f0932
3 changed files with 45 additions and 1 deletions

View File

@ -9,11 +9,14 @@ module Page.Upload.Data exposing
, isIdle
, isLoading
, isSuccessAll
, mkLanguageItem
, uploadAllTracker
)
import Api.Model.BasicResult exposing (BasicResult)
import Comp.Dropzone
import Comp.FixedDropdown
import Data.Language exposing (Language)
import Dict exposing (Dict)
import File exposing (File)
import Http
@ -30,6 +33,8 @@ type alias Model =
, loading : Dict String Int
, dropzone : Comp.Dropzone.Model
, skipDuplicates : Bool
, languageModel : Comp.FixedDropdown.Model Language
, language : Maybe Language
}
@ -49,6 +54,11 @@ dropzoneSettings =
}
mkLanguageItem : Language -> Comp.FixedDropdown.Item Language
mkLanguageItem lang =
Comp.FixedDropdown.Item lang (Data.Language.toName lang)
emptyModel : Model
emptyModel =
{ incoming = True
@ -59,6 +69,10 @@ emptyModel =
, loading = Dict.empty
, dropzone = Comp.Dropzone.init dropzoneSettings
, skipDuplicates = True
, languageModel =
Comp.FixedDropdown.init
(List.map mkLanguageItem Data.Language.all)
, language = Nothing
}
@ -71,6 +85,7 @@ type Msg
| Clear
| DropzoneMsg Comp.Dropzone.Msg
| ToggleSkipDuplicates
| LanguageMsg (Comp.FixedDropdown.Msg Language)
isLoading : Model -> File -> Bool

View File

@ -3,13 +3,15 @@ module Page.Upload.Update exposing (update)
import Api
import Api.Model.ItemUploadMeta
import Comp.Dropzone
import Comp.FixedDropdown
import Data.Flags exposing (Flags)
import Data.Language
import Dict
import Http
import Page.Upload.Data exposing (..)
import Ports
import Set exposing (Set)
import Util.File exposing (makeFileId)
import Util.Maybe
update : Maybe String -> Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
@ -39,6 +41,7 @@ update sourceId flags msg model =
else
Just "outgoing"
, language = Maybe.map Data.Language.toIso3 model.language
}
fileids =
@ -151,6 +154,19 @@ update sourceId flags msg model =
in
( { model | files = nextFiles, dropzone = m2 }, Cmd.map DropzoneMsg c2, Sub.none )
LanguageMsg lm ->
let
( dm, sel ) =
Comp.FixedDropdown.update lm model.languageModel
in
( { model
| languageModel = dm
, language = Util.Maybe.or [ sel, model.language ]
}
, Cmd.none
, Sub.none
)
setCompleted : Model -> String -> Set String
setCompleted model fileid =

View File

@ -1,6 +1,7 @@
module Page.Upload.View exposing (view)
import Comp.Dropzone
import Comp.FixedDropdown
import Comp.Progress
import Dict
import File exposing (File)
@ -219,5 +220,17 @@ renderForm model =
, label [] [ text "Skip files already present in docspell" ]
]
]
, div [ class "inline field" ]
[ label [] [ text "Language:" ]
, Html.map LanguageMsg
(Comp.FixedDropdown.view
(Maybe.map mkLanguageItem model.language)
model.languageModel
)
, div [ class "small-info" ]
[ text "Used for text extraction and analysis. The collective's "
, text "default language is used if not specified here."
]
]
]
]