From 12cad398ac733629335de7f18eeea88efc7cefd6 Mon Sep 17 00:00:00 2001 From: Eike Kettner <eike.kettner@posteo.de> Date: Wed, 31 Mar 2021 20:57:47 +0200 Subject: [PATCH] Externalize strings in new-invite page --- modules/webapp/src/main/elm/App/View2.elm | 8 ++-- .../src/main/elm/Messages/NewInvitePage.elm | 33 +++++++++++++ .../src/main/elm/Page/NewInvite/View2.elm | 47 +++++++------------ 3 files changed, 54 insertions(+), 34 deletions(-) create mode 100644 modules/webapp/src/main/elm/Messages/NewInvitePage.elm diff --git a/modules/webapp/src/main/elm/App/View2.elm b/modules/webapp/src/main/elm/App/View2.elm index 2c6c7801..07075ccb 100644 --- a/modules/webapp/src/main/elm/App/View2.elm +++ b/modules/webapp/src/main/elm/App/View2.elm @@ -142,7 +142,7 @@ mainContent model = viewUpload mid model NewInvitePage -> - viewNewInvite model + viewNewInvite texts model ItemDetailPage id -> viewItemDetail id model @@ -467,12 +467,12 @@ viewRegister texts model = ] -viewNewInvite : Model -> List (Html Msg) -viewNewInvite model = +viewNewInvite : Messages -> Model -> List (Html Msg) +viewNewInvite texts model = [ Html.map NewInviteMsg (NewInvite.viewSidebar model.sidebarVisible model.flags model.uiSettings model.newInviteModel) , Html.map NewInviteMsg - (NewInvite.viewContent model.flags model.uiSettings model.newInviteModel) + (NewInvite.viewContent texts.newInvite model.flags model.uiSettings model.newInviteModel) ] diff --git a/modules/webapp/src/main/elm/Messages/NewInvitePage.elm b/modules/webapp/src/main/elm/Messages/NewInvitePage.elm new file mode 100644 index 00000000..4e10ec5a --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/NewInvitePage.elm @@ -0,0 +1,33 @@ +module Messages.NewInvitePage exposing (..) + +import Messages.Basics + + +type alias Texts = + { basics : Messages.Basics.Texts + , createNewInvitations : String + , invitationKey : String + , password : String + , reset : String + , inviteInfo : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , createNewInvitations = "Create new invitations" + , invitationKey = "Invitation Key" + , password = "Password" + , reset = "Reset" + , inviteInfo = + """Docspell requires an invite when signing up. You can + create these invites here and send them to friends so + they can signup with docspell. + + Each invite can only be used once. You'll need to + create one key for each person you want to invite. + + Creating an invite requires providing the password + from the configuration.""" + } diff --git a/modules/webapp/src/main/elm/Page/NewInvite/View2.elm b/modules/webapp/src/main/elm/Page/NewInvite/View2.elm index 1350e0ba..f81666e9 100644 --- a/modules/webapp/src/main/elm/Page/NewInvite/View2.elm +++ b/modules/webapp/src/main/elm/Page/NewInvite/View2.elm @@ -5,6 +5,8 @@ import Data.UiSettings exposing (UiSettings) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick, onInput, onSubmit) +import Markdown +import Messages.NewInvitePage exposing (Texts) import Page.NewInvite.Data exposing (..) import Styles as S @@ -18,15 +20,15 @@ viewSidebar _ _ _ _ = [] -viewContent : Flags -> UiSettings -> Model -> Html Msg -viewContent flags _ model = +viewContent : Texts -> Flags -> UiSettings -> Model -> Html Msg +viewContent texts flags _ model = div [ id "content" , class "flex flex-col md:w-3/5 px-2" , class S.content ] - [ h1 [ class S.header1 ] [ text "Create new invitations" ] - , inviteMessage flags + [ h1 [ class S.header1 ] [ text texts.createNewInvitations ] + , inviteMessage texts flags , div [ class " py-2 mt-6 rounded" ] [ Html.form [ action "#" @@ -38,7 +40,7 @@ viewContent flags _ model = [ for "invitekey" , class "mb-1 text-xs sm:text-sm tracking-wide " ] - [ text "Invitation key" + [ text texts.invitationKey ] , div [ class "relative" ] [ div [ class "inline-flex items-center justify-center absolute left-0 top-0 h-full w-10 text-gray-400 dark:text-bluegray-400 " ] @@ -53,7 +55,7 @@ viewContent flags _ model = , value model.password , autofocus True , class ("pl-10 pr-4 py-2 rounded-lg" ++ S.textInput) - , placeholder "Password" + , placeholder texts.password ] [] ] @@ -64,25 +66,25 @@ viewContent flags _ model = [ type_ "submit" , class (S.primaryButton ++ "inline-flex") ] - [ text "Submit" + [ text texts.basics.submit ] , a [ class S.secondaryButton , href "#" , onClick Reset ] - [ text "Reset" + [ text texts.reset ] ] ] - , resultMessage model + , resultMessage texts model ] ] ] -resultMessage : Model -> Html Msg -resultMessage model = +resultMessage : Texts -> Model -> Html Msg +resultMessage texts model = div [ classList [ ( S.errorMessage, isFailed model.result ) @@ -98,7 +100,7 @@ resultMessage model = div [ class "" ] [ p [] [ text r.message - , text " Invitation Key:" + , text (" " ++ texts.invitationKey ++ ":") ] , pre [ class "text-center font-mono mt-4" ] [ Maybe.withDefault "" r.key |> text @@ -110,28 +112,13 @@ resultMessage model = ] -inviteMessage : Flags -> Html Msg -inviteMessage flags = +inviteMessage : Texts -> Flags -> Html Msg +inviteMessage texts flags = div [ class (S.message ++ "text-sm") , classList [ ( "hidden", flags.config.signupMode /= "invite" ) ] ] - [ p [] - [ text - """Docspell requires an invite when signing up. You can - create these invites here and send them to friends so - they can signup with docspell.""" - ] - , p [] - [ text - """Each invite can only be used once. You'll need to - create one key for each person you want to invite.""" - ] - , p [] - [ text - """Creating an invite requires providing the password - from the configuration.""" - ] + [ Markdown.toHtml [] texts.inviteInfo ]