Add checkbox to upload page for skipping duplicates

This commit is contained in:
Eike Kettner
2020-09-23 23:05:51 +02:00
parent f6f63000be
commit 285db78613
3 changed files with 36 additions and 3 deletions

View File

@ -28,6 +28,7 @@ type alias Model =
, errored : Set String
, loading : Set String
, dropzone : Comp.Dropzone.Model
, skipDuplicates : Bool
}
@ -56,6 +57,7 @@ emptyModel =
, errored = Set.empty
, loading = Set.empty
, dropzone = Comp.Dropzone.init dropzoneSettings
, skipDuplicates = True
}
@ -67,6 +69,7 @@ type Msg
| ToggleSingleItem
| Clear
| DropzoneMsg Comp.Dropzone.Msg
| ToggleSkipDuplicates
isLoading : Model -> File -> Bool

View File

@ -20,6 +20,9 @@ update sourceId flags msg model =
ToggleSingleItem ->
( { model | singleItem = not model.singleItem }, Cmd.none, Sub.none )
ToggleSkipDuplicates ->
( { model | skipDuplicates = not model.skipDuplicates }, Cmd.none, Sub.none )
SubmitUpload ->
let
emptyMeta =
@ -28,6 +31,7 @@ update sourceId flags msg model =
meta =
{ emptyMeta
| multiple = not model.singleItem
, skipDuplicates = Just model.skipDuplicates
, direction =
if model.incoming then
Just "incoming"

View File

@ -169,22 +169,48 @@ renderForm model =
[ div [ class "grouped fields" ]
[ div [ class "field" ]
[ div [ class "ui radio checkbox" ]
[ input [ type_ "radio", checked model.incoming, onCheck (\_ -> ToggleIncoming) ] []
[ input
[ type_ "radio"
, checked model.incoming
, onCheck (\_ -> ToggleIncoming)
]
[]
, label [] [ text "Incoming" ]
]
]
, div [ class "field" ]
[ div [ class "ui radio checkbox" ]
[ input [ type_ "radio", checked (not model.incoming), onCheck (\_ -> ToggleIncoming) ] []
[ input
[ type_ "radio"
, checked (not model.incoming)
, onCheck (\_ -> ToggleIncoming)
]
[]
, label [] [ text "Outgoing" ]
]
]
]
, div [ class "inline field" ]
[ div [ class "ui checkbox" ]
[ input [ type_ "checkbox", checked model.singleItem, onCheck (\_ -> ToggleSingleItem) ] []
[ input
[ type_ "checkbox"
, checked model.singleItem
, onCheck (\_ -> ToggleSingleItem)
]
[]
, label [] [ text "All files are one single item" ]
]
]
, div [ class "inline field" ]
[ div [ class "ui checkbox" ]
[ input
[ type_ "checkbox"
, checked model.skipDuplicates
, onCheck (\_ -> ToggleSkipDuplicates)
]
[]
, label [] [ text "Skip files already present in docspell" ]
]
]
]
]