diff --git a/modules/webapp/src/main/elm/App/Data.elm b/modules/webapp/src/main/elm/App/Data.elm index 73a813f4..f88a36cc 100644 --- a/modules/webapp/src/main/elm/App/Data.elm +++ b/modules/webapp/src/main/elm/App/Data.elm @@ -64,6 +64,7 @@ type alias Model = , anonymousTheme : UiTheme , anonymousUiLang : UiLanguage , langMenuOpen : Bool + , showNewItemsArrived : Bool } @@ -126,6 +127,7 @@ init key url flags_ settings = , anonymousTheme = Data.UiTheme.Light , anonymousUiLang = Messages.UiLanguage.English , langMenuOpen = False + , showNewItemsArrived = False } , Cmd.batch [ Cmd.map UserSettingsMsg uc @@ -191,6 +193,7 @@ type Msg | ClientSettingsSaveResp UiSettings (Result Http.Error BasicResult) | ReceiveBrowserSettings StoredUiSettings | ReceiveWsMessage String + | ToggleShowNewItemsArrived defaultPage : Flags -> Page diff --git a/modules/webapp/src/main/elm/App/Update.elm b/modules/webapp/src/main/elm/App/Update.elm index c5c852af..60bfcd47 100644 --- a/modules/webapp/src/main/elm/App/Update.elm +++ b/modules/webapp/src/main/elm/App/Update.elm @@ -316,16 +316,26 @@ updateWithSub msg model = in case se of Just ItemProcessed -> + let + newModel = + { model | showNewItemsArrived = True } + in case model.page of HomePage -> - updateHome texts Page.Home.Data.RefreshView model + updateHome texts Page.Home.Data.RefreshView newModel _ -> - ( model, Cmd.none, Sub.none ) + ( newModel, Cmd.none, Sub.none ) Nothing -> ( model, Cmd.none, Sub.none ) + ToggleShowNewItemsArrived -> + ( { model | showNewItemsArrived = not model.showNewItemsArrived } + , Cmd.none + , Sub.none + ) + applyClientSettings : Messages -> Model -> UiSettings -> ( Model, Cmd Msg, Sub Msg ) applyClientSettings texts model settings = diff --git a/modules/webapp/src/main/elm/App/View2.elm b/modules/webapp/src/main/elm/App/View2.elm index 75159ed1..4e3d657c 100644 --- a/modules/webapp/src/main/elm/App/View2.elm +++ b/modules/webapp/src/main/elm/App/View2.elm @@ -71,7 +71,19 @@ topNavUser auth model = , activeStyle = "hover:bg-blue-200 dark:hover:bg-bluegray-800 w-12" } , headerNavItem True model - , div [ class "flex flex-grow justify-end" ] + , div [ class "flex flex-grow justify-center" ] + [ a + [ class S.infoMessageBase + , class "my-2 px-1 py-1 rounded-lg inline-block hover:opacity-50" + , classList [ ( "hidden", not model.showNewItemsArrived ) ] + , href "#" + , onClick ToggleShowNewItemsArrived + ] + [ i [ class "fa fa-exclamation-circle mr-1" ] [] + , text texts.app.newItemsArrived + ] + ] + , div [ class "flex justify-end" ] [ userMenu texts.app auth model , dataMenu texts.app auth model ] diff --git a/modules/webapp/src/main/elm/Messages/App.elm b/modules/webapp/src/main/elm/Messages/App.elm index 0288e4a7..06d32a73 100644 --- a/modules/webapp/src/main/elm/Messages/App.elm +++ b/modules/webapp/src/main/elm/Messages/App.elm @@ -23,6 +23,7 @@ type alias Texts = , processingQueue : String , newInvites : String , help : String + , newItemsArrived : String } @@ -38,6 +39,7 @@ gb = , processingQueue = "Processing Queue" , newInvites = "New Invites" , help = "Help" + , newItemsArrived = "New items arrived!" } @@ -53,4 +55,5 @@ de = , processingQueue = "Verarbeitung" , newInvites = "Neue Einladung" , help = "Hilfe (English)" + , newItemsArrived = "Neue Dokumente eingetroffen!" } diff --git a/modules/webapp/src/main/elm/Styles.elm b/modules/webapp/src/main/elm/Styles.elm index 645d2324..e7cbdb6e 100644 --- a/modules/webapp/src/main/elm/Styles.elm +++ b/modules/webapp/src/main/elm/Styles.elm @@ -63,9 +63,14 @@ warnMessageColors = " border-yellow-800 bg-yellow-50 text-yellow-800 dark:border-amber-200 dark:bg-amber-800 dark:text-amber-200 " +infoMessageBase : String +infoMessageBase = + " border border-blue-800 bg-blue-100 text-blue-800 dark:border-lightblue-200 dark:bg-lightblue-800 dark:text-lightblue-200 dark:bg-opacity-25 " + + infoMessage : String infoMessage = - " border border-blue-800 bg-blue-100 text-blue-800 dark:border-lightblue-200 dark:bg-lightblue-800 dark:text-lightblue-200 dark:bg-opacity-25 px-2 py-2 rounded " + infoMessageBase ++ " px-2 py-2 rounded " message : String