From 81b821c88ad309376f0d3493ab7b188f75634edb Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Mon, 25 Sep 2023 15:25:38 +0000 Subject: [PATCH] chore(lms): better links in lms status widget --- src/Handler/Utils/LMS.hs | 20 +++++++++++--------- src/Handler/Utils/Table/Cells.hs | 4 ++-- templates/lms-user.hamlet | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Handler/Utils/LMS.hs b/src/Handler/Utils/LMS.hs index e47c58cc1..888e0bac2 100644 --- a/src/Handler/Utils/LMS.hs +++ b/src/Handler/Utils/LMS.hs @@ -255,23 +255,20 @@ lmsStatusIcon LmsSuccess{} = IconOK lmsStatusIcon LmsExpired{} = IconExpired lmsStatusIcon _other = IconNotOK -lmsUserStatusWidget :: Bool -> LmsUser -> Widget -lmsUserStatusWidget adminInfo luser = case luser of +lmsUserStatusWidget :: Bool -> Maybe (SomeRoute UniWorX) -> LmsUser -> Widget +lmsUserStatusWidget adminInfo mbLink luser = case luser of LmsUser{lmsUserStatus=Just lStat, lmsUserStatusDay=mbDay} -> [whamlet|$newline never - $maybe aday <- mbDay - ^{formatTimeW SelFormatDateTime aday} - $nothing - --.--.---- + ^{dateWgt mbDay} \ ^{iconFixed (lmsStatusIcon lStat)} $if adminInfo \ ^{lockIcon} \ ^{resetIcon} |] - LmsUser{lmsUserNotified=Just d} -> + LmsUser{lmsUserNotified=mbDay@(Just _)} -> [whamlet|$newline never - ^{formatTimeW SelFormatDateTime d} + ^{dateWgt mbDay} \ ^{iconFixed IconNotificationSent} $if adminInfo \ ^{lockIcon} @@ -280,7 +277,7 @@ lmsUserStatusWidget adminInfo luser = case luser of LmsUser{lmsUserStarted=dstart} | adminInfo -> -- E-Learning started, but not yet notified; only intended for Admins; [whamlet|$newline never - ^{formatTimeW SelFormatDateTime dstart} + ^{dateWgt (Just dstart)} \ ^{iconFixed IconPlanned} $if adminInfo \ ^{resetIcon} @@ -297,3 +294,8 @@ lmsUserStatusWidget adminInfo luser = case luser of resetIcon | lmsUserResetTries luser = iconFixed IconResetTries | otherwise = mempty + + dateWgt :: Maybe UTCTime -> Widget + dateWgt = maybe id (flip modal . Left ) mbLink . + maybe (text2widget "--.--.----") (formatTimeW SelFormatDateTime) + diff --git a/src/Handler/Utils/Table/Cells.hs b/src/Handler/Utils/Table/Cells.hs index 8c77f1dfa..e945ff8d2 100644 --- a/src/Handler/Utils/Table/Cells.hs +++ b/src/Handler/Utils/Table/Cells.hs @@ -426,10 +426,10 @@ cryptoidCell :: (IsDBTable m a, PathPiece cid) => cid -> DBCell m a cryptoidCell = addCellClass ("cryptoid" :: Text) . textCell . toPathPiece lmsStatusCell :: IsDBTable m a => Bool -> Maybe (CryptoUUIDUser -> Route UniWorX) -> LmsUser -> DBCell m a -lmsStatusCell extendedInfo Nothing lu = wgtCell $ lmsUserStatusWidget extendedInfo lu +lmsStatusCell extendedInfo Nothing lu = wgtCell $ lmsUserStatusWidget extendedInfo Nothing lu lmsStatusCell extendedInfo (Just toLink) lu = cell $ do uuid <- liftHandler $ encrypt $ lu ^. _lmsUserUser - modal (lmsUserStatusWidget extendedInfo lu) (Left $ SomeRoute $ toLink uuid) + lmsUserStatusWidget extendedInfo (Just $ SomeRoute $ toLink uuid) lu lmsStateCell :: IsDBTable m a => LmsState -> DBCell m a lmsStateCell LmsFailed = iconBoolCell False diff --git a/templates/lms-user.hamlet b/templates/lms-user.hamlet index a084f582a..db87888e7 100644 --- a/templates/lms-user.hamlet +++ b/templates/lms-user.hamlet @@ -43,7 +43,7 @@ $else
^{formatTimeW SelFormatDateTime (lmsUserStarted lmsUsr)} $maybe _ <- lmsUserStatus lmsUsr
_{MsgTableLmsStatus} -
^{lmsUserStatusWidget True lmsUsr} +
^{lmsUserStatusWidget True Nothing lmsUsr}
_{MsgTableLmsIdent}