From 7103e3fb976a18fdd35b3e2218442aea0a781749 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Wed, 1 Jul 2020 19:58:12 +0200 Subject: [PATCH 1/2] Simplify the Time module to what is really needed --- .../webapp/src/main/elm/Comp/AccountTable.elm | 4 +- .../webapp/src/main/elm/Comp/AliasTable.elm | 2 +- modules/webapp/src/main/elm/Util/Time.elm | 83 ++----------------- 3 files changed, 11 insertions(+), 78 deletions(-) diff --git a/modules/webapp/src/main/elm/Comp/AccountTable.elm b/modules/webapp/src/main/elm/Comp/AccountTable.elm index a40201fb..8a786c61 100644 --- a/modules/webapp/src/main/elm/Comp/AccountTable.elm +++ b/modules/webapp/src/main/elm/Comp/AccountTable.elm @@ -79,12 +79,12 @@ viewTableLine model acc = ] , td [] [ String.fromInt acc.loginCount |> text ] , td [] - [ Maybe.map Util.Time.formatIsoDateTime acc.lastLogin + [ Maybe.map Util.Time.formatDateTime acc.lastLogin |> Maybe.withDefault "" |> text ] , td [] - [ Util.Time.formatIsoDateTime acc.created + [ Util.Time.formatDateTime acc.created |> text ] ] diff --git a/modules/webapp/src/main/elm/Comp/AliasTable.elm b/modules/webapp/src/main/elm/Comp/AliasTable.elm index a738f375..840b1afc 100644 --- a/modules/webapp/src/main/elm/Comp/AliasTable.elm +++ b/modules/webapp/src/main/elm/Comp/AliasTable.elm @@ -77,7 +77,7 @@ viewTableLine texts model alias_ = |> text ] , td [] - [ Util.Time.formatIsoDateTime alias_.created + [ Util.Time.formatDateTime alias_.created |> text ] ] diff --git a/modules/webapp/src/main/elm/Util/Time.elm b/modules/webapp/src/main/elm/Util/Time.elm index 16945406..546c4519 100644 --- a/modules/webapp/src/main/elm/Util/Time.elm +++ b/modules/webapp/src/main/elm/Util/Time.elm @@ -1,11 +1,14 @@ -module Util.Time exposing (..) +module Util.Time exposing + ( formatDateTime + , timeZone + ) import DateFormat import Time exposing (Posix, Zone, utc) -dateFormatter : Zone -> Posix -> String -dateFormatter = +dateTimeFormatter : Zone -> Posix -> String +dateTimeFormatter = DateFormat.format [ DateFormat.dayOfWeekNameAbbreviated , DateFormat.text ", " @@ -14,43 +17,10 @@ dateFormatter = , DateFormat.dayOfMonthSuffix , DateFormat.text ", " , DateFormat.yearNumber - ] - - -dateFormatterShort : Zone -> Posix -> String -dateFormatterShort = - DateFormat.format - [ DateFormat.yearNumber - , DateFormat.text "/" - , DateFormat.monthFixed - , DateFormat.text "/" - , DateFormat.dayOfMonthFixed - ] - - -timeFormatter : Zone -> Posix -> String -timeFormatter = - DateFormat.format - [ DateFormat.hourMilitaryNumber - , DateFormat.text ":" - , DateFormat.minuteFixed - ] - - -isoDateTimeFormatter : Zone -> Posix -> String -isoDateTimeFormatter = - DateFormat.format - [ DateFormat.yearNumber - , DateFormat.text "-" - , DateFormat.monthFixed - , DateFormat.text "-" - , DateFormat.dayOfMonthFixed - , DateFormat.text "T" + , DateFormat.text ", " , DateFormat.hourMilitaryNumber , DateFormat.text ":" , DateFormat.minuteFixed - , DateFormat.text ":" - , DateFormat.secondFixed ] @@ -59,44 +29,7 @@ timeZone = utc - -{- Format millis into "Wed, 10. Jan 2018, 18:57" -} - - formatDateTime : Int -> String formatDateTime millis = - formatDate millis ++ ", " ++ formatTime millis - - -formatIsoDateTime : Int -> String -formatIsoDateTime millis = - Time.millisToPosix millis - |> isoDateTimeFormatter timeZone - - - -{- Format millis into "18:57". The current time (not the duration of - the millis). --} - - -formatTime : Int -> String -formatTime millis = - Time.millisToPosix millis - |> timeFormatter timeZone - - - -{- Format millis into "Wed, 10. Jan 2018" -} - - -formatDate : Int -> String -formatDate millis = - Time.millisToPosix millis - |> dateFormatter timeZone - - -formatDateShort : Int -> String -formatDateShort millis = Time.millisToPosix millis - |> dateFormatterShort timeZone + |> dateTimeFormatter timeZone From a08575a1cdff4066f7932410d21de5b5b9c4a94a Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Wed, 1 Jul 2020 21:30:36 +0200 Subject: [PATCH 2/2] Remove Util.Time in favor for a language based variant Extract Language into its own module to resolve cyclic dependencies. The `Messages.DateFormat` contains now a definition to return milliseconds into a date-time string per lanugage. Implementation is comprised of two things: - a format pattern that defines the components of the date-time string - a translation for weekdays, month names etc Implementations exists for the three supported languages, except the format pattern for french is incomplete. --- .../webapp/src/main/elm/Comp/AccountTable.elm | 11 +- .../webapp/src/main/elm/Comp/AliasTable.elm | 3 +- .../src/main/elm/Comp/LanguageChoose.elm | 5 +- .../webapp/src/main/elm/Comp/ShareTable.elm | 10 +- modules/webapp/src/main/elm/Language.elm | 18 + modules/webapp/src/main/elm/Messages.elm | 86 ++--- .../src/main/elm/Messages/AccountTable.elm | 12 +- .../src/main/elm/Messages/AliasTable.elm | 9 +- .../src/main/elm/Messages/DateFormat.elm | 333 ++++++++++++++++++ .../src/main/elm/Messages/DetailPage.elm | 9 +- .../src/main/elm/Messages/ShareTable.elm | 10 +- .../webapp/src/main/elm/Page/Detail/View.elm | 9 +- .../webapp/src/main/elm/Page/Login/Data.elm | 1 - .../webapp/src/main/elm/Page/Login/View.elm | 5 +- .../src/main/elm/Page/Register/Data.elm | 1 - .../src/main/elm/Page/Register/View.elm | 3 +- modules/webapp/src/main/elm/Ports.elm | 3 +- modules/webapp/src/main/elm/Util/Time.elm | 35 -- 18 files changed, 447 insertions(+), 116 deletions(-) create mode 100644 modules/webapp/src/main/elm/Language.elm create mode 100644 modules/webapp/src/main/elm/Messages/DateFormat.elm delete mode 100644 modules/webapp/src/main/elm/Util/Time.elm diff --git a/modules/webapp/src/main/elm/Comp/AccountTable.elm b/modules/webapp/src/main/elm/Comp/AccountTable.elm index 8a786c61..8fed95b5 100644 --- a/modules/webapp/src/main/elm/Comp/AccountTable.elm +++ b/modules/webapp/src/main/elm/Comp/AccountTable.elm @@ -12,7 +12,6 @@ import Html.Attributes exposing (..) import Html.Events exposing (onClick) import Messages.AccountTable exposing (Texts) import Util.Html -import Util.Time type alias Model = @@ -53,7 +52,7 @@ view texts accounts model = ] ] , tbody [] - (List.map (viewTableLine model) accounts) + (List.map (viewTableLine texts model) accounts) ] @@ -64,8 +63,8 @@ isSelected model acc = |> Maybe.withDefault False -viewTableLine : Model -> AccountDetail -> Html Msg -viewTableLine model acc = +viewTableLine : Texts -> Model -> AccountDetail -> Html Msg +viewTableLine texts model acc = tr [ onClick (Select acc) , classList [ ( "active", isSelected model acc ) ] @@ -79,12 +78,12 @@ viewTableLine model acc = ] , td [] [ String.fromInt acc.loginCount |> text ] , td [] - [ Maybe.map Util.Time.formatDateTime acc.lastLogin + [ Maybe.map texts.dateTime acc.lastLogin |> Maybe.withDefault "" |> text ] , td [] - [ Util.Time.formatDateTime acc.created + [ texts.dateTime acc.created |> text ] ] diff --git a/modules/webapp/src/main/elm/Comp/AliasTable.elm b/modules/webapp/src/main/elm/Comp/AliasTable.elm index 840b1afc..f9428d28 100644 --- a/modules/webapp/src/main/elm/Comp/AliasTable.elm +++ b/modules/webapp/src/main/elm/Comp/AliasTable.elm @@ -13,7 +13,6 @@ import Html.Attributes exposing (..) import Html.Events exposing (onClick) import Messages.AliasTable exposing (Texts) import Util.Html -import Util.Time type alias Model = @@ -77,7 +76,7 @@ viewTableLine texts model alias_ = |> text ] , td [] - [ Util.Time.formatDateTime alias_.created + [ texts.dateTime alias_.created |> text ] ] diff --git a/modules/webapp/src/main/elm/Comp/LanguageChoose.elm b/modules/webapp/src/main/elm/Comp/LanguageChoose.elm index 34b873d5..4c855674 100644 --- a/modules/webapp/src/main/elm/Comp/LanguageChoose.elm +++ b/modules/webapp/src/main/elm/Comp/LanguageChoose.elm @@ -10,7 +10,8 @@ module Comp.LanguageChoose exposing import Comp.FixedDropdown exposing (Item) import Html exposing (..) import Html.Attributes exposing (..) -import Messages exposing (Language) +import Language exposing (Language) +import Messages import Messages.FixedDropdown exposing (Texts) @@ -24,7 +25,7 @@ type alias Msg = init : Model init = - List.map mkLanguageItem Messages.allLanguages + List.map mkLanguageItem Language.allLanguages |> Comp.FixedDropdown.init diff --git a/modules/webapp/src/main/elm/Comp/ShareTable.elm b/modules/webapp/src/main/elm/Comp/ShareTable.elm index d39d08a4..fde478eb 100644 --- a/modules/webapp/src/main/elm/Comp/ShareTable.elm +++ b/modules/webapp/src/main/elm/Comp/ShareTable.elm @@ -14,7 +14,6 @@ import Messages.ShareTable exposing (Texts) import Util.Html import Util.Size import Util.String -import Util.Time type alias Model = @@ -54,7 +53,7 @@ view texts accounts model = ] ] , tbody [] - (List.map (viewTableLine model) accounts) + (List.map (viewTableLine texts model) accounts) ] @@ -65,8 +64,8 @@ isSelected model item = |> Maybe.withDefault False -viewTableLine : Model -> ShareListItem -> Html Msg -viewTableLine model item = +viewTableLine : Texts -> Model -> ShareListItem -> Html Msg +viewTableLine texts model item = tr [ onClick (Select item) , classList [ ( "active", isSelected model item ) ] @@ -86,8 +85,7 @@ viewTableLine model item = |> text ] , td [ class "collapsing" ] - [ Util.Time.formatDateTime item.created - |> text + [ texts.dateTime item.created |> text ] ] diff --git a/modules/webapp/src/main/elm/Language.elm b/modules/webapp/src/main/elm/Language.elm new file mode 100644 index 00000000..1c458e19 --- /dev/null +++ b/modules/webapp/src/main/elm/Language.elm @@ -0,0 +1,18 @@ +module Language exposing + ( Language(..) + , allLanguages + ) + + +type Language + = English + | German + | French + + +allLanguages : List Language +allLanguages = + [ English + , German + , French + ] diff --git a/modules/webapp/src/main/elm/Messages.elm b/modules/webapp/src/main/elm/Messages.elm index 4790c4de..bc760046 100644 --- a/modules/webapp/src/main/elm/Messages.elm +++ b/modules/webapp/src/main/elm/Messages.elm @@ -1,13 +1,12 @@ module Messages exposing - ( Language(..) - , Messages - , allLanguages + ( Messages , fromFlags , get , toIso2 ) import Data.Flags exposing (Flags) +import Language exposing (Language(..), allLanguages) import Messages.AccountPage import Messages.AliasPage import Messages.App @@ -21,53 +20,6 @@ import Messages.SharePage import Messages.UploadPage -type Language - = English - | German - | French - - -allLanguages : List Language -allLanguages = - [ English - , German - , French - ] - - -{-| Get a ISO-3166-1 code of the given lanugage. --} -toIso2 : Language -> String -toIso2 lang = - get lang |> .iso2 - - -{-| Return the Language from given iso2 code. If the iso2 code is not -known, return Nothing. --} -readIso2 : String -> Maybe Language -readIso2 iso = - let - isIso lang = - iso == toIso2 lang - in - List.filter isIso allLanguages - |> List.head - - -{-| Return the Language from the given iso2 code. If the iso2 code is -not known, return English as a default. --} -fromIso2 : String -> Language -fromIso2 iso = - readIso2 iso - |> Maybe.withDefault English - - - --- Messages - - {-| The messages record contains all strings used in the application. -} type alias Messages = @@ -102,6 +54,35 @@ get lang = fr +{-| Get a ISO-3166-1 code of the given lanugage. +-} +toIso2 : Language -> String +toIso2 lang = + get lang |> .iso2 + + +{-| Return the Language from given iso2 code. If the iso2 code is not +known, return Nothing. +-} +readIso2 : String -> Maybe Language +readIso2 iso = + let + isIso lang = + iso == toIso2 lang + in + List.filter isIso allLanguages + |> List.head + + +{-| Return the Language from the given iso2 code. If the iso2 code is +not known, return English as a default. +-} +fromIso2 : String -> Language +fromIso2 iso = + readIso2 iso + |> Maybe.withDefault English + + fromFlags : Flags -> Messages fromFlags flags = let @@ -117,6 +98,10 @@ fromFlags flags = |> get + +--- Messages Definitions + + gb : Messages gb = { lang = English @@ -156,6 +141,7 @@ de = , settings = Messages.SettingsPage.de } + fr : Messages fr = { lang = French diff --git a/modules/webapp/src/main/elm/Messages/AccountTable.elm b/modules/webapp/src/main/elm/Messages/AccountTable.elm index c13a7a0f..889289bb 100644 --- a/modules/webapp/src/main/elm/Messages/AccountTable.elm +++ b/modules/webapp/src/main/elm/Messages/AccountTable.elm @@ -1,10 +1,15 @@ module Messages.AccountTable exposing ( Texts , de - , gb , fr + , gb ) +import Language +import Messages.DateFormat exposing (formatDateTime) + + + -- AccountTable component texts @@ -17,6 +22,7 @@ type alias Texts = , nrLogins : String , lastLogin : String , created : String + , dateTime : Int -> String } @@ -30,6 +36,7 @@ gb = , nrLogins = "#Logins" , lastLogin = "Last Login" , created = "Created" + , dateTime = formatDateTime Language.English } @@ -43,8 +50,10 @@ de = , nrLogins = "#Anmeldungen" , lastLogin = "Letzte Anmeldung" , created = "Erstellt" + , dateTime = formatDateTime Language.German } + fr : Texts fr = { login = "Identifiant" @@ -55,4 +64,5 @@ fr = , nrLogins = "#Connexions" , lastLogin = "Dernière connexion" , created = "Créé" + , dateTime = formatDateTime Language.French } diff --git a/modules/webapp/src/main/elm/Messages/AliasTable.elm b/modules/webapp/src/main/elm/Messages/AliasTable.elm index 2f938b98..83afb2bb 100644 --- a/modules/webapp/src/main/elm/Messages/AliasTable.elm +++ b/modules/webapp/src/main/elm/Messages/AliasTable.elm @@ -1,10 +1,12 @@ module Messages.AliasTable exposing ( Texts , de - , gb , fr + , gb ) +import Language +import Messages.DateFormat import Messages.ValidityField @@ -14,6 +16,7 @@ type alias Texts = , validity : String , created : String , validityField : Messages.ValidityField.Texts + , dateTime : Int -> String } @@ -24,6 +27,7 @@ gb = , validity = "Validity" , created = "Created" , validityField = Messages.ValidityField.gb + , dateTime = Messages.DateFormat.formatDateTime Language.English } @@ -34,8 +38,10 @@ de = , validity = "Gültigkeit" , created = "Erstellt" , validityField = Messages.ValidityField.de + , dateTime = Messages.DateFormat.formatDateTime Language.German } + fr : Texts fr = { name = "Nom" @@ -43,4 +49,5 @@ fr = , validity = "Validité" , created = "Créé" , validityField = Messages.ValidityField.fr + , dateTime = Messages.DateFormat.formatDateTime Language.French } diff --git a/modules/webapp/src/main/elm/Messages/DateFormat.elm b/modules/webapp/src/main/elm/Messages/DateFormat.elm new file mode 100644 index 00000000..4d89cb81 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/DateFormat.elm @@ -0,0 +1,333 @@ +module Messages.DateFormat exposing (formatDateTime) + +import DateFormat exposing (Token) +import DateFormat.Language as DL +import Language exposing (Language(..)) +import Time + exposing + ( Month(..) + , Weekday(..) + ) + + +type alias DateTimeMsg = + { format : List Token + , lang : DL.Language + } + + +get : Language -> DateTimeMsg +get lang = + case lang of + English -> + gb + + German -> + de + + French -> + fr + + +formatDateTime : Language -> Int -> String +formatDateTime lang millis = + let + msg = + get lang + + fmt = + DateFormat.formatWithLanguage msg.lang msg.format + in + fmt Time.utc (Time.millisToPosix millis) + + + +--- Language Definitions + + +gb : DateTimeMsg +gb = + { format = + [ DateFormat.dayOfWeekNameAbbreviated + , DateFormat.text ", " + , DateFormat.monthNameFull + , DateFormat.text " " + , DateFormat.dayOfMonthSuffix + , DateFormat.text ", " + , DateFormat.yearNumber + , DateFormat.text ", " + , DateFormat.hourMilitaryNumber + , DateFormat.text ":" + , DateFormat.minuteFixed + ] + , lang = DL.english + } + + +de : DateTimeMsg +de = + { format = + [ DateFormat.dayOfWeekNameAbbreviated + , DateFormat.text ", " + , DateFormat.dayOfMonthSuffix + , DateFormat.text " " + , DateFormat.monthNameFull + , DateFormat.text " " + , DateFormat.yearNumber + , DateFormat.text ", " + , DateFormat.hourMilitaryNumber + , DateFormat.text ":" + , DateFormat.minuteFixed + ] + , lang = german + } + + +fr : DateTimeMsg +fr = + { format = + [ DateFormat.dayOfWeekNameAbbreviated + , DateFormat.text ", " + , DateFormat.monthNameFull + , DateFormat.text " " + , DateFormat.dayOfMonthSuffix + , DateFormat.text ", " + , DateFormat.yearNumber + , DateFormat.text ", " + , DateFormat.hourMilitaryNumber + , DateFormat.text ":" + , DateFormat.minuteFixed + ] + , lang = french + } + + + +--- Languages for the DateFormat module +-- French + + +{-| The French language! +-} +french : DL.Language +french = + DL.Language + toFrenchMonthName + toFrenchMonthAbbreviation + toFrenchWeekdayName + (toFrenchWeekdayName >> String.left 3) + toEnglishAmPm + toFrenchOrdinalSuffix + + +toFrenchMonthName : Month -> String +toFrenchMonthName month = + case month of + Jan -> + "janvier" + + Feb -> + "février" + + Mar -> + "mars" + + Apr -> + "avril" + + May -> + "mai" + + Jun -> + "juin" + + Jul -> + "juillet" + + Aug -> + "août" + + Sep -> + "septembre" + + Oct -> + "octobre" + + Nov -> + "novembre" + + Dec -> + "décembre" + + +toFrenchMonthAbbreviation : Month -> String +toFrenchMonthAbbreviation month = + case month of + Jan -> + "janv" + + Feb -> + "févr" + + Mar -> + "mars" + + Apr -> + "avr" + + May -> + "mai" + + Jun -> + "juin" + + Jul -> + "juil" + + Aug -> + "août" + + Sep -> + "sept" + + Oct -> + "oct" + + Nov -> + "nov" + + Dec -> + "déc" + + +toFrenchWeekdayName : Weekday -> String +toFrenchWeekdayName weekday = + case weekday of + Mon -> + "lundi" + + Tue -> + "mardi" + + Wed -> + "mercredi" + + Thu -> + "jeudi" + + Fri -> + "vendredi" + + Sat -> + "samedi" + + Sun -> + "dimanche" + + +toFrenchOrdinalSuffix : Int -> String +toFrenchOrdinalSuffix n = + if n == 1 then + "er" + + else + "e" + + + +-- German + + +{-| The German language! +-} +german : DL.Language +german = + let + withDot str = + str ++ "." + in + DL.Language + toGermanMonthName + (toGermanMonthName >> String.left 3 >> withDot) + toGermanWeekdayName + (toGermanWeekdayName >> String.left 2 >> withDot) + toEnglishAmPm + (\_ -> ".") + + +toGermanMonthName : Month -> String +toGermanMonthName month = + case month of + Jan -> + "Januar" + + Feb -> + "Februar" + + Mar -> + "März" + + Apr -> + "April" + + May -> + "Mai" + + Jun -> + "Juni" + + Jul -> + "Juli" + + Aug -> + "August" + + Sep -> + "September" + + Oct -> + "Oktober" + + Nov -> + "November" + + Dec -> + "Dezember" + + +toGermanWeekdayName : Weekday -> String +toGermanWeekdayName weekday = + case weekday of + Mon -> + "Montag" + + Tue -> + "Dienstag" + + Wed -> + "Mittwoch" + + Thu -> + "Donnerstag" + + Fri -> + "Freitag" + + Sat -> + "Samstag" + + Sun -> + "Sonntag" + + + +--- Copy from DateFormat.Language + + +toEnglishAmPm : Int -> String +toEnglishAmPm hour = + if hour > 11 then + "pm" + + else + "am" diff --git a/modules/webapp/src/main/elm/Messages/DetailPage.elm b/modules/webapp/src/main/elm/Messages/DetailPage.elm index e401f90a..4f67cdfd 100644 --- a/modules/webapp/src/main/elm/Messages/DetailPage.elm +++ b/modules/webapp/src/main/elm/Messages/DetailPage.elm @@ -1,10 +1,12 @@ module Messages.DetailPage exposing ( Texts , de - , gb , fr + , gb ) +import Language +import Messages.DateFormat import Messages.Dropzone2 import Messages.MailSend import Messages.MarkdownInput @@ -62,6 +64,7 @@ type alias Texts = , passwordRequired : String , passwordInvalid : String , or : String + , dateTime : Int -> String } @@ -124,6 +127,7 @@ gb = , passwordRequired = "Password required" , passwordInvalid = "Password invalid" , or = "Or" + , dateTime = Messages.DateFormat.formatDateTime Language.English } @@ -187,8 +191,10 @@ de = , passwordRequired = "Passwort erforderlich" , passwordInvalid = "Passwort ungültig" , or = "Oder" + , dateTime = Messages.DateFormat.formatDateTime Language.German } + fr : Texts fr = { mailSend = Messages.MailSend.fr @@ -248,4 +254,5 @@ fr = , passwordRequired = "Mot de passe requis" , passwordInvalid = "Mot de passe invalide" , or = "Ou" + , dateTime = Messages.DateFormat.formatDateTime Language.French } diff --git a/modules/webapp/src/main/elm/Messages/ShareTable.elm b/modules/webapp/src/main/elm/Messages/ShareTable.elm index 80b93514..2e98e3ac 100644 --- a/modules/webapp/src/main/elm/Messages/ShareTable.elm +++ b/modules/webapp/src/main/elm/Messages/ShareTable.elm @@ -1,10 +1,13 @@ module Messages.ShareTable exposing ( Texts , de - , gb , fr + , gb ) +import Language +import Messages.DateFormat + type alias Texts = { nameId : String @@ -14,6 +17,7 @@ type alias Texts = , nFiles : String , size : String , created : String + , dateTime : Int -> String } @@ -26,6 +30,7 @@ gb = , nFiles = "#Files" , size = "Size" , created = "Created" + , dateTime = Messages.DateFormat.formatDateTime Language.English } @@ -38,8 +43,10 @@ de = , nFiles = "#Dateien" , size = "Größe" , created = "Erstellt" + , dateTime = Messages.DateFormat.formatDateTime Language.German } + fr : Texts fr = { nameId = "Nom/Id" @@ -49,4 +56,5 @@ fr = , nFiles = "#Fichiers" , size = "Taille" , created = "Créé" + , dateTime = Messages.DateFormat.formatDateTime Language.French } diff --git a/modules/webapp/src/main/elm/Page/Detail/View.elm b/modules/webapp/src/main/elm/Page/Detail/View.elm index 94b58e45..97d4cb44 100644 --- a/modules/webapp/src/main/elm/Page/Detail/View.elm +++ b/modules/webapp/src/main/elm/Page/Detail/View.elm @@ -34,7 +34,6 @@ import QRCode import Util.Html import Util.Share import Util.Size -import Util.Time view : Texts -> Flags -> Model -> Html Msg @@ -346,7 +345,7 @@ shareProps texts model = { label = texts.created , content = propertyDisplay "calendar icon" - (Util.Time.formatDateTime share.created) + (texts.dateTime share.created) , editAction = Nothing } ] @@ -366,7 +365,7 @@ shareProps texts model = , content = propertyDisplay (Tuple.first <| publishIconLabel texts share) (Maybe.map .publishDate share.publishInfo - |> Maybe.map Util.Time.formatDateTime + |> Maybe.map texts.dateTime |> Maybe.withDefault "-" ) , editAction = Nothing @@ -377,7 +376,7 @@ shareProps texts model = , content = propertyDisplay "hourglass icon" (Maybe.map .publishUntil share.publishInfo - |> Maybe.map Util.Time.formatDateTime + |> Maybe.map texts.dateTime |> Maybe.withDefault "-" ) , editAction = Nothing @@ -388,7 +387,7 @@ shareProps texts model = , content = propertyDisplay "calendar outline icon" (Maybe.andThen .lastAccess share.publishInfo - |> Maybe.map Util.Time.formatDateTime + |> Maybe.map texts.dateTime |> Maybe.withDefault "-" ) , editAction = Nothing diff --git a/modules/webapp/src/main/elm/Page/Login/Data.elm b/modules/webapp/src/main/elm/Page/Login/Data.elm index 19131f73..a66a5738 100644 --- a/modules/webapp/src/main/elm/Page/Login/Data.elm +++ b/modules/webapp/src/main/elm/Page/Login/Data.elm @@ -3,7 +3,6 @@ module Page.Login.Data exposing (..) import Api.Model.AuthResult exposing (AuthResult) import Comp.LanguageChoose import Http -import Messages exposing (Language) type alias Model = diff --git a/modules/webapp/src/main/elm/Page/Login/View.elm b/modules/webapp/src/main/elm/Page/Login/View.elm index da0cbd59..fe1709e6 100644 --- a/modules/webapp/src/main/elm/Page/Login/View.elm +++ b/modules/webapp/src/main/elm/Page/Login/View.elm @@ -6,9 +6,10 @@ import Comp.LanguageChoose import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onClick, onInput, onSubmit) +import Html.Events exposing (onInput, onSubmit) +import Language exposing (Language) import Markdown -import Messages exposing (Language) +import Messages import Messages.LoginPage exposing (Texts) import Page exposing (Page(..)) import Page.Login.Data exposing (..) diff --git a/modules/webapp/src/main/elm/Page/Register/Data.elm b/modules/webapp/src/main/elm/Page/Register/Data.elm index feef10a9..393a909a 100644 --- a/modules/webapp/src/main/elm/Page/Register/Data.elm +++ b/modules/webapp/src/main/elm/Page/Register/Data.elm @@ -3,7 +3,6 @@ module Page.Register.Data exposing (..) import Api.Model.BasicResult exposing (BasicResult) import Comp.LanguageChoose import Http -import Messages exposing (Language) type alias Model = diff --git a/modules/webapp/src/main/elm/Page/Register/View.elm b/modules/webapp/src/main/elm/Page/Register/View.elm index fdca6baa..b0fa4753 100644 --- a/modules/webapp/src/main/elm/Page/Register/View.elm +++ b/modules/webapp/src/main/elm/Page/Register/View.elm @@ -5,7 +5,8 @@ import Data.Flags exposing (Flags) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick, onInput, onSubmit) -import Messages exposing (Language) +import Language exposing (Language) +import Messages import Messages.RegisterPage exposing (Texts) import Page exposing (Page(..)) import Page.Register.Data exposing (..) diff --git a/modules/webapp/src/main/elm/Ports.elm b/modules/webapp/src/main/elm/Ports.elm index 98323bbe..e43ff80d 100644 --- a/modules/webapp/src/main/elm/Ports.elm +++ b/modules/webapp/src/main/elm/Ports.elm @@ -2,7 +2,8 @@ port module Ports exposing (..) import Api.Model.AuthResult exposing (AuthResult) import Json.Decode as D -import Messages exposing (Language) +import Language exposing (Language) +import Messages port setAccount : AuthResult -> Cmd msg diff --git a/modules/webapp/src/main/elm/Util/Time.elm b/modules/webapp/src/main/elm/Util/Time.elm deleted file mode 100644 index 546c4519..00000000 --- a/modules/webapp/src/main/elm/Util/Time.elm +++ /dev/null @@ -1,35 +0,0 @@ -module Util.Time exposing - ( formatDateTime - , timeZone - ) - -import DateFormat -import Time exposing (Posix, Zone, utc) - - -dateTimeFormatter : Zone -> Posix -> String -dateTimeFormatter = - DateFormat.format - [ DateFormat.dayOfWeekNameAbbreviated - , DateFormat.text ", " - , DateFormat.monthNameFull - , DateFormat.text " " - , DateFormat.dayOfMonthSuffix - , DateFormat.text ", " - , DateFormat.yearNumber - , DateFormat.text ", " - , DateFormat.hourMilitaryNumber - , DateFormat.text ":" - , DateFormat.minuteFixed - ] - - -timeZone : Zone -timeZone = - utc - - -formatDateTime : Int -> String -formatDateTime millis = - Time.millisToPosix millis - |> dateTimeFormatter timeZone