From 957f0fe9daad5d413c42894bcef5b7a2509e35d7 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sun, 1 Jul 2018 15:02:15 +0200 Subject: [PATCH] More aggressively normalise fileTitles --- src/Handler/Submission.hs | 7 +++++-- src/Handler/Utils/Zip.hs | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Handler/Submission.hs b/src/Handler/Submission.hs index 7e465c986..852f4743d 100644 --- a/src/Handler/Submission.hs +++ b/src/Handler/Submission.hs @@ -242,8 +242,11 @@ submissionHelper tid csh shn (SubmissionMode mcid) = do let colonnadeFiles :: _ -> Colonnade Sortable _ (DBCell (WidgetT UniWorX IO) ()) colonnadeFiles cid = mconcat -- [ sortable (Just "type") "Typ" $ \(_,_, E.Value ftype) -> textCell $ toPathPiece ftype - [ sortable (Just "path") "Dateiname" $ anchorCell (\(Entity _ SubmissionFile{..}, Entity _ File{..}) -> CSubmissionR tid csh shn cid $ SubDownloadR (isUpdateSubmissionFileType submissionFileIsUpdate) fileTitle) - (\(_, Entity _ File{..}) -> str2widget fileTitle) + [ sortable (Just "path") "Dateiname" $ \input@(_, Entity _ File{..}) -> case isNothing fileContent of + False -> anchorCell (\(Entity _ SubmissionFile{..}, Entity _ File{..}) -> CSubmissionR tid csh shn cid $ SubDownloadR (isUpdateSubmissionFileType submissionFileIsUpdate) fileTitle) + (\(_, Entity _ File{..}) -> str2widget fileTitle) + input + True -> textCell $ addTrailingPathSeparator fileTitle , sortable (Just "time") "Modifikation" $ \(_, Entity _ File{..}) -> stringCell $ formatTimeGerWDT fileModified ] smid2ArchiveTable (smid,cid) = DBTable diff --git a/src/Handler/Utils/Zip.hs b/src/Handler/Utils/Zip.hs index d40716168..fb196c933 100644 --- a/src/Handler/Utils/Zip.hs +++ b/src/Handler/Utils/Zip.hs @@ -56,7 +56,7 @@ consumeZip = unZipStream `fuseUpstream` consumeZip' Just (Left ZipEntry{..}) -> do contentChunks <- toConsumer accContents let - fileTitle = normalise $ makeValid zipEntryName + fileTitle = dropWhile isPathSeparator . dropTrailingPathSeparator . normalise $ makeValid zipEntryName fileModified = localTimeToUTC utc zipEntryTime fileContent | hasTrailingPathSeparator zipEntryName = Nothing