From 594818499e7f9b48709f23f59bec2b5803359fc3 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Sun, 4 Apr 2021 15:55:49 +0200 Subject: [PATCH] Externalize strings in manage-data page --- modules/webapp/src/main/elm/App/View2.elm | 19 +++- .../webapp/src/main/elm/Comp/AddressForm.elm | 21 ++-- .../webapp/src/main/elm/Comp/ContactField.elm | 19 ++-- .../src/main/elm/Comp/CustomFieldForm.elm | 49 ++++----- .../src/main/elm/Comp/CustomFieldManage.elm | 40 ++++--- .../src/main/elm/Comp/CustomFieldTable.elm | 14 +-- .../webapp/src/main/elm/Comp/DetailEdit.elm | 16 ++- modules/webapp/src/main/elm/Comp/Dropdown.elm | 6 +- .../src/main/elm/Comp/EquipmentForm.elm | 7 +- .../src/main/elm/Comp/EquipmentManage.elm | 48 +++++---- .../src/main/elm/Comp/EquipmentTable.elm | 18 ++-- .../webapp/src/main/elm/Comp/FolderDetail.elm | 51 ++++----- .../webapp/src/main/elm/Comp/FolderManage.elm | 42 +++++--- .../webapp/src/main/elm/Comp/FolderTable.elm | 15 ++- .../src/main/elm/Comp/ItemDetail/EditForm.elm | 2 +- modules/webapp/src/main/elm/Comp/OrgForm.elm | 37 ++++--- .../webapp/src/main/elm/Comp/OrgManage.elm | 51 +++++---- modules/webapp/src/main/elm/Comp/OrgTable.elm | 25 +++-- .../webapp/src/main/elm/Comp/PersonForm.elm | 45 +++++--- .../webapp/src/main/elm/Comp/PersonManage.elm | 50 +++++---- .../webapp/src/main/elm/Comp/PersonTable.elm | 13 +-- .../webapp/src/main/elm/Comp/SearchMenu.elm | 2 +- modules/webapp/src/main/elm/Comp/TagForm.elm | 13 +-- .../webapp/src/main/elm/Comp/TagManage.elm | 41 +++---- modules/webapp/src/main/elm/Comp/TagTable.elm | 9 +- .../src/main/elm/Data/CustomFieldType.elm | 20 ---- .../webapp/src/main/elm/Data/EquipmentUse.elm | 11 -- modules/webapp/src/main/elm/Data/OrgUse.elm | 11 -- .../webapp/src/main/elm/Data/PersonUse.elm | 17 --- modules/webapp/src/main/elm/Messages.elm | 4 + .../src/main/elm/Messages/AddressFormComp.elm | 20 ++++ .../webapp/src/main/elm/Messages/Basics.elm | 4 + .../src/main/elm/Messages/ContactTypeData.elm | 25 +++++ .../main/elm/Messages/CustomFieldFormComp.elm | 46 ++++++++ .../elm/Messages/CustomFieldManageComp.elm | 24 +++++ .../elm/Messages/CustomFieldTableComp.elm | 20 ++++ .../main/elm/Messages/CustomFieldTypeData.elm | 22 ++++ .../main/elm/Messages/EquipmentFormComp.elm | 15 +++ .../main/elm/Messages/EquipmentManageComp.elm | 28 +++++ .../main/elm/Messages/EquipmentTableComp.elm | 19 ++++ .../main/elm/Messages/EquipmentUseData.elm | 13 +++ .../main/elm/Messages/FolderDetailComp.elm | 34 ++++++ .../main/elm/Messages/FolderManageComp.elm | 26 +++++ .../src/main/elm/Messages/FolderTableComp.elm | 18 ++++ .../src/main/elm/Messages/ManageDataPage.elm | 49 +++++++++ .../src/main/elm/Messages/OrgFormComp.elm | 38 +++++++ .../src/main/elm/Messages/OrgManageComp.elm | 28 +++++ .../src/main/elm/Messages/OrgTableComp.elm | 24 +++++ .../src/main/elm/Messages/OrgUseData.elm | 13 +++ .../src/main/elm/Messages/PersonFormComp.elm | 44 ++++++++ .../main/elm/Messages/PersonManageComp.elm | 28 +++++ .../src/main/elm/Messages/PersonTableComp.elm | 24 +++++ .../src/main/elm/Messages/PersonUseData.elm | 19 ++++ .../src/main/elm/Messages/TagFormComp.elm | 16 +++ .../src/main/elm/Messages/TagManageComp.elm | 28 +++++ .../src/main/elm/Messages/TagTableComp.elm | 14 +++ .../src/main/elm/Page/ManageData/View2.elm | 102 +++++++++++------- 57 files changed, 1078 insertions(+), 379 deletions(-) create mode 100644 modules/webapp/src/main/elm/Messages/AddressFormComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/ContactTypeData.elm create mode 100644 modules/webapp/src/main/elm/Messages/CustomFieldFormComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/CustomFieldManageComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/CustomFieldTableComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/CustomFieldTypeData.elm create mode 100644 modules/webapp/src/main/elm/Messages/EquipmentFormComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/EquipmentManageComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/EquipmentTableComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/EquipmentUseData.elm create mode 100644 modules/webapp/src/main/elm/Messages/FolderDetailComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/FolderManageComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/FolderTableComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/ManageDataPage.elm create mode 100644 modules/webapp/src/main/elm/Messages/OrgFormComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/OrgManageComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/OrgTableComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/OrgUseData.elm create mode 100644 modules/webapp/src/main/elm/Messages/PersonFormComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/PersonManageComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/PersonTableComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/PersonUseData.elm create mode 100644 modules/webapp/src/main/elm/Messages/TagFormComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/TagManageComp.elm create mode 100644 modules/webapp/src/main/elm/Messages/TagTableComp.elm diff --git a/modules/webapp/src/main/elm/App/View2.elm b/modules/webapp/src/main/elm/App/View2.elm index a517f10e..ba3cac4e 100644 --- a/modules/webapp/src/main/elm/App/View2.elm +++ b/modules/webapp/src/main/elm/App/View2.elm @@ -127,7 +127,7 @@ mainContent model = viewLogin texts model ManageDataPage -> - viewManageData model + viewManageData texts model UserSettingPage -> viewUserSettings texts model @@ -431,12 +431,21 @@ viewLogin texts model = ] -viewManageData : Model -> List (Html Msg) -viewManageData model = +viewManageData : Messages -> Model -> List (Html Msg) +viewManageData texts model = [ Html.map ManageDataMsg - (ManageData.viewSidebar model.sidebarVisible model.flags model.uiSettings model.manageDataModel) + (ManageData.viewSidebar texts.manageData + model.sidebarVisible + model.flags + model.uiSettings + model.manageDataModel + ) , Html.map ManageDataMsg - (ManageData.viewContent model.flags model.uiSettings model.manageDataModel) + (ManageData.viewContent texts.manageData + model.flags + model.uiSettings + model.manageDataModel + ) ] diff --git a/modules/webapp/src/main/elm/Comp/AddressForm.elm b/modules/webapp/src/main/elm/Comp/AddressForm.elm index fb32a7df..287ddf78 100644 --- a/modules/webapp/src/main/elm/Comp/AddressForm.elm +++ b/modules/webapp/src/main/elm/Comp/AddressForm.elm @@ -14,6 +14,7 @@ import Data.UiSettings exposing (UiSettings) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onInput) +import Messages.AddressFormComp exposing (Texts) import Styles as S import Util.List @@ -110,12 +111,12 @@ update msg model = --- View2 -view2 : UiSettings -> Model -> Html Msg -view2 settings model = +view2 : Texts -> UiSettings -> Model -> Html Msg +view2 texts settings model = let countryCfg = { makeOption = \c -> { text = c.label, additional = "" } - , placeholder = "Select Country" + , placeholder = texts.selectCountry , labelColor = \_ -> \_ -> "" , style = DS.mainStyle } @@ -128,12 +129,12 @@ view2 settings model = [ for "street" , class S.inputLabel ] - [ text "Street" + [ text texts.street ] , input [ type_ "text" , onInput SetStreet - , placeholder "Street" + , placeholder texts.street , value model.street , name "street" , class S.textInput @@ -147,12 +148,12 @@ view2 settings model = [ for "zip" , class S.inputLabel ] - [ text "Zip Code" + [ text texts.zipCode ] , input [ type_ "text" , onInput SetZip - , placeholder "Zip" + , placeholder texts.zipCode , value model.zip , name "zip" , class S.textInput @@ -166,12 +167,12 @@ view2 settings model = [ for "city" , class S.inputLabel ] - [ text "City" + [ text texts.city ] , input [ type_ "text" , onInput SetCity - , placeholder "City" + , placeholder texts.city , value model.city , name "city" , class S.textInput @@ -180,7 +181,7 @@ view2 settings model = ] , div [ class "" ] [ label [ class S.inputLabel ] - [ text "Country" + [ text texts.country ] , Html.map CountryMsg (Comp.Dropdown.view2 diff --git a/modules/webapp/src/main/elm/Comp/ContactField.elm b/modules/webapp/src/main/elm/Comp/ContactField.elm index 7dd35484..11078acb 100644 --- a/modules/webapp/src/main/elm/Comp/ContactField.elm +++ b/modules/webapp/src/main/elm/Comp/ContactField.elm @@ -1,6 +1,7 @@ module Comp.ContactField exposing ( Model , Msg(..) + , ViewSettings , emptyModel , getContacts , update @@ -115,11 +116,17 @@ update msg model = --- View2 -view2 : Bool -> UiSettings -> Model -> Html Msg -view2 mobile _ model = +type alias ViewSettings = + { contactTypeLabel : ContactType -> String + , mobile : Bool + } + + +view2 : ViewSettings -> UiSettings -> Model -> Html Msg +view2 cfg _ model = let kindCfg = - { display = Data.ContactType.toString + { display = cfg.contactTypeLabel , icon = \_ -> Nothing , style = DS.mainStyle } @@ -127,10 +134,10 @@ view2 mobile _ model = div [ class "flex flex-col" ] [ div [ class "flex flex-col space-y-2" - , classList [ ( " md:flex-row md:space-y-0 md:space-x-2", not mobile ) ] + , classList [ ( " md:flex-row md:space-y-0 md:space-x-2", not cfg.mobile ) ] ] [ div - [ classList [ ( "flex-none md:w-1/6", not mobile ) ] + [ classList [ ( "flex-none md:w-1/6", not cfg.mobile ) ] ] [ Html.map TypeMsg (Comp.FixedDropdown.viewStyled2 @@ -163,7 +170,7 @@ view2 mobile _ model = ] , class "flex flex-col space-y-2 mt-2 px-2 border-0 border-l dark:border-bluegray-600 " ] - (List.map (renderItem2 mobile) model.items) + (List.map (renderItem2 cfg.mobile) model.items) ] diff --git a/modules/webapp/src/main/elm/Comp/CustomFieldForm.elm b/modules/webapp/src/main/elm/Comp/CustomFieldForm.elm index 66fe9c4b..afb4b792 100644 --- a/modules/webapp/src/main/elm/Comp/CustomFieldForm.elm +++ b/modules/webapp/src/main/elm/Comp/CustomFieldForm.elm @@ -23,8 +23,9 @@ import Data.Flags exposing (Flags) import Data.Validated exposing (Validated) import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onClick, onInput) +import Html.Events exposing (onInput) import Http +import Messages.CustomFieldFormComp exposing (Texts) import Styles as S import Util.Http import Util.Maybe @@ -196,20 +197,20 @@ type alias ViewSettings = --- View2 -view2 : ViewSettings -> Model -> List (Html Msg) -view2 viewSettings model = +view2 : Texts -> ViewSettings -> Model -> List (Html Msg) +view2 texts viewSettings model = let dimmerSettings = - Comp.YesNoDimmer.defaultSettings2 "Really delete this custom field?" + Comp.YesNoDimmer.defaultSettings2 texts.reallyDeleteField ftypeCfg = - { display = Data.CustomFieldType.label + { display = texts.fieldTypeLabel , icon = \_ -> Nothing , style = DS.mainStyle } in (if viewSettings.showControls then - [ viewButtons2 model ] + [ viewButtons2 texts model ] else [] @@ -238,20 +239,19 @@ view2 viewSettings model = ] , if model.field.id == "" then div [ class "py-2 text-lg opacity-75" ] - [ text "Create a new custom field." + [ text texts.createCustomField ] else div [ class "py-2 text-lg opacity-75" ] - [ text "Note that changing the format may " - , text "result in invisible values in the ui, if they don't comply to the new format!" + [ text texts.modifyTypeWarning ] , div [ class "mb-4" ] [ label [ class S.inputLabel , for "fieldname" ] - [ text "Name" + [ text texts.name , B.inputRequired ] , input @@ -268,15 +268,14 @@ view2 viewSettings model = ] [] , div [ class "opacity-75 text-sm" ] - [ text "The name uniquely identifies this field. It must be a valid " - , text "identifier, not contain spaces or weird characters." + [ text texts.nameInfo ] ] , div [ class "mb-4" ] [ label [ class S.inputLabel ] - [ text "Field Format" + [ text texts.fieldFormat , B.inputRequired ] , Html.map FTypeMsg @@ -287,8 +286,7 @@ view2 viewSettings model = model.ftypeModel ) , div [ class "opacity-75 text-sm" ] - [ text "A field must have a format. Values are validated " - , text "according to this format." + [ text texts.fieldFormatInfo ] ] , div [ class "mb-4" ] @@ -296,7 +294,7 @@ view2 viewSettings model = [ class S.inputLabel , for "fieldlabel" ] - [ text "Label" ] + [ text texts.label ] , input [ type_ "text" , onInput SetLabel @@ -308,38 +306,37 @@ view2 viewSettings model = ] [] , div [ class "opacity-75 text-sm" ] - [ text "The user defined label for this field. This is used to represent " - , text "this field in the ui. If not present, the name is used." + [ text texts.labelInfo ] ] ] ] -viewButtons2 : Model -> Html Msg -viewButtons2 model = +viewButtons2 : Texts -> Model -> Html Msg +viewButtons2 texts model = MB.view { start = [ MB.PrimaryButton { tagger = SubmitForm - , title = "Submit this form" + , title = texts.basics.submitThisForm , icon = Just "fa fa-save" - , label = "Submit" + , label = texts.basics.submit } , MB.SecondaryButton { tagger = GoBack - , title = "Back to list" + , title = texts.basics.backToList , icon = Just "fa fa-arrow-left" - , label = "Cancel" + , label = texts.basics.cancel } ] , end = if model.field.id /= "" then [ MB.DeleteButton { tagger = RequestDelete - , title = "Delete this field" + , title = texts.deleteThisField , icon = Just "fa fa-trash" - , label = "Delete" + , label = texts.basics.delete } ] diff --git a/modules/webapp/src/main/elm/Comp/CustomFieldManage.elm b/modules/webapp/src/main/elm/Comp/CustomFieldManage.elm index b6c596da..f062d834 100644 --- a/modules/webapp/src/main/elm/Comp/CustomFieldManage.elm +++ b/modules/webapp/src/main/elm/Comp/CustomFieldManage.elm @@ -17,8 +17,8 @@ import Comp.MenuBar as MB import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onClick, onInput) import Http +import Messages.CustomFieldManageComp exposing (Texts) import Styles as S import Util.CustomField @@ -135,18 +135,18 @@ update flags msg model = --- View2 -view2 : Flags -> Model -> Html Msg -view2 flags model = +view2 : Texts -> Flags -> Model -> Html Msg +view2 texts flags model = case model.detailModel of Just dm -> - viewDetail2 flags dm + viewDetail2 texts flags dm Nothing -> - viewTable2 model + viewTable2 texts model -viewDetail2 : Flags -> Comp.CustomFieldForm.Model -> Html Msg -viewDetail2 _ detailModel = +viewDetail2 : Texts -> Flags -> Comp.CustomFieldForm.Model -> Html Msg +viewDetail2 texts _ detailModel = let viewSettings = { showControls = True @@ -156,44 +156,52 @@ viewDetail2 _ detailModel = div [] ((if detailModel.field.id == "" then h3 [ class S.header2 ] - [ text "Create new custom field" + [ text texts.newCustomField ] else h3 [ class S.header2 ] [ Util.CustomField.nameOrLabel detailModel.field |> text , div [ class "opacity-50 text-sm" ] - [ text "Id: " + [ text (texts.basics.id ++ ": ") , text detailModel.field.id ] ] ) - :: List.map (Html.map DetailMsg) (Comp.CustomFieldForm.view2 viewSettings detailModel) + :: List.map (Html.map DetailMsg) + (Comp.CustomFieldForm.view2 texts.fieldForm + viewSettings + detailModel + ) ) -viewTable2 : Model -> Html Msg -viewTable2 model = +viewTable2 : Texts -> Model -> Html Msg +viewTable2 texts model = div [ class "flex flex-col md:relative" ] [ MB.view { start = [ MB.TextInput { tagger = SetQuery , value = model.query - , placeholder = "Search…" + , placeholder = texts.basics.searchPlaceholder , icon = Just "fa fa-search" } ] , end = [ MB.PrimaryButton { tagger = InitNewCustomField - , title = "Add a new custom field" + , title = texts.addCustomField , icon = Just "fa fa-plus" - , label = "New custom field" + , label = texts.newCustomField } ] , rootClasses = "mb-4" } - , Html.map TableMsg (Comp.CustomFieldTable.view2 model.tableModel model.fields) + , Html.map TableMsg + (Comp.CustomFieldTable.view2 texts.fieldTable + model.tableModel + model.fields + ) , B.loadingDimmer model.loading ] diff --git a/modules/webapp/src/main/elm/Comp/CustomFieldTable.elm b/modules/webapp/src/main/elm/Comp/CustomFieldTable.elm index 890fc0d1..7e16efdc 100644 --- a/modules/webapp/src/main/elm/Comp/CustomFieldTable.elm +++ b/modules/webapp/src/main/elm/Comp/CustomFieldTable.elm @@ -11,7 +11,7 @@ import Api.Model.CustomField exposing (CustomField) import Comp.Basic as B import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onClick) +import Messages.CustomFieldTableComp exposing (Texts) import Styles as S import Util.Time @@ -45,17 +45,17 @@ update msg model = --- View2 -view2 : Model -> List CustomField -> Html Msg -view2 _ items = +view2 : Texts -> Model -> List CustomField -> Html Msg +view2 texts _ items = div [] [ table [ class S.tableMain ] [ thead [] [ tr [] [ th [] [] - , th [ class "text-left" ] [ text "Name/Label" ] - , th [ class "text-left" ] [ text "Format" ] - , th [ class "text-center hidden sm:table-cell" ] [ text "#Usage" ] - , th [ class "text-center hidden sm:table-cell" ] [ text "Created" ] + , th [ class "text-left" ] [ text texts.nameLabel ] + , th [ class "text-left" ] [ text texts.format ] + , th [ class "text-center hidden sm:table-cell" ] [ text texts.usageCount ] + , th [ class "text-center hidden sm:table-cell" ] [ text texts.basics.created ] ] ] , tbody [] diff --git a/modules/webapp/src/main/elm/Comp/DetailEdit.elm b/modules/webapp/src/main/elm/Comp/DetailEdit.elm index 83950bff..08867e37 100644 --- a/modules/webapp/src/main/elm/Comp/DetailEdit.elm +++ b/modules/webapp/src/main/elm/Comp/DetailEdit.elm @@ -47,6 +47,11 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick) import Http +import Messages.CustomFieldFormComp +import Messages.EquipmentFormComp +import Messages.OrgFormComp +import Messages.PersonFormComp +import Messages.TagFormComp import Styles as S import Util.Http @@ -766,24 +771,25 @@ viewIntern2 settings withButtons model = ] , case model.form of TM tm -> - Html.map TagMsg (Comp.TagForm.view2 tm) + Html.map TagMsg (Comp.TagForm.view2 Messages.TagFormComp.gb tm) PMR pm -> - Html.map PersonMsg (Comp.PersonForm.view2 True settings pm) + Html.map PersonMsg (Comp.PersonForm.view2 Messages.PersonFormComp.gb True settings pm) PMC pm -> - Html.map PersonMsg (Comp.PersonForm.view2 True settings pm) + Html.map PersonMsg (Comp.PersonForm.view2 Messages.PersonFormComp.gb True settings pm) OM om -> - Html.map OrgMsg (Comp.OrgForm.view2 True settings om) + Html.map OrgMsg (Comp.OrgForm.view2 Messages.OrgFormComp.gb True settings om) EM em -> - Html.map EquipMsg (Comp.EquipmentForm.view2 em) + Html.map EquipMsg (Comp.EquipmentForm.view2 Messages.EquipmentFormComp.gb em) CFM fm -> div [] (List.map (Html.map CustomFieldMsg) (Comp.CustomFieldForm.view2 + Messages.CustomFieldFormComp.gb { classes = "" , showControls = False } diff --git a/modules/webapp/src/main/elm/Comp/Dropdown.elm b/modules/webapp/src/main/elm/Comp/Dropdown.elm index 02e1c04e..9e1b19e0 100644 --- a/modules/webapp/src/main/elm/Comp/Dropdown.elm +++ b/modules/webapp/src/main/elm/Comp/Dropdown.elm @@ -410,11 +410,11 @@ type alias ViewSettings a = } -orgFormViewSettings : DS.DropdownStyle -> ViewSettings IdName -orgFormViewSettings ds = +orgFormViewSettings : String -> DS.DropdownStyle -> ViewSettings IdName +orgFormViewSettings placeholder ds = { makeOption = \e -> { text = e.name, additional = "" } , labelColor = \_ -> \_ -> "" - , placeholder = "Choose an organization" + , placeholder = placeholder , style = ds } diff --git a/modules/webapp/src/main/elm/Comp/EquipmentForm.elm b/modules/webapp/src/main/elm/Comp/EquipmentForm.elm index 357f6506..79461883 100644 --- a/modules/webapp/src/main/elm/Comp/EquipmentForm.elm +++ b/modules/webapp/src/main/elm/Comp/EquipmentForm.elm @@ -17,6 +17,7 @@ import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onInput) +import Messages.EquipmentFormComp exposing (Texts) import Styles as S import Util.Maybe @@ -99,11 +100,11 @@ update _ msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = let equipUseCfg = - { display = Data.EquipmentUse.label + { display = texts.equipmentUseLabel , icon = \_ -> Nothing , style = DS.mainStyle } diff --git a/modules/webapp/src/main/elm/Comp/EquipmentManage.elm b/modules/webapp/src/main/elm/Comp/EquipmentManage.elm index 27df512b..cb570e12 100644 --- a/modules/webapp/src/main/elm/Comp/EquipmentManage.elm +++ b/modules/webapp/src/main/elm/Comp/EquipmentManage.elm @@ -20,6 +20,7 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onSubmit) import Http +import Messages.EquipmentManageComp exposing (Texts) import Styles as S import Util.Http import Util.Maybe @@ -204,38 +205,41 @@ update flags msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = if model.viewMode == Table then - viewTable2 model + viewTable2 texts model else - viewForm2 model + viewForm2 texts model -viewTable2 : Model -> Html Msg -viewTable2 model = +viewTable2 : Texts -> Model -> Html Msg +viewTable2 texts model = div [ class "flex flex-col" ] [ MB.view { start = [ MB.TextInput { tagger = SetQuery , value = model.query - , placeholder = "Search…" + , placeholder = texts.basics.searchPlaceholder , icon = Just "fa fa-search" } ] , end = [ MB.PrimaryButton { tagger = InitNewEquipment - , title = "Create a new equipment" + , title = texts.createNewEquipment , icon = Just "fa fa-plus" - , label = "New Equipment" + , label = texts.newEquipment } ] , rootClasses = "mb-4" } - , Html.map TableMsg (Comp.EquipmentTable.view2 model.tableModel) + , Html.map TableMsg + (Comp.EquipmentTable.view2 texts.equipmentTable + model.tableModel + ) , div [ classList [ ( "ui dimmer", True ) @@ -247,14 +251,14 @@ viewTable2 model = ] -viewForm2 : Model -> Html Msg -viewForm2 model = +viewForm2 : Texts -> Model -> Html Msg +viewForm2 texts model = let newEquipment = model.formModel.equipment.id == "" dimmerSettings2 = - Comp.YesNoDimmer.defaultSettings2 "Really delete this equipment?" + Comp.YesNoDimmer.defaultSettings2 texts.reallyDeleteEquipment in Html.form [ class "relative flex flex-col" @@ -268,14 +272,14 @@ viewForm2 model = ) , if newEquipment then h1 [ class S.header2 ] - [ text "Create new equipment" + [ text texts.createNewEquipment ] else h1 [ class S.header2 ] [ text model.formModel.equipment.name , div [ class "opacity-50 text-sm" ] - [ text "Id: " + [ text (texts.basics.id ++ ": ") , text model.formModel.equipment.id ] ] @@ -283,24 +287,24 @@ viewForm2 model = { start = [ MB.PrimaryButton { tagger = Submit - , title = "Submit this form" + , title = texts.basics.submitThisForm , icon = Just "fa fa-save" - , label = "Submit" + , label = texts.basics.submit } , MB.SecondaryButton { tagger = SetViewMode Table - , title = "Back to list" + , title = texts.basics.backToList , icon = Just "fa fa-arrow-left" - , label = "Cancel" + , label = texts.basics.cancel } ] , end = if not newEquipment then [ MB.DeleteButton { tagger = RequestDelete - , title = "Delete this equipment" + , title = texts.deleteThisEquipment , icon = Just "fa fa-trash" - , label = "Delete" + , label = texts.basics.delete } ] @@ -317,6 +321,6 @@ viewForm2 model = ] [ Maybe.withDefault "" model.formError |> text ] - , Html.map FormMsg (Comp.EquipmentForm.view2 model.formModel) + , Html.map FormMsg (Comp.EquipmentForm.view2 texts.equipmentForm model.formModel) , B.loadingDimmer model.loading ] diff --git a/modules/webapp/src/main/elm/Comp/EquipmentTable.elm b/modules/webapp/src/main/elm/Comp/EquipmentTable.elm index aabaccaa..948fc0dc 100644 --- a/modules/webapp/src/main/elm/Comp/EquipmentTable.elm +++ b/modules/webapp/src/main/elm/Comp/EquipmentTable.elm @@ -12,7 +12,7 @@ import Data.EquipmentUse import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onClick) +import Messages.EquipmentTableComp exposing (Texts) import Styles as S @@ -52,25 +52,25 @@ update _ msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = table [ class S.tableMain ] [ thead [] [ tr [] [ th [ class "" ] [] , th [ class "text-left pr-1 md:px-2 w-20" ] - [ text "Use" + [ text texts.use ] - , th [ class "text-left" ] [ text "Name" ] + , th [ class "text-left" ] [ text texts.name ] ] ] , tbody [] - (List.map (renderEquipmentLine2 model) model.equips) + (List.map (renderEquipmentLine2 texts model) model.equips) ] -renderEquipmentLine2 : Model -> Equipment -> Html Msg -renderEquipmentLine2 model equip = +renderEquipmentLine2 : Texts -> Model -> Equipment -> Html Msg +renderEquipmentLine2 texts model equip = tr [ classList [ ( "active", model.selected == Just equip ) ] , class S.tableRow @@ -80,7 +80,7 @@ renderEquipmentLine2 model equip = [ div [ class "label inline-flex text-sm" ] [ Data.EquipmentUse.fromString equip.use |> Maybe.withDefault Data.EquipmentUse.Concerning - |> Data.EquipmentUse.label + |> texts.equipmentUseLabel |> text ] ] diff --git a/modules/webapp/src/main/elm/Comp/FolderDetail.elm b/modules/webapp/src/main/elm/Comp/FolderDetail.elm index 721e7e62..326b7ecf 100644 --- a/modules/webapp/src/main/elm/Comp/FolderDetail.elm +++ b/modules/webapp/src/main/elm/Comp/FolderDetail.elm @@ -24,6 +24,7 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick, onInput) import Http +import Messages.FolderDetailComp exposing (Texts) import Styles as S import Util.Http import Util.Maybe @@ -275,8 +276,8 @@ update flags msg model = --- View2 -view2 : Flags -> Model -> Html Msg -view2 flags model = +view2 : Texts -> Flags -> Model -> Html Msg +view2 texts flags model = let isOwner = Maybe.map .user flags.account @@ -285,10 +286,10 @@ view2 flags model = dimmerSettings : Comp.YesNoDimmer.Settings dimmerSettings = - Comp.YesNoDimmer.defaultSettings2 "Really delete this folder?" + Comp.YesNoDimmer.defaultSettings2 texts.reallyDeleteThisFolder in div [ class "flex flex-col md:relative" ] - (viewButtons2 model + (viewButtons2 texts model :: [ Html.map DeleteMsg (Comp.YesNoDimmer.viewN True @@ -299,26 +300,26 @@ view2 flags model = [ class "py-2 text-lg opacity-75" , classList [ ( "hidden", model.folder.id /= "" ) ] ] - [ text "You are automatically set as owner of this new folder." + [ text texts.autoOwnerInfo ] , div [ class "py-2 text-lg opacity-75" , classList [ ( "hidden", model.folder.id == "" ) ] ] - [ text "Modify this folder by changing the name or add/remove members." + [ text texts.modifyInfo ] , div [ class S.message , classList [ ( "hidden", model.folder.id == "" || isOwner ) ] ] - [ text "You are not the owner of this folder and therefore are not allowed to edit it." + [ text texts.notOwnerInfo ] , div [ class "mb-4 flex flex-col" ] [ label [ class S.inputLabel , for "folder-name" ] - [ text "Name" + [ text texts.name , B.inputRequired ] , div [ class "flex flex-row space-x-2" ] @@ -340,7 +341,7 @@ view2 flags model = ] [ i [ class "fa fa-save" ] [] , span [ class "ml-2 hidden sm:inline" ] - [ text "Save" + [ text texts.basics.submit ] ] ] @@ -358,12 +359,12 @@ view2 flags model = |> text ] ] - ++ viewMembers2 model + ++ viewMembers2 texts model ) -viewMembers2 : Model -> List (Html Msg) -viewMembers2 model = +viewMembers2 : Texts -> Model -> List (Html Msg) +viewMembers2 texts model = let folderCfg = { display = .name @@ -379,7 +380,7 @@ viewMembers2 model = [ class S.header3 , class "mt-4" ] - [ text "Members" + [ text texts.members ] , div [ class "flex flex-col space-y-2" ] [ div [ class "flex flex-row space-x-2" ] @@ -393,7 +394,7 @@ viewMembers2 model = ) ] , a - [ title "Add a new member" + [ title texts.addMember , onClick AddMember , class S.primaryButton , href "#" @@ -401,7 +402,7 @@ viewMembers2 model = ] [ i [ class "fa fa-plus" ] [] , span [ class "ml-2 hidden sm:inline" ] - [ text "Add" + [ text texts.add ] ] ] @@ -410,19 +411,19 @@ viewMembers2 model = [ class "flex flex-col space-y-4 md:space-y-2 mt-2" , class "px-2 border-0 border-l dark:border-bluegray-600" ] - (List.map viewMember2 model.members) + (List.map (viewMember2 texts) model.members) ] -viewMember2 : IdName -> Html Msg -viewMember2 member = +viewMember2 : Texts -> IdName -> Html Msg +viewMember2 texts member = div [ class "flex flex-row space-x-2 items-center" ] [ a [ class S.deleteLabel , href "#" - , title "Remove this member" + , title texts.removeMember , onClick (RemoveMember member) ] [ i [ class "fa fa-trash " ] [] @@ -433,23 +434,23 @@ viewMember2 member = ] -viewButtons2 : Model -> Html Msg -viewButtons2 model = +viewButtons2 : Texts -> Model -> Html Msg +viewButtons2 texts model = MB.view { start = [ MB.SecondaryButton { tagger = GoBack - , label = "Back" + , label = texts.basics.cancel , icon = Just "fa fa-arrow-left" - , title = "Back to list" + , title = texts.basics.backToList } ] , end = [ MB.CustomButton { tagger = RequestDelete - , label = "Delete" + , label = texts.basics.delete , icon = Just "fa fa-trash" - , title = "Delete this folder" + , title = texts.deleteThisFolder , inputClass = [ ( S.deleteButton, True ) , ( "hidden", model.folder.id == "" ) diff --git a/modules/webapp/src/main/elm/Comp/FolderManage.elm b/modules/webapp/src/main/elm/Comp/FolderManage.elm index cedb2c17..083b0a72 100644 --- a/modules/webapp/src/main/elm/Comp/FolderManage.elm +++ b/modules/webapp/src/main/elm/Comp/FolderManage.elm @@ -20,6 +20,7 @@ import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) import Http +import Messages.FolderManageComp exposing (Texts) import Styles as S @@ -168,50 +169,54 @@ update flags msg model = --- View2 -view2 : Flags -> Model -> Html Msg -view2 flags model = +view2 : Texts -> Flags -> Model -> Html Msg +view2 texts flags model = case model.detailModel of Just dm -> - viewDetail2 flags dm + viewDetail2 texts flags dm Nothing -> - viewTable2 model + viewTable2 texts model -viewDetail2 : Flags -> Comp.FolderDetail.Model -> Html Msg -viewDetail2 flags model = +viewDetail2 : Texts -> Flags -> Comp.FolderDetail.Model -> Html Msg +viewDetail2 texts flags model = div [] [ if model.folder.id == "" then h3 [ class S.header2 ] - [ text "Create new Folder" + [ text texts.createNewFolder ] else h3 [ class S.header2 ] [ text model.folder.name , div [ class "opacity-50 text-sm" ] - [ text "Id: " + [ text (texts.basics.id ++ ": ") , text model.folder.id ] ] - , Html.map DetailMsg (Comp.FolderDetail.view2 flags model) + , Html.map DetailMsg + (Comp.FolderDetail.view2 texts.folderDetail + flags + model + ) ] -viewTable2 : Model -> Html Msg -viewTable2 model = +viewTable2 : Texts -> Model -> Html Msg +viewTable2 texts model = div [ class "flex flex-col" ] [ MB.view { start = [ MB.TextInput { tagger = SetQuery , value = model.query - , placeholder = "Search…" + , placeholder = texts.basics.searchPlaceholder , icon = Just "fa fa-search" } , MB.Checkbox { tagger = \_ -> ToggleOwningOnly - , label = "Show owning folders only" + , label = texts.showOwningFoldersOnly , value = model.owningOnly , id = "folder-toggle-owner" } @@ -219,14 +224,19 @@ viewTable2 model = , end = [ MB.PrimaryButton { tagger = InitNewFolder - , title = "Create a new folder" + , title = texts.createNewFolder , icon = Just "fa fa-plus" - , label = "New Folder" + , label = texts.newFolder } ] , rootClasses = "mb-4" } - , Html.map TableMsg (Comp.FolderTable.view2 model.tableModel model.folders) + , Html.map TableMsg + (Comp.FolderTable.view2 + texts.folderTable + model.tableModel + model.folders + ) , div [ classList [ ( "ui dimmer", True ) diff --git a/modules/webapp/src/main/elm/Comp/FolderTable.elm b/modules/webapp/src/main/elm/Comp/FolderTable.elm index 7fa2ecf4..6e620303 100644 --- a/modules/webapp/src/main/elm/Comp/FolderTable.elm +++ b/modules/webapp/src/main/elm/Comp/FolderTable.elm @@ -11,6 +11,7 @@ import Api.Model.FolderItem exposing (FolderItem) import Comp.Basic as B import Html exposing (..) import Html.Attributes exposing (..) +import Messages.FolderTableComp exposing (Texts) import Styles as S import Util.Time @@ -44,23 +45,27 @@ update msg model = --- View2 -view2 : Model -> List FolderItem -> Html Msg -view2 _ items = +view2 : Texts -> Model -> List FolderItem -> Html Msg +view2 texts _ items = table [ class S.tableMain ] [ thead [] [ tr [] [ th [ class "w-px whitespace-nowrap pr-1 md:pr-3" ] [] - , th [ class "text-left" ] [ text "Name" ] + , th [ class "text-left" ] + [ text texts.name + ] , th [ class "text-left hidden sm:table-cell" ] [ text "Owner" ] , th [ class "text-center" ] [ span [ class "hidden sm:inline" ] - [ text "#Member" + [ text texts.memberCount ] , span [ class "sm:hidden" ] [ text "#" ] ] - , th [ class "text-center" ] [ text "Created" ] + , th [ class "text-center" ] + [ text texts.basics.created + ] ] ] , tbody [] diff --git a/modules/webapp/src/main/elm/Comp/ItemDetail/EditForm.elm b/modules/webapp/src/main/elm/Comp/ItemDetail/EditForm.elm index f8b519b1..7be5eaf9 100644 --- a/modules/webapp/src/main/elm/Comp/ItemDetail/EditForm.elm +++ b/modules/webapp/src/main/elm/Comp/ItemDetail/EditForm.elm @@ -296,7 +296,7 @@ item visible. This message will disappear then. ] , Html.map OrgDropdownMsg (Comp.Dropdown.view2 - (Comp.Dropdown.orgFormViewSettings dds) + (Comp.Dropdown.orgFormViewSettings "Choose an organization" dds) settings model.corrOrgModel ) diff --git a/modules/webapp/src/main/elm/Comp/OrgForm.elm b/modules/webapp/src/main/elm/Comp/OrgForm.elm index 3fb2f323..ad869984 100644 --- a/modules/webapp/src/main/elm/Comp/OrgForm.elm +++ b/modules/webapp/src/main/elm/Comp/OrgForm.elm @@ -20,6 +20,7 @@ import Data.UiSettings exposing (UiSettings) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onInput) +import Messages.OrgFormComp exposing (Texts) import Styles as S import Util.Maybe @@ -146,14 +147,19 @@ update flags msg model = --- View2 -view2 : Bool -> UiSettings -> Model -> Html Msg -view2 mobile settings model = +view2 : Texts -> Bool -> UiSettings -> Model -> Html Msg +view2 texts mobile settings model = let orgUseCfg = - { display = Data.OrgUse.label + { display = texts.orgUseLabel , icon = \_ -> Nothing , style = DS.mainStyle } + + contactTypeCfg = + { mobile = mobile + , contactTypeLabel = texts.contactTypeLabel + } in div [ class "flex flex-col" ] [ div @@ -162,13 +168,13 @@ view2 mobile settings model = [ for "orgname" , class S.inputLabel ] - [ text "Name" + [ text texts.name , B.inputRequired ] , input [ type_ "text" , onInput SetName - , placeholder "Name" + , placeholder texts.name , value model.name , name "orgname" , class S.textInput @@ -184,12 +190,12 @@ view2 mobile settings model = [ for "org-short-name" , class S.inputLabel ] - [ text "Short Name" + [ text texts.shortName ] , input [ type_ "text" , onInput SetShortName - , placeholder "Abbreviation" + , placeholder texts.shortName , Maybe.withDefault "" model.shortName |> value , name "org-short-name" @@ -201,7 +207,8 @@ view2 mobile settings model = [ label [ class S.inputLabel ] - [ text "Use" ] + [ text texts.use + ] , Html.map UseDropdownMsg (Comp.FixedDropdown.viewStyled2 orgUseCfg False @@ -211,29 +218,29 @@ view2 mobile settings model = , span [ class "opacity-50 text-sm" ] [ case model.use of Data.OrgUse.Correspondent -> - text "Use as correspondent" + text texts.useAsCorrespondent Data.OrgUse.Disabled -> - text "Do not use for suggestions." + text texts.dontUseForSuggestions ] ] , div [ class "mb-4" ] [ h3 [ class S.header3 ] - [ text "Address" + [ text texts.address ] , Html.map AddressMsg - (Comp.AddressForm.view2 settings model.addressModel) + (Comp.AddressForm.view2 texts.addressForm settings model.addressModel) ] , div [ class "mb-4" ] [ h3 [ class S.header3 ] - [ text "Contacts" + [ text texts.contacts ] , Html.map ContactMsg - (Comp.ContactField.view2 mobile settings model.contactModel) + (Comp.ContactField.view2 contactTypeCfg settings model.contactModel) ] , div [ class "mb-4" ] [ h3 [ class S.header3 ] - [ text "Notes" + [ text texts.notes ] , div [ class "" ] [ textarea diff --git a/modules/webapp/src/main/elm/Comp/OrgManage.elm b/modules/webapp/src/main/elm/Comp/OrgManage.elm index 1cdc03fe..71c1ba62 100644 --- a/modules/webapp/src/main/elm/Comp/OrgManage.elm +++ b/modules/webapp/src/main/elm/Comp/OrgManage.elm @@ -21,6 +21,7 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onSubmit) import Http +import Messages.OrgManageComp exposing (Texts) import Styles as S import Util.Http import Util.Maybe @@ -205,50 +206,50 @@ update flags msg model = --- View2 -view2 : UiSettings -> Model -> Html Msg -view2 settings model = +view2 : Texts -> UiSettings -> Model -> Html Msg +view2 texts settings model = if model.viewMode == Table then - viewTable2 model + viewTable2 texts model else - viewForm2 settings model + viewForm2 texts settings model -viewTable2 : Model -> Html Msg -viewTable2 model = +viewTable2 : Texts -> Model -> Html Msg +viewTable2 texts model = div [ class "flex flex-col relative" ] [ MB.view { start = [ MB.TextInput { tagger = SetQuery , value = model.query - , placeholder = "Search…" + , placeholder = texts.basics.searchPlaceholder , icon = Just "fa fa-search" } ] , end = [ MB.PrimaryButton { tagger = InitNewOrg - , title = "Create a new organization" + , title = texts.createNewOrganization , icon = Just "fa fa-plus" - , label = "New Organization" + , label = texts.newOrganization } ] , rootClasses = "mb-4" } - , Html.map TableMsg (Comp.OrgTable.view2 model.tableModel) + , Html.map TableMsg (Comp.OrgTable.view2 texts.orgTable model.tableModel) , B.loadingDimmer model.loading ] -viewForm2 : UiSettings -> Model -> Html Msg -viewForm2 settings model = +viewForm2 : Texts -> UiSettings -> Model -> Html Msg +viewForm2 texts settings model = let newOrg = model.formModel.org.id == "" dimmerSettings2 = - Comp.YesNoDimmer.defaultSettings2 "Really delete this organization?" + Comp.YesNoDimmer.defaultSettings2 texts.reallyDeleteOrg in Html.form [ class "md:relative flex flex-col" @@ -262,14 +263,14 @@ viewForm2 settings model = ) , if newOrg then h3 [ class S.header2 ] - [ text "Create new organization" + [ text texts.createNewOrganization ] else h3 [ class S.header2 ] [ text model.formModel.org.name , div [ class "opacity-50 text-sm" ] - [ text "Id: " + [ text (texts.basics.id ++ ": ") , text model.formModel.org.id ] ] @@ -277,24 +278,24 @@ viewForm2 settings model = { start = [ MB.PrimaryButton { tagger = Submit - , title = "Submit this form" + , title = texts.basics.submitThisForm , icon = Just "fa fa-save" - , label = "Submit" + , label = texts.basics.submit } , MB.SecondaryButton { tagger = SetViewMode Table - , title = "Back to list" + , title = texts.basics.backToList , icon = Just "fa fa-arrow-left" - , label = "Cancel" + , label = texts.basics.cancel } ] , end = if not newOrg then [ MB.DeleteButton { tagger = RequestDelete - , title = "Delete this organization" + , title = texts.deleteThisOrg , icon = Just "fa fa-trash" - , label = "Delete" + , label = texts.basics.delete } ] @@ -311,6 +312,12 @@ viewForm2 settings model = ] [ Maybe.withDefault "" model.formError |> text ] - , Html.map FormMsg (Comp.OrgForm.view2 False settings model.formModel) + , Html.map FormMsg + (Comp.OrgForm.view2 + texts.orgForm + False + settings + model.formModel + ) , B.loadingDimmer model.loading ] diff --git a/modules/webapp/src/main/elm/Comp/OrgTable.elm b/modules/webapp/src/main/elm/Comp/OrgTable.elm index 33d64e38..4234351c 100644 --- a/modules/webapp/src/main/elm/Comp/OrgTable.elm +++ b/modules/webapp/src/main/elm/Comp/OrgTable.elm @@ -12,6 +12,7 @@ import Data.Flags exposing (Flags) import Data.OrgUse import Html exposing (..) import Html.Attributes exposing (..) +import Messages.OrgTableComp exposing (Texts) import Styles as S import Util.Address import Util.Contact @@ -53,8 +54,8 @@ update _ msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = table [ class S.tableMain ] [ thead [] [ tr [] @@ -62,18 +63,24 @@ view2 model = , th [ class "text-left pr-1 md:px-2" ] [ text "Use" ] - , th [ class "text-left" ] [ text "Name" ] - , th [ class "text-left hidden md:table-cell" ] [ text "Address" ] - , th [ class "text-left hidden sm:table-cell" ] [ text "Contact" ] + , th [ class "text-left" ] + [ text texts.name + ] + , th [ class "text-left hidden md:table-cell" ] + [ text texts.address + ] + , th [ class "text-left hidden sm:table-cell" ] + [ text texts.contact + ] ] ] , tbody [] - (List.map (renderOrgLine2 model) model.orgs) + (List.map (renderOrgLine2 texts model) model.orgs) ] -renderOrgLine2 : Model -> Organization -> Html Msg -renderOrgLine2 model org = +renderOrgLine2 : Texts -> Model -> Organization -> Html Msg +renderOrgLine2 texts model org = tr [ classList [ ( "active", model.selected == Just org ) ] , class S.tableRow @@ -83,7 +90,7 @@ renderOrgLine2 model org = [ div [ class "label inline-flex text-sm" ] [ Data.OrgUse.fromString org.use |> Maybe.withDefault Data.OrgUse.Correspondent - |> Data.OrgUse.label + |> texts.orgUseLabel |> text ] ] diff --git a/modules/webapp/src/main/elm/Comp/PersonForm.elm b/modules/webapp/src/main/elm/Comp/PersonForm.elm index a5b96ab4..1503f027 100644 --- a/modules/webapp/src/main/elm/Comp/PersonForm.elm +++ b/modules/webapp/src/main/elm/Comp/PersonForm.elm @@ -22,6 +22,7 @@ import Data.UiSettings exposing (UiSettings) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onInput) +import Messages.PersonFormComp exposing (Texts) import Styles as S @@ -178,14 +179,19 @@ update flags msg model = --- View2 -view2 : Bool -> UiSettings -> Model -> Html Msg -view2 mobile settings model = +view2 : Texts -> Bool -> UiSettings -> Model -> Html Msg +view2 texts mobile settings model = let personUseCfg = - { display = Data.PersonUse.label + { display = texts.personUseLabel , icon = \_ -> Nothing , style = DS.mainStyle } + + contactCfg = + { mobile = mobile + , contactTypeLabel = texts.contactTypeLabel + } in div [ class "flex flex-col" ] [ div @@ -195,13 +201,13 @@ view2 mobile settings model = [ class S.inputLabel , for "personname" ] - [ text "Name" + [ text texts.name , B.inputRequired ] , input [ type_ "text" , onInput SetName - , placeholder "Name" + , placeholder texts.name , value model.name , class S.textInput , classList @@ -215,53 +221,58 @@ view2 mobile settings model = [ label [ class S.inputLabel ] - [ text "Use of this person" ] + [ text texts.useOfPerson + ] , Html.map UseDropdownMsg (Comp.FixedDropdown.viewStyled2 personUseCfg False (Just model.use) model.useModel) , span [ class "opacity-50 text-sm" ] [ case model.use of Data.PersonUse.Concerning -> - text "Use as concerning person only" + text texts.useAsConcerningOnly Data.PersonUse.Correspondent -> - text "Use as correspondent person only" + text texts.useAsCorrespondentOnly Data.PersonUse.Both -> - text "Use as both concerning or correspondent person" + text texts.useAsBoth Data.PersonUse.Disabled -> - text "Do not use for suggestions." + text texts.dontUseForSuggestions ] ] , div [ class "mb-4" ] [ label [ class S.inputLabel ] - [ text "Organization" + [ text texts.organization ] , Html.map OrgDropdownMsg (Comp.Dropdown.view2 - (Comp.Dropdown.orgFormViewSettings DS.mainStyle) + (Comp.Dropdown.orgFormViewSettings texts.chooseAnOrg DS.mainStyle) settings model.orgModel ) ] , div [ class "mb-4" ] [ h3 [ class "ui dividing header" ] - [ text "Address" + [ text texts.address ] - , Html.map AddressMsg (Comp.AddressForm.view2 settings model.addressModel) + , Html.map AddressMsg + (Comp.AddressForm.view2 texts.addressForm + settings + model.addressModel + ) ] , div [ class "mb-4" ] [ h3 [ class S.header3 ] - [ text "Contacts" + [ text texts.contacts ] , Html.map ContactMsg - (Comp.ContactField.view2 mobile settings model.contactModel) + (Comp.ContactField.view2 contactCfg settings model.contactModel) ] , div [ class "mb-4" ] [ h3 [ class S.header3 ] - [ text "Notes" + [ text texts.notes ] , div [ class "" ] [ textarea diff --git a/modules/webapp/src/main/elm/Comp/PersonManage.elm b/modules/webapp/src/main/elm/Comp/PersonManage.elm index 6e52da6a..b63f2f89 100644 --- a/modules/webapp/src/main/elm/Comp/PersonManage.elm +++ b/modules/webapp/src/main/elm/Comp/PersonManage.elm @@ -22,6 +22,7 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onSubmit) import Http +import Messages.PersonManageComp exposing (Texts) import Styles as S import Util.Http import Util.Maybe @@ -242,50 +243,50 @@ isLoading model = --- View2 -view2 : UiSettings -> Model -> Html Msg -view2 settings model = +view2 : Texts -> UiSettings -> Model -> Html Msg +view2 texts settings model = if model.viewMode == Table then - viewTable2 model + viewTable2 texts model else - viewForm2 settings model + viewForm2 texts settings model -viewTable2 : Model -> Html Msg -viewTable2 model = +viewTable2 : Texts -> Model -> Html Msg +viewTable2 texts model = div [ class "flex flex-col" ] [ MB.view { start = [ MB.TextInput { tagger = SetQuery , value = model.query - , placeholder = "Search…" + , placeholder = texts.basics.searchPlaceholder , icon = Just "fa fa-search" } ] , end = [ MB.PrimaryButton { tagger = InitNewPerson - , title = "Create a new person" + , title = texts.createNewPerson , icon = Just "fa fa-plus" - , label = "New Person" + , label = texts.newPerson } ] , rootClasses = "mb-4" } - , Html.map TableMsg (Comp.PersonTable.view2 model.tableModel) + , Html.map TableMsg (Comp.PersonTable.view2 texts.personTable model.tableModel) , B.loadingDimmer (isLoading model) ] -viewForm2 : UiSettings -> Model -> Html Msg -viewForm2 settings model = +viewForm2 : Texts -> UiSettings -> Model -> Html Msg +viewForm2 texts settings model = let newPerson = model.formModel.person.id == "" dimmerSettings2 = - Comp.YesNoDimmer.defaultSettings2 "Really delete this person?" + Comp.YesNoDimmer.defaultSettings2 texts.reallyDeletePerson in Html.form [ class "md:relative flex flex-col" @@ -299,14 +300,14 @@ viewForm2 settings model = ) , if newPerson then h3 [ class S.header2 ] - [ text "Create new person" + [ text texts.createNewPerson ] else h3 [ class S.header2 ] [ text model.formModel.person.name , div [ class "opacity-50 text-sm" ] - [ text "Id: " + [ text (texts.basics.id ++ ": ") , text model.formModel.person.id ] ] @@ -314,24 +315,24 @@ viewForm2 settings model = { start = [ MB.PrimaryButton { tagger = Submit - , title = "Submit this form" + , title = texts.basics.submitThisForm , icon = Just "fa fa-save" - , label = "Submit" + , label = texts.basics.submit } , MB.SecondaryButton { tagger = SetViewMode Table - , title = "Back to list" + , title = texts.basics.backToList , icon = Just "fa fa-arrow-left" - , label = "Cancel" + , label = texts.basics.cancel } ] , end = if not newPerson then [ MB.DeleteButton { tagger = RequestDelete - , title = "Delete this person" + , title = texts.deleteThisPerson , icon = Just "fa fa-trash" - , label = "Delete" + , label = texts.basics.delete } ] @@ -348,6 +349,11 @@ viewForm2 settings model = ] [ Maybe.withDefault "" model.formError |> text ] - , Html.map FormMsg (Comp.PersonForm.view2 False settings model.formModel) + , Html.map FormMsg + (Comp.PersonForm.view2 texts.personForm + False + settings + model.formModel + ) , B.loadingDimmer (isLoading model) ] diff --git a/modules/webapp/src/main/elm/Comp/PersonTable.elm b/modules/webapp/src/main/elm/Comp/PersonTable.elm index 8646cc9f..0cf7002b 100644 --- a/modules/webapp/src/main/elm/Comp/PersonTable.elm +++ b/modules/webapp/src/main/elm/Comp/PersonTable.elm @@ -12,6 +12,7 @@ import Data.Flags exposing (Flags) import Data.PersonUse import Html exposing (..) import Html.Attributes exposing (..) +import Messages.PersonTableComp exposing (Texts) import Styles as S import Util.Contact @@ -52,8 +53,8 @@ update _ msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = table [ class S.tableMain ] [ thead [] [ tr [] @@ -67,12 +68,12 @@ view2 model = ] ] , tbody [] - (List.map (renderPersonLine2 model) model.equips) + (List.map (renderPersonLine2 texts model) model.equips) ] -renderPersonLine2 : Model -> Person -> Html Msg -renderPersonLine2 model person = +renderPersonLine2 : Texts -> Model -> Person -> Html Msg +renderPersonLine2 texts model person = tr [ classList [ ( "active", model.selected == Just person ) ] , class S.tableRow @@ -82,7 +83,7 @@ renderPersonLine2 model person = [ div [ class "label inline-flex text-sm" ] [ Data.PersonUse.fromString person.use |> Maybe.withDefault Data.PersonUse.Both - |> Data.PersonUse.label + |> texts.personUseLabel |> text ] ] diff --git a/modules/webapp/src/main/elm/Comp/SearchMenu.elm b/modules/webapp/src/main/elm/Comp/SearchMenu.elm index 93b82f89..d81b0b1d 100644 --- a/modules/webapp/src/main/elm/Comp/SearchMenu.elm +++ b/modules/webapp/src/main/elm/Comp/SearchMenu.elm @@ -1138,7 +1138,7 @@ searchTabs ddd flags settings model = [ text "Organization" ] , Html.map OrgMsg (Comp.Dropdown.view2 - (Comp.Dropdown.orgFormViewSettings DS.sidebarStyle) + (Comp.Dropdown.orgFormViewSettings "Choose an organization" DS.sidebarStyle) settings model.orgModel ) diff --git a/modules/webapp/src/main/elm/Comp/TagForm.elm b/modules/webapp/src/main/elm/Comp/TagForm.elm index 607f3ab6..d0f921cc 100644 --- a/modules/webapp/src/main/elm/Comp/TagForm.elm +++ b/modules/webapp/src/main/elm/Comp/TagForm.elm @@ -16,6 +16,7 @@ import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onInput) +import Messages.TagFormComp exposing (Texts) import Styles as S import Util.Maybe @@ -118,12 +119,12 @@ update _ msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = let categoryCfg = { makeOption = \s -> Comp.Dropdown.mkOption s - , placeholder = "Select or define category..." + , placeholder = texts.selectDefineCategory , labelColor = \_ -> \_ -> "" , style = DS.mainStyle } @@ -135,13 +136,13 @@ view2 model = [ for "tagname" , class S.inputLabel ] - [ text "Name" + [ text texts.name , B.inputRequired ] , input [ type_ "text" , onInput SetName - , placeholder "Name" + , placeholder texts.name , value model.name , id "tagname" , class S.textInput @@ -157,7 +158,7 @@ view2 model = [ label [ class S.inputLabel ] - [ text "Category" + [ text texts.category ] , Html.map CatMsg (Comp.Dropdown.viewSingle2 diff --git a/modules/webapp/src/main/elm/Comp/TagManage.elm b/modules/webapp/src/main/elm/Comp/TagManage.elm index 33664c83..833fbe06 100644 --- a/modules/webapp/src/main/elm/Comp/TagManage.elm +++ b/modules/webapp/src/main/elm/Comp/TagManage.elm @@ -20,6 +20,7 @@ import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onSubmit) import Http +import Messages.TagManageComp exposing (Texts) import Styles as S import Util.Http import Util.Maybe @@ -213,38 +214,38 @@ update flags msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = if model.viewMode == Table then - viewTable2 model + viewTable2 texts model else - viewForm2 model + viewForm2 texts model -viewTable2 : Model -> Html Msg -viewTable2 model = +viewTable2 : Texts -> Model -> Html Msg +viewTable2 texts model = div [ class "flex flex-col" ] [ MB.view { start = [ MB.TextInput { tagger = SetQuery , value = model.query - , placeholder = "Search…" + , placeholder = texts.basics.searchPlaceholder , icon = Just "fa fa-search" } ] , end = [ MB.PrimaryButton { tagger = InitNewTag - , title = "Create a new tag" + , title = texts.createNewTag , icon = Just "fa fa-plus" - , label = "New Tag" + , label = texts.newTag } ] , rootClasses = "mb-4" } - , Html.map TableMsg (Comp.TagTable.view2 model.tagTableModel) + , Html.map TableMsg (Comp.TagTable.view2 texts.tagTable model.tagTableModel) , div [ classList [ ( "ui dimmer", True ) @@ -256,14 +257,14 @@ viewTable2 model = ] -viewForm2 : Model -> Html Msg -viewForm2 model = +viewForm2 : Texts -> Model -> Html Msg +viewForm2 texts model = let newTag = model.tagFormModel.tag.id == "" dimmerSettings2 = - Comp.YesNoDimmer.defaultSettings2 "Really delete this tag?" + Comp.YesNoDimmer.defaultSettings2 texts.reallyDeleteTag in Html.form [ class "relative flex flex-col" @@ -277,7 +278,7 @@ viewForm2 model = ) , if newTag then h1 [ class S.header2 ] - [ text "Create new tag" + [ text texts.createNewTag ] else @@ -294,22 +295,22 @@ viewForm2 model = { tagger = Submit , title = "Submit this form" , icon = Just "fa fa-save" - , label = "Submit" + , label = texts.basics.submit } , MB.SecondaryButton { tagger = SetViewMode Table - , title = "Back to list" + , title = texts.basics.backToList , icon = Just "fa fa-arrow-left" - , label = "Cancel" + , label = texts.basics.cancel } ] , end = if not newTag then [ MB.DeleteButton { tagger = RequestDelete - , title = "Delete this tag" + , title = texts.deleteThisTag , icon = Just "fa fa-trash" - , label = "Delete" + , label = texts.basics.delete } ] @@ -326,6 +327,6 @@ viewForm2 model = ] [ Maybe.withDefault "" model.formError |> text ] - , Html.map FormMsg (Comp.TagForm.view2 model.tagFormModel) + , Html.map FormMsg (Comp.TagForm.view2 texts.tagForm model.tagFormModel) , B.loadingDimmer model.loading ] diff --git a/modules/webapp/src/main/elm/Comp/TagTable.elm b/modules/webapp/src/main/elm/Comp/TagTable.elm index 77e36451..b8c089a6 100644 --- a/modules/webapp/src/main/elm/Comp/TagTable.elm +++ b/modules/webapp/src/main/elm/Comp/TagTable.elm @@ -11,6 +11,7 @@ import Comp.Basic as B import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) +import Messages.TagTableComp exposing (Texts) import Styles as S @@ -50,14 +51,14 @@ update _ msg model = --- View2 -view2 : Model -> Html Msg -view2 model = +view2 : Texts -> Model -> Html Msg +view2 texts model = table [ class S.tableMain ] [ thead [] [ tr [] [ th [ class "" ] [] - , th [ class "text-left" ] [ text "Name" ] - , th [ class "text-left" ] [ text "Category" ] + , th [ class "text-left" ] [ text texts.name ] + , th [ class "text-left" ] [ text texts.category ] ] ] , tbody [] diff --git a/modules/webapp/src/main/elm/Data/CustomFieldType.elm b/modules/webapp/src/main/elm/Data/CustomFieldType.elm index a9b89719..5bca7135 100644 --- a/modules/webapp/src/main/elm/Data/CustomFieldType.elm +++ b/modules/webapp/src/main/elm/Data/CustomFieldType.elm @@ -3,7 +3,6 @@ module Data.CustomFieldType exposing , all , asString , fromString - , label ) @@ -39,25 +38,6 @@ asString ft = "money" -label : CustomFieldType -> String -label ft = - case ft of - Text -> - "Text" - - Numeric -> - "Numeric" - - Date -> - "Date" - - Boolean -> - "Boolean" - - Money -> - "Money" - - fromString : String -> Maybe CustomFieldType fromString str = case String.toLower str of diff --git a/modules/webapp/src/main/elm/Data/EquipmentUse.elm b/modules/webapp/src/main/elm/Data/EquipmentUse.elm index 7341a2fd..be9f24de 100644 --- a/modules/webapp/src/main/elm/Data/EquipmentUse.elm +++ b/modules/webapp/src/main/elm/Data/EquipmentUse.elm @@ -3,7 +3,6 @@ module Data.EquipmentUse exposing , all , asString , fromString - , label ) import Api.Model.Equipment exposing (Equipment) @@ -37,16 +36,6 @@ asString pu = "disabled" -label : EquipmentUse -> String -label pu = - case pu of - Concerning -> - "Concerning" - - Disabled -> - "Disabled" - - all : List EquipmentUse all = [ Concerning, Disabled ] diff --git a/modules/webapp/src/main/elm/Data/OrgUse.elm b/modules/webapp/src/main/elm/Data/OrgUse.elm index ca0f6fec..5f536bd9 100644 --- a/modules/webapp/src/main/elm/Data/OrgUse.elm +++ b/modules/webapp/src/main/elm/Data/OrgUse.elm @@ -3,7 +3,6 @@ module Data.OrgUse exposing , all , asString , fromString - , label ) @@ -35,16 +34,6 @@ asString pu = "disabled" -label : OrgUse -> String -label pu = - case pu of - Correspondent -> - "Correspondent" - - Disabled -> - "Disabled" - - all : List OrgUse all = [ Correspondent, Disabled ] diff --git a/modules/webapp/src/main/elm/Data/PersonUse.elm b/modules/webapp/src/main/elm/Data/PersonUse.elm index fc5d2060..204d5b92 100644 --- a/modules/webapp/src/main/elm/Data/PersonUse.elm +++ b/modules/webapp/src/main/elm/Data/PersonUse.elm @@ -3,7 +3,6 @@ module Data.PersonUse exposing , all , asString , fromString - , label , spanPersonList ) @@ -52,22 +51,6 @@ asString pu = "disabled" -label : PersonUse -> String -label pu = - case pu of - Correspondent -> - "Correspondent" - - Concerning -> - "Concerning" - - Both -> - "Both" - - Disabled -> - "Disabled" - - all : List PersonUse all = [ Correspondent, Concerning, Both, Disabled ] diff --git a/modules/webapp/src/main/elm/Messages.elm b/modules/webapp/src/main/elm/Messages.elm index 3b334e37..ef8d3956 100644 --- a/modules/webapp/src/main/elm/Messages.elm +++ b/modules/webapp/src/main/elm/Messages.elm @@ -9,6 +9,7 @@ import Messages.App import Messages.CollectiveSettingsPage import Messages.ItemDetailPage import Messages.LoginPage +import Messages.ManageDataPage import Messages.NewInvitePage import Messages.QueuePage import Messages.RegisterPage @@ -33,6 +34,7 @@ type alias Messages = , itemDetail : Messages.ItemDetailPage.Texts , queue : Messages.QueuePage.Texts , userSettings : Messages.UserSettingsPage.Texts + , manageData : Messages.ManageDataPage.Texts } @@ -94,6 +96,7 @@ gb = , itemDetail = Messages.ItemDetailPage.gb , queue = Messages.QueuePage.gb , userSettings = Messages.UserSettingsPage.gb + , manageData = Messages.ManageDataPage.gb } @@ -112,4 +115,5 @@ de = , itemDetail = Messages.ItemDetailPage.de , queue = Messages.QueuePage.de , userSettings = Messages.UserSettingsPage.de + , manageData = Messages.ManageDataPage.de } diff --git a/modules/webapp/src/main/elm/Messages/AddressFormComp.elm b/modules/webapp/src/main/elm/Messages/AddressFormComp.elm new file mode 100644 index 00000000..60bcf5a7 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/AddressFormComp.elm @@ -0,0 +1,20 @@ +module Messages.AddressFormComp exposing (..) + + +type alias Texts = + { selectCountry : String + , street : String + , zipCode : String + , city : String + , country : String + } + + +gb : Texts +gb = + { selectCountry = "Select Country" + , street = "Street" + , zipCode = "Zip Code" + , city = "City" + , country = "Country" + } diff --git a/modules/webapp/src/main/elm/Messages/Basics.elm b/modules/webapp/src/main/elm/Messages/Basics.elm index 089453d3..5237d95f 100644 --- a/modules/webapp/src/main/elm/Messages/Basics.elm +++ b/modules/webapp/src/main/elm/Messages/Basics.elm @@ -14,6 +14,8 @@ type alias Texts = , edit : String , back : String , backToList : String + , searchPlaceholder : String + , id : String } @@ -31,6 +33,8 @@ gb = , edit = "Edit" , back = "Back" , backToList = "Back to list" + , searchPlaceholder = "Search…" + , id = "Id" } diff --git a/modules/webapp/src/main/elm/Messages/ContactTypeData.elm b/modules/webapp/src/main/elm/Messages/ContactTypeData.elm new file mode 100644 index 00000000..8464d08f --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/ContactTypeData.elm @@ -0,0 +1,25 @@ +module Messages.ContactTypeData exposing (..) + +import Data.ContactType exposing (ContactType(..)) + + +gb : ContactType -> String +gb ct = + case ct of + Phone -> + "Phone" + + Mobile -> + "Mobile" + + Fax -> + "Fax" + + Email -> + "Email" + + Docspell -> + "Docspell" + + Website -> + "Website" diff --git a/modules/webapp/src/main/elm/Messages/CustomFieldFormComp.elm b/modules/webapp/src/main/elm/Messages/CustomFieldFormComp.elm new file mode 100644 index 00000000..9d536715 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/CustomFieldFormComp.elm @@ -0,0 +1,46 @@ +module Messages.CustomFieldFormComp exposing (..) + +import Data.CustomFieldType exposing (CustomFieldType) +import Messages.Basics +import Messages.CustomFieldTypeData + + +type alias Texts = + { basics : Messages.Basics.Texts + , reallyDeleteField : String + , fieldTypeLabel : CustomFieldType -> String + , createCustomField : String + , modifyTypeWarning : String + , name : String + , nameInfo : String + , fieldFormat : String + , fieldFormatInfo : String + , label : String + , labelInfo : String + , deleteThisField : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , reallyDeleteField = "Really delete this custom field?" + , fieldTypeLabel = Messages.CustomFieldTypeData.gb + , createCustomField = "Create a new custom field." + , modifyTypeWarning = + "Note that changing the format may " + ++ "result in invisible values in the ui, if they don't comply to the new format!" + , name = "Name" + , nameInfo = + "The name uniquely identifies this field. It must be a valid " + ++ "identifier, not contain spaces or weird characters." + , fieldFormat = "Field Format" + , fieldFormatInfo = + "A field must have a format. Values are validated " + ++ "according to this format." + , label = "Label" + , labelInfo = + "The user defined label for this field. This is used to represent " + ++ "this field in the ui. If not present, the name is used." + , deleteThisField = "Delete this field" + } diff --git a/modules/webapp/src/main/elm/Messages/CustomFieldManageComp.elm b/modules/webapp/src/main/elm/Messages/CustomFieldManageComp.elm new file mode 100644 index 00000000..b6449cc4 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/CustomFieldManageComp.elm @@ -0,0 +1,24 @@ +module Messages.CustomFieldManageComp exposing (..) + +import Messages.Basics +import Messages.CustomFieldFormComp +import Messages.CustomFieldTableComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , fieldForm : Messages.CustomFieldFormComp.Texts + , fieldTable : Messages.CustomFieldTableComp.Texts + , addCustomField : String + , newCustomField : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , fieldForm = Messages.CustomFieldFormComp.gb + , fieldTable = Messages.CustomFieldTableComp.gb + , addCustomField = "Add a new custom field" + , newCustomField = "New custom field" + } diff --git a/modules/webapp/src/main/elm/Messages/CustomFieldTableComp.elm b/modules/webapp/src/main/elm/Messages/CustomFieldTableComp.elm new file mode 100644 index 00000000..a3f66c68 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/CustomFieldTableComp.elm @@ -0,0 +1,20 @@ +module Messages.CustomFieldTableComp exposing (..) + +import Messages.Basics + + +type alias Texts = + { basics : Messages.Basics.Texts + , nameLabel : String + , format : String + , usageCount : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , nameLabel = "Name/Label" + , format = "Format" + , usageCount = "#Usage" + } diff --git a/modules/webapp/src/main/elm/Messages/CustomFieldTypeData.elm b/modules/webapp/src/main/elm/Messages/CustomFieldTypeData.elm new file mode 100644 index 00000000..2069725b --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/CustomFieldTypeData.elm @@ -0,0 +1,22 @@ +module Messages.CustomFieldTypeData exposing (..) + +import Data.CustomFieldType exposing (CustomFieldType(..)) + + +gb : CustomFieldType -> String +gb ft = + case ft of + Text -> + "Text" + + Numeric -> + "Numeric" + + Date -> + "Date" + + Boolean -> + "Boolean" + + Money -> + "Money" diff --git a/modules/webapp/src/main/elm/Messages/EquipmentFormComp.elm b/modules/webapp/src/main/elm/Messages/EquipmentFormComp.elm new file mode 100644 index 00000000..e5df50d0 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/EquipmentFormComp.elm @@ -0,0 +1,15 @@ +module Messages.EquipmentFormComp exposing (..) + +import Data.EquipmentUse exposing (EquipmentUse) +import Messages.EquipmentUseData + + +type alias Texts = + { equipmentUseLabel : EquipmentUse -> String + } + + +gb : Texts +gb = + { equipmentUseLabel = Messages.EquipmentUseData.gb + } diff --git a/modules/webapp/src/main/elm/Messages/EquipmentManageComp.elm b/modules/webapp/src/main/elm/Messages/EquipmentManageComp.elm new file mode 100644 index 00000000..75c344a2 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/EquipmentManageComp.elm @@ -0,0 +1,28 @@ +module Messages.EquipmentManageComp exposing (..) + +import Messages.Basics +import Messages.EquipmentFormComp +import Messages.EquipmentTableComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , equipmentTable : Messages.EquipmentTableComp.Texts + , equipmentForm : Messages.EquipmentFormComp.Texts + , createNewEquipment : String + , newEquipment : String + , reallyDeleteEquipment : String + , deleteThisEquipment : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , equipmentTable = Messages.EquipmentTableComp.gb + , equipmentForm = Messages.EquipmentFormComp.gb + , createNewEquipment = "Create a new equipment" + , newEquipment = "New Equipment" + , reallyDeleteEquipment = "Really delete this equipment?" + , deleteThisEquipment = "Delete this equipment" + } diff --git a/modules/webapp/src/main/elm/Messages/EquipmentTableComp.elm b/modules/webapp/src/main/elm/Messages/EquipmentTableComp.elm new file mode 100644 index 00000000..83dd5288 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/EquipmentTableComp.elm @@ -0,0 +1,19 @@ +module Messages.EquipmentTableComp exposing (..) + +import Data.EquipmentUse exposing (EquipmentUse) +import Messages.EquipmentUseData + + +type alias Texts = + { name : String + , use : String + , equipmentUseLabel : EquipmentUse -> String + } + + +gb : Texts +gb = + { name = "Name" + , use = "Use" + , equipmentUseLabel = Messages.EquipmentUseData.gb + } diff --git a/modules/webapp/src/main/elm/Messages/EquipmentUseData.elm b/modules/webapp/src/main/elm/Messages/EquipmentUseData.elm new file mode 100644 index 00000000..a10c0eee --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/EquipmentUseData.elm @@ -0,0 +1,13 @@ +module Messages.EquipmentUseData exposing (..) + +import Data.EquipmentUse exposing (EquipmentUse(..)) + + +gb : EquipmentUse -> String +gb pu = + case pu of + Concerning -> + "Concerning" + + Disabled -> + "Disabled" diff --git a/modules/webapp/src/main/elm/Messages/FolderDetailComp.elm b/modules/webapp/src/main/elm/Messages/FolderDetailComp.elm new file mode 100644 index 00000000..4714acaf --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/FolderDetailComp.elm @@ -0,0 +1,34 @@ +module Messages.FolderDetailComp exposing (..) + +import Messages.Basics + + +type alias Texts = + { basics : Messages.Basics.Texts + , reallyDeleteThisFolder : String + , autoOwnerInfo : String + , modifyInfo : String + , notOwnerInfo : String + , name : String + , members : String + , addMember : String + , add : String + , removeMember : String + , deleteThisFolder : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , reallyDeleteThisFolder = "Really delete this folder?" + , autoOwnerInfo = "You are automatically set as owner of this new folder." + , modifyInfo = "Modify this folder by changing the name or add/remove members." + , notOwnerInfo = "You are not the owner of this folder and therefore are not allowed to edit it." + , name = "Name" + , members = "Members" + , addMember = "Add a new member" + , add = "Add" + , removeMember = "Remove this member" + , deleteThisFolder = "Delete this folder" + } diff --git a/modules/webapp/src/main/elm/Messages/FolderManageComp.elm b/modules/webapp/src/main/elm/Messages/FolderManageComp.elm new file mode 100644 index 00000000..d3d43785 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/FolderManageComp.elm @@ -0,0 +1,26 @@ +module Messages.FolderManageComp exposing (..) + +import Messages.Basics +import Messages.FolderDetailComp +import Messages.FolderTableComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , folderDetail : Messages.FolderDetailComp.Texts + , folderTable : Messages.FolderTableComp.Texts + , showOwningFoldersOnly : String + , createNewFolder : String + , newFolder : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , folderDetail = Messages.FolderDetailComp.gb + , folderTable = Messages.FolderTableComp.gb + , showOwningFoldersOnly = "Show owning folders only" + , createNewFolder = "Create a new folder" + , newFolder = "New Folder" + } diff --git a/modules/webapp/src/main/elm/Messages/FolderTableComp.elm b/modules/webapp/src/main/elm/Messages/FolderTableComp.elm new file mode 100644 index 00000000..e1cfc6ce --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/FolderTableComp.elm @@ -0,0 +1,18 @@ +module Messages.FolderTableComp exposing (..) + +import Messages.Basics + + +type alias Texts = + { basics : Messages.Basics.Texts + , name : String + , memberCount : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , name = "Name" + , memberCount = "#Member" + } diff --git a/modules/webapp/src/main/elm/Messages/ManageDataPage.elm b/modules/webapp/src/main/elm/Messages/ManageDataPage.elm new file mode 100644 index 00000000..c416169a --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/ManageDataPage.elm @@ -0,0 +1,49 @@ +module Messages.ManageDataPage exposing (..) + +import Messages.Basics +import Messages.CustomFieldManageComp +import Messages.EquipmentManageComp +import Messages.FolderManageComp +import Messages.OrgManageComp +import Messages.PersonManageComp +import Messages.TagManageComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , tagManage : Messages.TagManageComp.Texts + , equipmentManage : Messages.EquipmentManageComp.Texts + , orgManage : Messages.OrgManageComp.Texts + , personManage : Messages.PersonManageComp.Texts + , folderManage : Messages.FolderManageComp.Texts + , customFieldManage : Messages.CustomFieldManageComp.Texts + , manageData : String + , equipment : String + , organization : String + , person : String + , folder : String + , customFields : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , tagManage = Messages.TagManageComp.gb + , equipmentManage = Messages.EquipmentManageComp.gb + , orgManage = Messages.OrgManageComp.gb + , personManage = Messages.PersonManageComp.gb + , folderManage = Messages.FolderManageComp.gb + , customFieldManage = Messages.CustomFieldManageComp.gb + , manageData = "Manage Data" + , equipment = "Equipment" + , organization = "Organization" + , person = "Person" + , folder = "Folder" + , customFields = "Custom Fields" + } + + +de : Texts +de = + gb diff --git a/modules/webapp/src/main/elm/Messages/OrgFormComp.elm b/modules/webapp/src/main/elm/Messages/OrgFormComp.elm new file mode 100644 index 00000000..72e4ec17 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/OrgFormComp.elm @@ -0,0 +1,38 @@ +module Messages.OrgFormComp exposing (..) + +import Data.ContactType exposing (ContactType) +import Data.OrgUse exposing (OrgUse) +import Messages.AddressFormComp +import Messages.ContactTypeData +import Messages.OrgUseData + + +type alias Texts = + { addressForm : Messages.AddressFormComp.Texts + , orgUseLabel : OrgUse -> String + , name : String + , shortName : String + , use : String + , useAsCorrespondent : String + , dontUseForSuggestions : String + , address : String + , contacts : String + , contactTypeLabel : ContactType -> String + , notes : String + } + + +gb : Texts +gb = + { addressForm = Messages.AddressFormComp.gb + , orgUseLabel = Messages.OrgUseData.gb + , name = "Name" + , shortName = "Short Name" + , use = "Use" + , useAsCorrespondent = "Use as correspondent" + , dontUseForSuggestions = "Do not use for suggestions." + , address = "Address" + , contacts = "Contacts" + , contactTypeLabel = Messages.ContactTypeData.gb + , notes = "Notes" + } diff --git a/modules/webapp/src/main/elm/Messages/OrgManageComp.elm b/modules/webapp/src/main/elm/Messages/OrgManageComp.elm new file mode 100644 index 00000000..20c6424e --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/OrgManageComp.elm @@ -0,0 +1,28 @@ +module Messages.OrgManageComp exposing (..) + +import Messages.Basics +import Messages.OrgFormComp +import Messages.OrgTableComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , orgForm : Messages.OrgFormComp.Texts + , orgTable : Messages.OrgTableComp.Texts + , newOrganization : String + , createNewOrganization : String + , reallyDeleteOrg : String + , deleteThisOrg : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , orgForm = Messages.OrgFormComp.gb + , orgTable = Messages.OrgTableComp.gb + , newOrganization = "New Organization" + , createNewOrganization = "Create a new organization" + , reallyDeleteOrg = "Really delete this organization?" + , deleteThisOrg = "Delete this organization" + } diff --git a/modules/webapp/src/main/elm/Messages/OrgTableComp.elm b/modules/webapp/src/main/elm/Messages/OrgTableComp.elm new file mode 100644 index 00000000..5a7fae3d --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/OrgTableComp.elm @@ -0,0 +1,24 @@ +module Messages.OrgTableComp exposing (..) + +import Data.OrgUse exposing (OrgUse) +import Messages.Basics +import Messages.OrgUseData + + +type alias Texts = + { basics : Messages.Basics.Texts + , name : String + , address : String + , contact : String + , orgUseLabel : OrgUse -> String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , name = "Name" + , address = "Address" + , contact = "Contact" + , orgUseLabel = Messages.OrgUseData.gb + } diff --git a/modules/webapp/src/main/elm/Messages/OrgUseData.elm b/modules/webapp/src/main/elm/Messages/OrgUseData.elm new file mode 100644 index 00000000..bf318146 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/OrgUseData.elm @@ -0,0 +1,13 @@ +module Messages.OrgUseData exposing (..) + +import Data.OrgUse exposing (OrgUse(..)) + + +gb : OrgUse -> String +gb pu = + case pu of + Correspondent -> + "Correspondent" + + Disabled -> + "Disabled" diff --git a/modules/webapp/src/main/elm/Messages/PersonFormComp.elm b/modules/webapp/src/main/elm/Messages/PersonFormComp.elm new file mode 100644 index 00000000..54f8b612 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/PersonFormComp.elm @@ -0,0 +1,44 @@ +module Messages.PersonFormComp exposing (..) + +import Data.ContactType exposing (ContactType) +import Data.PersonUse exposing (PersonUse) +import Messages.AddressFormComp +import Messages.ContactTypeData +import Messages.PersonUseData + + +type alias Texts = + { addressForm : Messages.AddressFormComp.Texts + , personUseLabel : PersonUse -> String + , name : String + , useOfPerson : String + , useAsConcerningOnly : String + , useAsCorrespondentOnly : String + , useAsBoth : String + , dontUseForSuggestions : String + , organization : String + , chooseAnOrg : String + , address : String + , contacts : String + , contactTypeLabel : ContactType -> String + , notes : String + } + + +gb : Texts +gb = + { addressForm = Messages.AddressFormComp.gb + , personUseLabel = Messages.PersonUseData.gb + , name = "Name" + , useOfPerson = "Use of this person" + , useAsConcerningOnly = "Use as concerning person only" + , useAsCorrespondentOnly = "Use as correspondent person only" + , useAsBoth = "Use as both concerning or correspondent person" + , dontUseForSuggestions = "Do not use for suggestions." + , organization = "Organization" + , chooseAnOrg = "Choose an organization" + , address = "Address" + , contacts = "Contacts" + , contactTypeLabel = Messages.ContactTypeData.gb + , notes = "Notes" + } diff --git a/modules/webapp/src/main/elm/Messages/PersonManageComp.elm b/modules/webapp/src/main/elm/Messages/PersonManageComp.elm new file mode 100644 index 00000000..d72a23de --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/PersonManageComp.elm @@ -0,0 +1,28 @@ +module Messages.PersonManageComp exposing (..) + +import Messages.Basics +import Messages.PersonFormComp +import Messages.PersonTableComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , personForm : Messages.PersonFormComp.Texts + , personTable : Messages.PersonTableComp.Texts + , newPerson : String + , createNewPerson : String + , reallyDeletePerson : String + , deleteThisPerson : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , personForm = Messages.PersonFormComp.gb + , personTable = Messages.PersonTableComp.gb + , newPerson = "New Person" + , createNewPerson = "Create a new person" + , reallyDeletePerson = "Really delete this person?" + , deleteThisPerson = "Delete this person" + } diff --git a/modules/webapp/src/main/elm/Messages/PersonTableComp.elm b/modules/webapp/src/main/elm/Messages/PersonTableComp.elm new file mode 100644 index 00000000..b87f5920 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/PersonTableComp.elm @@ -0,0 +1,24 @@ +module Messages.PersonTableComp exposing (..) + +import Data.PersonUse exposing (PersonUse) +import Messages.Basics +import Messages.PersonUseData + + +type alias Texts = + { basics : Messages.Basics.Texts + , name : String + , address : String + , contact : String + , personUseLabel : PersonUse -> String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , name = "Name" + , address = "Address" + , contact = "Contact" + , personUseLabel = Messages.PersonUseData.gb + } diff --git a/modules/webapp/src/main/elm/Messages/PersonUseData.elm b/modules/webapp/src/main/elm/Messages/PersonUseData.elm new file mode 100644 index 00000000..4db90e04 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/PersonUseData.elm @@ -0,0 +1,19 @@ +module Messages.PersonUseData exposing (..) + +import Data.PersonUse exposing (PersonUse(..)) + + +gb : PersonUse -> String +gb pu = + case pu of + Correspondent -> + "Correspondent" + + Concerning -> + "Concerning" + + Both -> + "Both" + + Disabled -> + "Disabled" diff --git a/modules/webapp/src/main/elm/Messages/TagFormComp.elm b/modules/webapp/src/main/elm/Messages/TagFormComp.elm new file mode 100644 index 00000000..7e37f3af --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/TagFormComp.elm @@ -0,0 +1,16 @@ +module Messages.TagFormComp exposing (..) + + +type alias Texts = + { selectDefineCategory : String + , name : String + , category : String + } + + +gb : Texts +gb = + { selectDefineCategory = "Select or define category..." + , name = "Name" + , category = "Category" + } diff --git a/modules/webapp/src/main/elm/Messages/TagManageComp.elm b/modules/webapp/src/main/elm/Messages/TagManageComp.elm new file mode 100644 index 00000000..c69b043c --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/TagManageComp.elm @@ -0,0 +1,28 @@ +module Messages.TagManageComp exposing (..) + +import Messages.Basics +import Messages.TagFormComp +import Messages.TagTableComp + + +type alias Texts = + { basics : Messages.Basics.Texts + , tagTable : Messages.TagTableComp.Texts + , tagForm : Messages.TagFormComp.Texts + , createNewTag : String + , newTag : String + , reallyDeleteTag : String + , deleteThisTag : String + } + + +gb : Texts +gb = + { basics = Messages.Basics.gb + , tagTable = Messages.TagTableComp.gb + , tagForm = Messages.TagFormComp.gb + , createNewTag = "Create a new tag" + , newTag = "New Tag" + , reallyDeleteTag = "Really delete this tag?" + , deleteThisTag = "Delete this tag" + } diff --git a/modules/webapp/src/main/elm/Messages/TagTableComp.elm b/modules/webapp/src/main/elm/Messages/TagTableComp.elm new file mode 100644 index 00000000..611f32c1 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/TagTableComp.elm @@ -0,0 +1,14 @@ +module Messages.TagTableComp exposing (..) + + +type alias Texts = + { name : String + , category : String + } + + +gb : Texts +gb = + { name = "Name" + , category = "Category" + } diff --git a/modules/webapp/src/main/elm/Page/ManageData/View2.elm b/modules/webapp/src/main/elm/Page/ManageData/View2.elm index aee4d244..437f49b7 100644 --- a/modules/webapp/src/main/elm/Page/ManageData/View2.elm +++ b/modules/webapp/src/main/elm/Page/ManageData/View2.elm @@ -13,12 +13,13 @@ import Data.UiSettings exposing (UiSettings) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick) +import Messages.ManageDataPage exposing (Texts) import Page.ManageData.Data exposing (..) import Styles as S -viewSidebar : Bool -> Flags -> UiSettings -> Model -> Html Msg -viewSidebar visible _ settings model = +viewSidebar : Texts -> Bool -> Flags -> UiSettings -> Model -> Html Msg +viewSidebar texts visible _ settings model = div [ id "sidebar" , class S.sidebar @@ -27,7 +28,7 @@ viewSidebar visible _ settings model = ] [ div [ class "" ] [ h1 [ class S.header1 ] - [ text "Manage Data" + [ text texts.manageData ] ] , div [ class "flex flex-col my-2" ] @@ -40,7 +41,8 @@ viewSidebar visible _ settings model = [ Icons.tagIcon2 "" , span [ class "ml-3" ] - [ text "Tags" ] + [ text texts.basics.tags + ] ] , a [ href "#" @@ -51,7 +53,8 @@ viewSidebar visible _ settings model = [ Icons.equipmentIcon2 "" , span [ class "ml-3" ] - [ text "Equipment" ] + [ text texts.equipment + ] ] , a [ href "#" @@ -62,7 +65,8 @@ viewSidebar visible _ settings model = [ Icons.organizationIcon2 "" , span [ class "ml-3" ] - [ text "Organization" ] + [ text texts.organization + ] ] , a [ href "#" @@ -73,7 +77,8 @@ viewSidebar visible _ settings model = [ Icons.personIcon2 "" , span [ class "ml-3" ] - [ text "Person" ] + [ text texts.person + ] ] , a [ href "#" @@ -89,7 +94,8 @@ viewSidebar visible _ settings model = [ Icons.folderIcon2 "" , span [ class "ml-3" ] - [ text "Folder" ] + [ text texts.folder + ] ] , a [ href "#" @@ -105,36 +111,37 @@ viewSidebar visible _ settings model = [ Icons.customFieldIcon2 "" , span [ class "ml-3" ] - [ text "Custom Fields" ] + [ text texts.customFields + ] ] ] ] -viewContent : Flags -> UiSettings -> Model -> Html Msg -viewContent flags settings model = +viewContent : Texts -> Flags -> UiSettings -> Model -> Html Msg +viewContent texts flags settings model = div [ id "content" , class S.content ] (case model.currentTab of Just TagTab -> - viewTags model + viewTags texts model Just EquipTab -> - viewEquip model + viewEquip texts model Just OrgTab -> - viewOrg settings model + viewOrg texts settings model Just PersonTab -> - viewPerson settings model + viewPerson texts settings model Just FolderTab -> - viewFolder flags settings model + viewFolder texts flags settings model Just CustomFieldTab -> - viewCustomFields flags settings model + viewCustomFields texts flags settings model Nothing -> [] @@ -150,38 +157,45 @@ menuEntryActive model tab = class "" -viewTags : Model -> List (Html Msg) -viewTags model = +viewTags : Texts -> Model -> List (Html Msg) +viewTags texts model = [ h2 [ class S.header1 , class "inline-flex items-center" ] [ Icons.tagIcon2 "" , div [ class "ml-2" ] - [ text "Tags" + [ text texts.basics.tags ] ] - , Html.map TagManageMsg (Comp.TagManage.view2 model.tagManageModel) + , Html.map TagManageMsg + (Comp.TagManage.view2 + texts.tagManage + model.tagManageModel + ) ] -viewEquip : Model -> List (Html Msg) -viewEquip model = +viewEquip : Texts -> Model -> List (Html Msg) +viewEquip texts model = [ h2 [ class S.header1 , class "inline-flex items-center" ] [ Icons.equipmentIcon2 "" , div [ class "ml-2" ] - [ text "Equipment" + [ text texts.equipment ] ] - , Html.map EquipManageMsg (Comp.EquipmentManage.view2 model.equipManageModel) + , Html.map EquipManageMsg + (Comp.EquipmentManage.view2 texts.equipmentManage + model.equipManageModel + ) ] -viewOrg : UiSettings -> Model -> List (Html Msg) -viewOrg settings model = +viewOrg : Texts -> UiSettings -> Model -> List (Html Msg) +viewOrg texts settings model = [ h2 [ class S.header1 , class "inline-flex items-center" @@ -191,12 +205,16 @@ viewOrg settings model = [ text "Organizations" ] ] - , Html.map OrgManageMsg (Comp.OrgManage.view2 settings model.orgManageModel) + , Html.map OrgManageMsg + (Comp.OrgManage.view2 texts.orgManage + settings + model.orgManageModel + ) ] -viewPerson : UiSettings -> Model -> List (Html Msg) -viewPerson settings model = +viewPerson : Texts -> UiSettings -> Model -> List (Html Msg) +viewPerson texts settings model = [ h2 [ class S.header1 , class "inline-flex items-center" @@ -207,12 +225,15 @@ viewPerson settings model = ] ] , Html.map PersonManageMsg - (Comp.PersonManage.view2 settings model.personManageModel) + (Comp.PersonManage.view2 texts.personManage + settings + model.personManageModel + ) ] -viewFolder : Flags -> UiSettings -> Model -> List (Html Msg) -viewFolder flags _ model = +viewFolder : Texts -> Flags -> UiSettings -> Model -> List (Html Msg) +viewFolder texts flags _ model = [ h2 [ class S.header1 , class "inline-flex items-center" @@ -221,25 +242,28 @@ viewFolder flags _ model = , div [ class "ml-2" ] - [ text "Folder" + [ text texts.folder ] ] , Html.map FolderMsg - (Comp.FolderManage.view2 flags model.folderManageModel) + (Comp.FolderManage.view2 texts.folderManage flags model.folderManageModel) ] -viewCustomFields : Flags -> UiSettings -> Model -> List (Html Msg) -viewCustomFields flags _ model = +viewCustomFields : Texts -> Flags -> UiSettings -> Model -> List (Html Msg) +viewCustomFields texts flags _ model = [ h2 [ class S.header1 , class "inline-flex items-center" ] [ Icons.customFieldIcon2 "" , div [ class "ml-2" ] - [ text "Custom Fields" + [ text texts.customFields ] ] , Html.map CustomFieldMsg - (Comp.CustomFieldManage.view2 flags model.fieldManageModel) + (Comp.CustomFieldManage.view2 texts.customFieldManage + flags + model.fieldManageModel + ) ]