Allow overriding unpackZips-Checkbox
This commit is contained in:
parent
0b0444ede4
commit
8e43a314d3
@ -83,7 +83,7 @@ makeSheetForm msId template = identForm FIDsheet $ \html -> do
|
|||||||
<*> aopt utcTimeField (fsb "Sichtbar ab") (sfVisibleFrom <$> template)
|
<*> aopt utcTimeField (fsb "Sichtbar ab") (sfVisibleFrom <$> template)
|
||||||
<*> areq utcTimeField (fsb "Abgabe ab") (sfActiveFrom <$> template)
|
<*> areq utcTimeField (fsb "Abgabe ab") (sfActiveFrom <$> template)
|
||||||
<*> areq utcTimeField (fsb "Abgabefrist") (sfActiveTo <$> template)
|
<*> areq utcTimeField (fsb "Abgabefrist") (sfActiveTo <$> template)
|
||||||
<*> aopt (multiFileField $ oldFileIds SheetExercise) (fsb "Aufgabenstellung") (sfSheetF <$> template)
|
<*> aopt (multiFileField Nothing $ oldFileIds SheetExercise) (fsb "Aufgabenstellung") (sfSheetF <$> template)
|
||||||
<*> aopt utcTimeField (fsb "Hinweis ab") (sfHintFrom <$> template)
|
<*> aopt utcTimeField (fsb "Hinweis ab") (sfHintFrom <$> template)
|
||||||
<*> fileAFormOpt (fsb "Hinweis")
|
<*> fileAFormOpt (fsb "Hinweis")
|
||||||
<*> aopt utcTimeField (fsb "Lösung ab") (sfSolutionFrom <$> template)
|
<*> aopt utcTimeField (fsb "Lösung ab") (sfSolutionFrom <$> template)
|
||||||
|
|||||||
@ -245,8 +245,10 @@ schoolEntField = selectField schools
|
|||||||
where
|
where
|
||||||
schools = optionsPersist [] [Asc SchoolName] schoolName
|
schools = optionsPersist [] [Asc SchoolName] schoolName
|
||||||
|
|
||||||
multiFileField :: Handler (Set FileId) -> Field Handler (Source Handler (Either FileId File))
|
multiFileField :: Maybe Bool -- ^ Override @unpackZips@-checkbox?
|
||||||
multiFileField permittedFiles' = Field{..}
|
-> Handler (Set FileId) -- ^ Existing files to allow keeping
|
||||||
|
-> Field Handler (Source Handler (Either FileId File))
|
||||||
|
multiFileField doUnpackOverride permittedFiles' = Field{..}
|
||||||
where
|
where
|
||||||
fieldEnctype = Multipart
|
fieldEnctype = Multipart
|
||||||
fieldParse vals files
|
fieldParse vals files
|
||||||
@ -270,7 +272,9 @@ multiFileField permittedFiles' = Field{..}
|
|||||||
| otherwise = yieldM . acceptFile
|
| otherwise = yieldM . acceptFile
|
||||||
mapM_ handleFile files .| C.map Right
|
mapM_ handleFile files .| C.map Right
|
||||||
where
|
where
|
||||||
doUnpack = unpackZips `elem` vals
|
doUnpack = case doUnpackOverride of
|
||||||
|
Nothing -> unpackZips `elem` vals
|
||||||
|
Just o -> o
|
||||||
fieldView fieldId fieldName attrs val req = do
|
fieldView fieldId fieldName attrs val req = do
|
||||||
pVals <- handlerToWidget permittedFiles'
|
pVals <- handlerToWidget permittedFiles'
|
||||||
sentVals <- for val $ \src -> handlerToWidget . sourceToList $ src .| takeLefts
|
sentVals <- for val $ \src -> handlerToWidget . sourceToList $ src .| takeLefts
|
||||||
|
|||||||
@ -16,6 +16,9 @@ $forall FileUploadInfo{..} <- fileInfos
|
|||||||
$# new files
|
$# new files
|
||||||
<input type="file" name=#{fieldName} multiple>
|
<input type="file" name=#{fieldName} multiple>
|
||||||
|
|
||||||
<div .file-input__unpack>
|
$case doUnpackOverride
|
||||||
<label for=#{fieldId}_zip>ZIPs entpacken
|
$of Nothing
|
||||||
<input type=checkbox id=#{fieldId}_zip name=#{fieldName} value=#{unpackZips} :req:required>
|
<div .file-input__unpack>
|
||||||
|
<label for=#{fieldId}_zip>ZIPs entpacken
|
||||||
|
<input type=checkbox id=#{fieldId}_zip name=#{fieldName} value=#{unpackZips} :req:required>
|
||||||
|
$of _
|
||||||
|
|||||||
Reference in New Issue
Block a user