mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-05-29 19:29:14 +00:00
Add language to upload page
This commit is contained in:
parent
2384af1347
commit
c1c92f0932
@ -9,11 +9,14 @@ module Page.Upload.Data exposing
|
|||||||
, isIdle
|
, isIdle
|
||||||
, isLoading
|
, isLoading
|
||||||
, isSuccessAll
|
, isSuccessAll
|
||||||
|
, mkLanguageItem
|
||||||
, uploadAllTracker
|
, uploadAllTracker
|
||||||
)
|
)
|
||||||
|
|
||||||
import Api.Model.BasicResult exposing (BasicResult)
|
import Api.Model.BasicResult exposing (BasicResult)
|
||||||
import Comp.Dropzone
|
import Comp.Dropzone
|
||||||
|
import Comp.FixedDropdown
|
||||||
|
import Data.Language exposing (Language)
|
||||||
import Dict exposing (Dict)
|
import Dict exposing (Dict)
|
||||||
import File exposing (File)
|
import File exposing (File)
|
||||||
import Http
|
import Http
|
||||||
@ -30,6 +33,8 @@ type alias Model =
|
|||||||
, loading : Dict String Int
|
, loading : Dict String Int
|
||||||
, dropzone : Comp.Dropzone.Model
|
, dropzone : Comp.Dropzone.Model
|
||||||
, skipDuplicates : Bool
|
, 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 : Model
|
||||||
emptyModel =
|
emptyModel =
|
||||||
{ incoming = True
|
{ incoming = True
|
||||||
@ -59,6 +69,10 @@ emptyModel =
|
|||||||
, loading = Dict.empty
|
, loading = Dict.empty
|
||||||
, dropzone = Comp.Dropzone.init dropzoneSettings
|
, dropzone = Comp.Dropzone.init dropzoneSettings
|
||||||
, skipDuplicates = True
|
, skipDuplicates = True
|
||||||
|
, languageModel =
|
||||||
|
Comp.FixedDropdown.init
|
||||||
|
(List.map mkLanguageItem Data.Language.all)
|
||||||
|
, language = Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -71,6 +85,7 @@ type Msg
|
|||||||
| Clear
|
| Clear
|
||||||
| DropzoneMsg Comp.Dropzone.Msg
|
| DropzoneMsg Comp.Dropzone.Msg
|
||||||
| ToggleSkipDuplicates
|
| ToggleSkipDuplicates
|
||||||
|
| LanguageMsg (Comp.FixedDropdown.Msg Language)
|
||||||
|
|
||||||
|
|
||||||
isLoading : Model -> File -> Bool
|
isLoading : Model -> File -> Bool
|
||||||
|
@ -3,13 +3,15 @@ module Page.Upload.Update exposing (update)
|
|||||||
import Api
|
import Api
|
||||||
import Api.Model.ItemUploadMeta
|
import Api.Model.ItemUploadMeta
|
||||||
import Comp.Dropzone
|
import Comp.Dropzone
|
||||||
|
import Comp.FixedDropdown
|
||||||
import Data.Flags exposing (Flags)
|
import Data.Flags exposing (Flags)
|
||||||
|
import Data.Language
|
||||||
import Dict
|
import Dict
|
||||||
import Http
|
import Http
|
||||||
import Page.Upload.Data exposing (..)
|
import Page.Upload.Data exposing (..)
|
||||||
import Ports
|
|
||||||
import Set exposing (Set)
|
import Set exposing (Set)
|
||||||
import Util.File exposing (makeFileId)
|
import Util.File exposing (makeFileId)
|
||||||
|
import Util.Maybe
|
||||||
|
|
||||||
|
|
||||||
update : Maybe String -> Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
update : Maybe String -> Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||||
@ -39,6 +41,7 @@ update sourceId flags msg model =
|
|||||||
|
|
||||||
else
|
else
|
||||||
Just "outgoing"
|
Just "outgoing"
|
||||||
|
, language = Maybe.map Data.Language.toIso3 model.language
|
||||||
}
|
}
|
||||||
|
|
||||||
fileids =
|
fileids =
|
||||||
@ -151,6 +154,19 @@ update sourceId flags msg model =
|
|||||||
in
|
in
|
||||||
( { model | files = nextFiles, dropzone = m2 }, Cmd.map DropzoneMsg c2, Sub.none )
|
( { 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 -> String -> Set String
|
||||||
setCompleted model fileid =
|
setCompleted model fileid =
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
module Page.Upload.View exposing (view)
|
module Page.Upload.View exposing (view)
|
||||||
|
|
||||||
import Comp.Dropzone
|
import Comp.Dropzone
|
||||||
|
import Comp.FixedDropdown
|
||||||
import Comp.Progress
|
import Comp.Progress
|
||||||
import Dict
|
import Dict
|
||||||
import File exposing (File)
|
import File exposing (File)
|
||||||
@ -219,5 +220,17 @@ renderForm model =
|
|||||||
, label [] [ text "Skip files already present in docspell" ]
|
, 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."
|
||||||
|
]
|
||||||
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user