From 0bb9a0fa60d83e91c91bb97833126a23a6f03989 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Tue, 20 Aug 2019 17:50:12 +0200 Subject: [PATCH] fix(sheet list): do not show icons for inaccessible items Closes #421 --- src/Handler/Sheet.hs | 8 ++++---- templates/default-layout.lucius | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Handler/Sheet.hs b/src/Handler/Sheet.hs index f1bf685b8..cecc6a3db 100644 --- a/src/Handler/Sheet.hs +++ b/src/Handler/Sheet.hs @@ -186,7 +186,7 @@ getSheetListR tid ssh csh = do let hasSFT :: (E.Value Bool, E.Value Bool, E.Value Bool, E.Value Bool) -> [SheetFileType] hasSFT (E.Value hasExercise, E.Value hasHint, E.Value hasSolution, E.Value hasMarking) - = [ sft | sft <- [minBound..maxBound] + = [ sft | sft <- universeF , sft /= SheetExercise || hasExercise , sft /= SheetHint || hasHint , sft /= SheetSolution || hasSolution @@ -204,7 +204,7 @@ getSheetListR tid ssh csh = do E.where_ $ sheet E.^. SheetCourse E.==. E.val cid sheetFilter :: SheetName -> DB Bool - sheetFilter sheetName = (== Authorized) <$> evalAccessDB (CSheetR tid ssh csh sheetName SShowR) False + sheetFilter sheetName = hasReadAccessTo $ CSheetR tid ssh csh sheetName SShowR sheetCol = widgetColonnade . mconcat $ [ -- dbRow , @@ -220,9 +220,9 @@ getSheetListR tid ssh csh = do | let existingSFTs = hasSFT existFiles , sft <- [minBound..maxBound] , let link = CSheetR tid ssh csh sheetName $ SZipR sft - , let icn = toWidget $ sheetFile2markup sft + , let icn = toWgt $ sheetFile2markup sft , let icnCell = if sft `elem` existingSFTs - then linkEmptyCell link icn + then linkEitherCell link (icn, [whamlet| |]) else spacerCell ] id & cellAttrs <>~ [("class","list--inline list--space-separated")] , sortable (Just "submission-since") (i18nCell MsgSheetActiveFrom) diff --git a/templates/default-layout.lucius b/templates/default-layout.lucius index f929425ec..577e95c01 100644 --- a/templates/default-layout.lucius +++ b/templates/default-layout.lucius @@ -482,6 +482,11 @@ ul.list--inline { } } +.list--icon-width li { + width: 1rem; + height: 1rem; +} + /* DEFINITION LIST */ .deflist { display: grid; @@ -626,7 +631,7 @@ section { grid-column: 1; max-width: none; - + padding-left: 40px; &::before {