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

View File

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

View File

@ -169,22 +169,48 @@ renderForm model =
[ div [ class "grouped fields" ] [ div [ class "grouped fields" ]
[ div [ class "field" ] [ div [ class "field" ]
[ div [ class "ui radio checkbox" ] [ div [ class "ui radio checkbox" ]
[ input [ type_ "radio", checked model.incoming, onCheck (\_ -> ToggleIncoming) ] [] [ input
[ type_ "radio"
, checked model.incoming
, onCheck (\_ -> ToggleIncoming)
]
[]
, label [] [ text "Incoming" ] , label [] [ text "Incoming" ]
] ]
] ]
, div [ class "field" ] , div [ class "field" ]
[ div [ class "ui radio checkbox" ] [ 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" ] , label [] [ text "Outgoing" ]
] ]
] ]
] ]
, div [ class "inline field" ] , div [ class "inline field" ]
[ div [ class "ui checkbox" ] [ 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" ] , 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" ]
]
]
] ]
] ]