Upload zip files contents as independent files

This commit is contained in:
eikek
2022-03-20 11:40:25 +01:00
parent 06c3561a8e
commit b84bbbd750
15 changed files with 330 additions and 23 deletions

View File

@ -43,6 +43,7 @@ type alias Model =
, skipDuplicates : Bool
, languageModel : Comp.FixedDropdown.Model Language
, language : Maybe Language
, flattenArchives : Bool
}
@ -56,6 +57,7 @@ type Msg
| DropzoneMsg Comp.Dropzone.Msg
| ToggleSkipDuplicates
| LanguageMsg (Comp.FixedDropdown.Msg Language)
| ToggleFlattenArchives
init : Model
@ -71,6 +73,7 @@ init =
, languageModel =
Comp.FixedDropdown.init Data.Language.all
, language = Nothing
, flattenArchives = False
}
@ -132,11 +135,44 @@ update sourceId flags msg model =
( { model | incoming = not model.incoming }, Cmd.none, Sub.none )
ToggleSingleItem ->
( { model | singleItem = not model.singleItem }, Cmd.none, Sub.none )
let
newFlag =
not model.singleItem
in
( { model
| singleItem = newFlag
, flattenArchives =
if newFlag then
False
else
model.flattenArchives
}
, Cmd.none
, Sub.none
)
ToggleSkipDuplicates ->
( { model | skipDuplicates = not model.skipDuplicates }, Cmd.none, Sub.none )
ToggleFlattenArchives ->
let
newFlag =
not model.flattenArchives
in
( { model
| flattenArchives = newFlag
, singleItem =
if newFlag then
False
else
model.singleItem
}
, Cmd.none
, Sub.none
)
SubmitUpload ->
let
emptyMeta =
@ -153,6 +189,7 @@ update sourceId flags msg model =
else
Just "outgoing"
, language = Maybe.map Data.Language.toIso3 model.language
, flattenArchives = Just model.flattenArchives
}
fileids =
@ -403,6 +440,20 @@ renderForm texts model =
]
]
]
, div [ class "flex flex-col mb-3" ]
[ label [ class "inline-flex items-center" ]
[ input
[ type_ "checkbox"
, checked model.flattenArchives
, onCheck (\_ -> ToggleFlattenArchives)
, class Styles.checkboxInput
]
[]
, span [ class "ml-2" ]
[ text texts.flattenArchives
]
]
]
, div [ class "flex flex-col mb-3" ]
[ label [ class "inline-flex items-center" ]
[ input

View File

@ -35,6 +35,7 @@ type alias Texts =
}
, selectedFiles : String
, languageLabel : Language -> String
, flattenArchives : String
}
@ -65,6 +66,7 @@ gb =
}
, selectedFiles = "Selected Files"
, languageLabel = Messages.Data.Language.gb
, flattenArchives = "Extract zip file contents into separate items, in contrast to a single document with multiple attachments."
}
@ -95,6 +97,7 @@ de =
}
, selectedFiles = "Ausgewählte Dateien"
, languageLabel = Messages.Data.Language.de
, flattenArchives = "ZIP Dateien in separate Dokumente entpacken, anstatt ein Dokument mit mehreren Anhängen."
}
@ -125,4 +128,5 @@ fr =
}
, selectedFiles = "Fichiers séléctionnés"
, languageLabel = Messages.Data.Language.fr
, flattenArchives = "Décompresser les fichiers ZIP dans des documents séparés au lieu de créer un document avec plusieurs pièces jointes."
}