From 285db78613e23aef47c9502a4bfbecc649d3658a Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Wed, 23 Sep 2020 23:05:51 +0200 Subject: [PATCH] Add checkbox to upload page for skipping duplicates --- .../webapp/src/main/elm/Page/Upload/Data.elm | 3 ++ .../src/main/elm/Page/Upload/Update.elm | 4 +++ .../webapp/src/main/elm/Page/Upload/View.elm | 32 +++++++++++++++++-- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/modules/webapp/src/main/elm/Page/Upload/Data.elm b/modules/webapp/src/main/elm/Page/Upload/Data.elm index 94c2a0f7..f0528955 100644 --- a/modules/webapp/src/main/elm/Page/Upload/Data.elm +++ b/modules/webapp/src/main/elm/Page/Upload/Data.elm @@ -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 diff --git a/modules/webapp/src/main/elm/Page/Upload/Update.elm b/modules/webapp/src/main/elm/Page/Upload/Update.elm index 9f8eb06b..dc1d1559 100644 --- a/modules/webapp/src/main/elm/Page/Upload/Update.elm +++ b/modules/webapp/src/main/elm/Page/Upload/Update.elm @@ -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" diff --git a/modules/webapp/src/main/elm/Page/Upload/View.elm b/modules/webapp/src/main/elm/Page/Upload/View.elm index 4d32a2b5..f45873da 100644 --- a/modules/webapp/src/main/elm/Page/Upload/View.elm +++ b/modules/webapp/src/main/elm/Page/Upload/View.elm @@ -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" ] + ] + ] ] ]