feat(system-messages): manual priority
This commit is contained in:
parent
8b7e8e4bd5
commit
cf06f79807
@ -1147,6 +1147,8 @@ SystemMessageFrom: Sichtbar ab
|
|||||||
SystemMessageTo: Sichtbar bis
|
SystemMessageTo: Sichtbar bis
|
||||||
SystemMessageAuthenticatedOnly: Nur angemeldet
|
SystemMessageAuthenticatedOnly: Nur angemeldet
|
||||||
SystemMessageSeverity: Schwere
|
SystemMessageSeverity: Schwere
|
||||||
|
SystemMessagePriority: Priorität
|
||||||
|
SystemMessagePriorityNegative: Priorität darf nicht negativ sein
|
||||||
SystemMessageId: Id
|
SystemMessageId: Id
|
||||||
SystemMessageSummaryContent: Zusammenfassung / Inhalt
|
SystemMessageSummaryContent: Zusammenfassung / Inhalt
|
||||||
SystemMessageSummary: Zusammenfassung
|
SystemMessageSummary: Zusammenfassung
|
||||||
|
|||||||
@ -6,12 +6,14 @@ SystemMessage
|
|||||||
newsOnly Bool default=false
|
newsOnly Bool default=false
|
||||||
authenticatedOnly Bool -- Show message to all users upon visiting the site or only upon login?
|
authenticatedOnly Bool -- Show message to all users upon visiting the site or only upon login?
|
||||||
severity MessageStatus -- Success, Warning, Error, Info, ...
|
severity MessageStatus -- Success, Warning, Error, Info, ...
|
||||||
|
manualPriority Natural Maybe
|
||||||
created UTCTime default=now()
|
created UTCTime default=now()
|
||||||
lastChanged UTCTime default=now()
|
lastChanged UTCTime default=now()
|
||||||
lastUnhide UTCTime default=now()
|
lastUnhide UTCTime default=now()
|
||||||
defaultLanguage Lang -- Language of @content@ and @summary@
|
defaultLanguage Lang -- Language of @content@ and @summary@
|
||||||
content Html -- Detailed message shown when clicking on the @summary@-popup or when no @summary@ is specified
|
content Html -- Detailed message shown when clicking on the @summary@-popup or when no @summary@ is specified
|
||||||
summary Html Maybe
|
summary Html Maybe
|
||||||
|
|
||||||
SystemMessageTranslation -- Translation of a @SystemMessage@ into another language; which language to choose is determined by user-sent HTTP-headers
|
SystemMessageTranslation -- Translation of a @SystemMessage@ into another language; which language to choose is determined by user-sent HTTP-headers
|
||||||
message SystemMessageId
|
message SystemMessageId
|
||||||
language Lang
|
language Lang
|
||||||
|
|||||||
@ -2238,7 +2238,7 @@ applySystemMessages = liftHandler . maybeT_ . catchMPlus (Proxy @CryptoIDError)
|
|||||||
cRoute <- lift getCurrentRoute
|
cRoute <- lift getCurrentRoute
|
||||||
guard $ cRoute /= Just NewsR
|
guard $ cRoute /= Just NewsR
|
||||||
|
|
||||||
lift . runDB . runConduit $ selectSource [] [] .| C.mapM_ applyMessage
|
lift . runDB . runConduit $ selectSource [] [Asc SystemMessageManualPriority] .| C.mapM_ applyMessage
|
||||||
where
|
where
|
||||||
syncSystemMessageHidden uid = runDB $ do
|
syncSystemMessageHidden uid = runDB $ do
|
||||||
smSt <- lookupRegisteredCookiesJson id CookieSystemMessageState :: DB (MergeHashMap CryptoUUIDSystemMessage UserSystemMessageState)
|
smSt <- lookupRegisteredCookiesJson id CookieSystemMessageState :: DB (MergeHashMap CryptoUUIDSystemMessage UserSystemMessageState)
|
||||||
|
|||||||
@ -75,7 +75,7 @@ newsSystemMessages = do
|
|||||||
.| C.iterM (\(smId, _, _, _) -> tellShown smId)
|
.| C.iterM (\(smId, _, _, _) -> tellShown smId)
|
||||||
.| C.mapM (\(smId, sm@SystemMessage{..}, trans, hidden) -> (sm, trans, hidden,,) <$> formatTime SelFormatDateTime (maybe id max systemMessageFrom systemMessageLastChanged) <*> mkHideForm smId sm)
|
.| C.mapM (\(smId, sm@SystemMessage{..}, trans, hidden) -> (sm, trans, hidden,,) <$> formatTime SelFormatDateTime (maybe id max systemMessageFrom systemMessageLastChanged) <*> mkHideForm smId sm)
|
||||||
.| C.consume
|
.| C.consume
|
||||||
let messages = sortOn (\(SystemMessage{..}, _, _, _, _) -> (Down $ maybe id max systemMessageFrom systemMessageLastChanged, systemMessageSeverity)) messages'
|
let messages = sortOn (\(SystemMessage{..}, _, _, _, _) -> (Down systemMessageManualPriority, Down $ maybe id max systemMessageFrom systemMessageLastChanged, systemMessageSeverity)) messages'
|
||||||
|
|
||||||
hiddenUrl <- toTextUrl (NewsR, [(toPathPiece GetHidden, "")])
|
hiddenUrl <- toTextUrl (NewsR, [(toPathPiece GetHidden, "")])
|
||||||
|
|
||||||
|
|||||||
@ -41,6 +41,7 @@ postMessageR cID = do
|
|||||||
<*> apopt checkBoxField (fslI MsgSystemMessageNewsOnly) (Just systemMessageNewsOnly)
|
<*> apopt checkBoxField (fslI MsgSystemMessageNewsOnly) (Just systemMessageNewsOnly)
|
||||||
<*> apopt checkBoxField (fslI MsgSystemMessageAuthenticatedOnly) (Just systemMessageAuthenticatedOnly)
|
<*> apopt checkBoxField (fslI MsgSystemMessageAuthenticatedOnly) (Just systemMessageAuthenticatedOnly)
|
||||||
<*> areq (selectField optionsFinite) (fslI MsgSystemMessageSeverity) (Just systemMessageSeverity)
|
<*> areq (selectField optionsFinite) (fslI MsgSystemMessageSeverity) (Just systemMessageSeverity)
|
||||||
|
<*> aopt (natFieldI MsgSystemMessagePriorityNegative) (fslI MsgSystemMessagePriority) (Just systemMessageManualPriority)
|
||||||
<*> pure systemMessageCreated
|
<*> pure systemMessageCreated
|
||||||
<*> (bool systemMessageLastChanged now <$> apopt checkBoxField (fslI MsgSystemMessageRecordChanged & setTooltip MsgSystemMessageRecordChangedTip) (Just True))
|
<*> (bool systemMessageLastChanged now <$> apopt checkBoxField (fslI MsgSystemMessageRecordChanged & setTooltip MsgSystemMessageRecordChangedTip) (Just True))
|
||||||
<*> (bool systemMessageLastUnhide now <$> apopt checkBoxField (fslI MsgSystemMessageUnhide & setTooltip MsgSystemMessageUnhideTip) (Just False))
|
<*> (bool systemMessageLastUnhide now <$> apopt checkBoxField (fslI MsgSystemMessageUnhide & setTooltip MsgSystemMessageUnhideTip) (Just False))
|
||||||
@ -175,6 +176,7 @@ postMessageListR = do
|
|||||||
, sortable (Just "news-only") (i18nCell MsgSystemMessageNewsOnly) $ \DBRow { dbrOutput = (Entity _ SystemMessage{..}, _) } -> tickmarkCell systemMessageNewsOnly
|
, sortable (Just "news-only") (i18nCell MsgSystemMessageNewsOnly) $ \DBRow { dbrOutput = (Entity _ SystemMessage{..}, _) } -> tickmarkCell systemMessageNewsOnly
|
||||||
, sortable (Just "authenticated") (i18nCell MsgSystemMessageAuthenticatedOnly) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> tickmarkCell systemMessageAuthenticatedOnly
|
, sortable (Just "authenticated") (i18nCell MsgSystemMessageAuthenticatedOnly) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> tickmarkCell systemMessageAuthenticatedOnly
|
||||||
, sortable (Just "severity") (i18nCell MsgSystemMessageSeverity) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> i18nCell systemMessageSeverity
|
, sortable (Just "severity") (i18nCell MsgSystemMessageSeverity) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> i18nCell systemMessageSeverity
|
||||||
|
, sortable (Just "priority") (i18nCell MsgSystemMessagePriority) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> maybe mempty numCell systemMessageManualPriority
|
||||||
, sortable (Just "created") (i18nCell MsgSystemMessageCreated) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> cell $ formatTimeW SelFormatDateTime systemMessageCreated
|
, sortable (Just "created") (i18nCell MsgSystemMessageCreated) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> cell $ formatTimeW SelFormatDateTime systemMessageCreated
|
||||||
, sortable (Just "last-changed") (i18nCell MsgSystemMessageLastChanged) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> cell $ formatTimeW SelFormatDateTime systemMessageLastChanged
|
, sortable (Just "last-changed") (i18nCell MsgSystemMessageLastChanged) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> cell $ formatTimeW SelFormatDateTime systemMessageLastChanged
|
||||||
, sortable (Just "last-unhide") (i18nCell MsgSystemMessageLastUnhide) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> cell $ formatTimeW SelFormatDateTime systemMessageLastUnhide
|
, sortable (Just "last-unhide") (i18nCell MsgSystemMessageLastUnhide) $ \DBRow{ dbrOutput = (Entity _ SystemMessage{..}, _) } -> cell $ formatTimeW SelFormatDateTime systemMessageLastUnhide
|
||||||
@ -212,6 +214,9 @@ postMessageListR = do
|
|||||||
, ( "severity"
|
, ( "severity"
|
||||||
, SortColumn $ \systemMessage -> systemMessage E.^. SystemMessageSeverity
|
, SortColumn $ \systemMessage -> systemMessage E.^. SystemMessageSeverity
|
||||||
)
|
)
|
||||||
|
, ( "priority"
|
||||||
|
, SortColumn (E.^. SystemMessageManualPriority)
|
||||||
|
)
|
||||||
, ( "created"
|
, ( "created"
|
||||||
, SortColumn $ \systemMessage -> systemMessage E.^. SystemMessageCreated
|
, SortColumn $ \systemMessage -> systemMessage E.^. SystemMessageCreated
|
||||||
)
|
)
|
||||||
@ -283,6 +288,7 @@ postMessageListR = do
|
|||||||
<*> apopt checkBoxField (fslI MsgSystemMessageNewsOnly) (Just False)
|
<*> apopt checkBoxField (fslI MsgSystemMessageNewsOnly) (Just False)
|
||||||
<*> apopt checkBoxField (fslI MsgSystemMessageAuthenticatedOnly) (Just False)
|
<*> apopt checkBoxField (fslI MsgSystemMessageAuthenticatedOnly) (Just False)
|
||||||
<*> areq (selectField optionsFinite) (fslI MsgSystemMessageSeverity) (Just Info)
|
<*> areq (selectField optionsFinite) (fslI MsgSystemMessageSeverity) (Just Info)
|
||||||
|
<*> aopt (natFieldI MsgSystemMessagePriorityNegative) (fslI MsgSystemMessagePriority) (Just Nothing)
|
||||||
<*> pure now <*> pure now <*> pure now
|
<*> pure now <*> pure now <*> pure now
|
||||||
<*> areq (langField False) (fslpI MsgSystemMessageLanguage (mr MsgRFC1766)) (Just $ NonEmpty.head appLanguages)
|
<*> areq (langField False) (fslpI MsgSystemMessageLanguage (mr MsgRFC1766)) (Just $ NonEmpty.head appLanguages)
|
||||||
<*> areq htmlField (fslI MsgSystemMessageContent) Nothing
|
<*> areq htmlField (fslI MsgSystemMessageContent) Nothing
|
||||||
|
|||||||
@ -922,6 +922,7 @@ fillDb = do
|
|||||||
, systemMessageTo = Nothing
|
, systemMessageTo = Nothing
|
||||||
, systemMessageAuthenticatedOnly = False
|
, systemMessageAuthenticatedOnly = False
|
||||||
, systemMessageSeverity = Success
|
, systemMessageSeverity = Success
|
||||||
|
, systemMessageManualPriority = Nothing
|
||||||
, systemMessageDefaultLanguage = "de"
|
, systemMessageDefaultLanguage = "de"
|
||||||
, systemMessageContent = "System-Nachrichten werden angezeigt"
|
, systemMessageContent = "System-Nachrichten werden angezeigt"
|
||||||
, systemMessageSummary = Nothing
|
, systemMessageSummary = Nothing
|
||||||
@ -936,6 +937,7 @@ fillDb = do
|
|||||||
, systemMessageTo = Nothing
|
, systemMessageTo = Nothing
|
||||||
, systemMessageAuthenticatedOnly = False
|
, systemMessageAuthenticatedOnly = False
|
||||||
, systemMessageSeverity = Info
|
, systemMessageSeverity = Info
|
||||||
|
, systemMessageManualPriority = Nothing
|
||||||
, systemMessageDefaultLanguage = "de"
|
, systemMessageDefaultLanguage = "de"
|
||||||
, systemMessageContent = "System-Nachrichten können längeren Inhalt enthalten"
|
, systemMessageContent = "System-Nachrichten können längeren Inhalt enthalten"
|
||||||
, systemMessageSummary = Just "System-Nachricht Zusammenfassung"
|
, systemMessageSummary = Just "System-Nachricht Zusammenfassung"
|
||||||
@ -949,6 +951,7 @@ fillDb = do
|
|||||||
, systemMessageTo = Just now
|
, systemMessageTo = Just now
|
||||||
, systemMessageAuthenticatedOnly = False
|
, systemMessageAuthenticatedOnly = False
|
||||||
, systemMessageSeverity = Info
|
, systemMessageSeverity = Info
|
||||||
|
, systemMessageManualPriority = Nothing
|
||||||
, systemMessageDefaultLanguage = "de"
|
, systemMessageDefaultLanguage = "de"
|
||||||
, systemMessageContent = "System-Nachrichten haben Ablaufdaten"
|
, systemMessageContent = "System-Nachrichten haben Ablaufdaten"
|
||||||
, systemMessageSummary = Nothing
|
, systemMessageSummary = Nothing
|
||||||
@ -962,6 +965,7 @@ fillDb = do
|
|||||||
, systemMessageTo = Nothing
|
, systemMessageTo = Nothing
|
||||||
, systemMessageAuthenticatedOnly = False
|
, systemMessageAuthenticatedOnly = False
|
||||||
, systemMessageSeverity = Error
|
, systemMessageSeverity = Error
|
||||||
|
, systemMessageManualPriority = Nothing
|
||||||
, systemMessageDefaultLanguage = "de"
|
, systemMessageDefaultLanguage = "de"
|
||||||
, systemMessageContent = "System-Nachrichten können Inaktiv sein"
|
, systemMessageContent = "System-Nachrichten können Inaktiv sein"
|
||||||
, systemMessageSummary = Nothing
|
, systemMessageSummary = Nothing
|
||||||
@ -975,6 +979,7 @@ fillDb = do
|
|||||||
, systemMessageTo = Nothing
|
, systemMessageTo = Nothing
|
||||||
, systemMessageAuthenticatedOnly = False
|
, systemMessageAuthenticatedOnly = False
|
||||||
, systemMessageSeverity = Error
|
, systemMessageSeverity = Error
|
||||||
|
, systemMessageManualPriority = Nothing
|
||||||
, systemMessageDefaultLanguage = "de"
|
, systemMessageDefaultLanguage = "de"
|
||||||
, systemMessageContent = "System-Nachrichten können nur auf \"Aktuelles\" angezeigt werden"
|
, systemMessageContent = "System-Nachrichten können nur auf \"Aktuelles\" angezeigt werden"
|
||||||
, systemMessageSummary = Nothing
|
, systemMessageSummary = Nothing
|
||||||
|
|||||||
Reference in New Issue
Block a user