mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-04-05 19:09:32 +00:00
commit
0169e72f66
@ -33,7 +33,7 @@ object EmptyTrashArgs {
|
||||
|
||||
val taskName = Ident.unsafe("empty-trash")
|
||||
|
||||
val defaultSchedule = CalEvent.unsafe("*-*-1/7 03:00:00")
|
||||
val defaultSchedule = CalEvent.unsafe("*-*-1/7 03:00:00 UTC")
|
||||
|
||||
def periodicTaskId(coll: Ident): Ident =
|
||||
Ident.unsafe(s"docspell") / taskName / coll
|
||||
|
@ -6,10 +6,8 @@
|
||||
|
||||
package docspell.common
|
||||
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZonedDateTime
|
||||
import java.time.temporal.ChronoUnit
|
||||
import java.time.{Instant, LocalDate, ZoneId}
|
||||
import java.time.{Duration => _, _}
|
||||
|
||||
import cats.effect.Sync
|
||||
|
||||
@ -57,7 +55,7 @@ case class Timestamp(value: Instant) {
|
||||
}
|
||||
|
||||
object Timestamp {
|
||||
val UTC = ZoneId.of("UTC")
|
||||
val UTC: ZoneId = ZoneOffset.UTC
|
||||
|
||||
val Epoch = Timestamp(Instant.EPOCH)
|
||||
|
||||
|
@ -144,7 +144,7 @@ docspell.joex {
|
||||
|
||||
# When the house keeping tasks execute. Default is to run every
|
||||
# week.
|
||||
schedule = "Sun *-*-* 00:00:00"
|
||||
schedule = "Sun *-*-* 00:00:00 UTC"
|
||||
|
||||
# This task removes invitation keys that have been created but not
|
||||
# used. The timespan here must be greater than the `invite-time'
|
||||
@ -209,8 +209,9 @@ docspell.joex {
|
||||
test-run = false
|
||||
|
||||
# When the update check should execute. Default is to run every
|
||||
# week.
|
||||
schedule = "Sun *-*-* 00:00:00"
|
||||
# week. You can specify a time zone identifier, like
|
||||
# 'Europe/Berlin' at the end.
|
||||
schedule = "Sun *-*-* 00:00:00 UTC"
|
||||
|
||||
# An account id in form of `collective/user` (or just `user` if
|
||||
# collective and user name are the same). This user account must
|
||||
|
@ -22,6 +22,7 @@
|
||||
"elm/url": "1.0.0",
|
||||
"elm-explorations/markdown": "1.0.0",
|
||||
"justinmimbs/date": "3.1.2",
|
||||
"justinmimbs/timezone-data": "5.1.2",
|
||||
"norpan/elm-html5-drag-drop": "3.1.4",
|
||||
"pablohirafuji/elm-qrcode": "4.0.1",
|
||||
"ryannhg/date-format": "2.3.0",
|
||||
|
@ -68,7 +68,7 @@ updateWithSub : Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
updateWithSub msg model =
|
||||
let
|
||||
texts =
|
||||
Messages.get <| App.Data.getUiLanguage model
|
||||
Messages.get (App.Data.getUiLanguage model) model.uiSettings.timeZone
|
||||
in
|
||||
case msg of
|
||||
ToggleSidebar ->
|
||||
@ -566,7 +566,7 @@ updateCollSettings texts lmsg model =
|
||||
let
|
||||
( lm, lc, ls ) =
|
||||
Page.CollectiveSettings.Update.update texts.collectiveSettings
|
||||
model.flags
|
||||
(modelEnv model)
|
||||
lmsg
|
||||
model.collSettingsModel
|
||||
in
|
||||
@ -648,7 +648,7 @@ initPage model_ page =
|
||||
{ model_ | page = page }
|
||||
|
||||
texts =
|
||||
Messages.get <| App.Data.getUiLanguage model
|
||||
Messages.get (App.Data.getUiLanguage model) model.uiSettings.timeZone
|
||||
|
||||
noop =
|
||||
( model, Cmd.none, Sub.none )
|
||||
|
@ -59,7 +59,7 @@ topNavUser : AuthResult -> Model -> Html Msg
|
||||
topNavUser auth model =
|
||||
let
|
||||
texts =
|
||||
Messages.get <| App.Data.getUiLanguage model
|
||||
Messages.get (App.Data.getUiLanguage model) model.uiSettings.timeZone
|
||||
in
|
||||
nav
|
||||
[ id "top-nav"
|
||||
@ -161,7 +161,7 @@ mainContent : Model -> Html Msg
|
||||
mainContent model =
|
||||
let
|
||||
texts =
|
||||
Messages.get <| App.Data.getUiLanguage model
|
||||
Messages.get (App.Data.getUiLanguage model) model.uiSettings.timeZone
|
||||
in
|
||||
div
|
||||
[ id "main"
|
||||
@ -227,12 +227,12 @@ langMenu : Model -> Html Msg
|
||||
langMenu model =
|
||||
let
|
||||
texts =
|
||||
Messages.get <| App.Data.getUiLanguage model
|
||||
Messages.get (App.Data.getUiLanguage model) model.uiSettings.timeZone
|
||||
|
||||
langItem lang =
|
||||
let
|
||||
langMsg =
|
||||
Messages.get lang
|
||||
Messages.get lang model.uiSettings.timeZone
|
||||
in
|
||||
a
|
||||
[ classList
|
||||
|
@ -18,6 +18,7 @@ import Api.Model.CalEventCheck exposing (CalEventCheck)
|
||||
import Api.Model.CalEventCheckResult exposing (CalEventCheckResult)
|
||||
import Data.CalEvent exposing (CalEvent)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.Validated exposing (Validated(..))
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -109,8 +110,8 @@ isCheckError model =
|
||||
False
|
||||
|
||||
|
||||
update : Flags -> Maybe CalEvent -> Msg -> Model -> ( Model, Cmd Msg, Maybe CalEvent )
|
||||
update flags mev msg model =
|
||||
update : Flags -> TimeZone -> Maybe CalEvent -> Msg -> Model -> ( Model, Cmd Msg, Maybe CalEvent )
|
||||
update flags tz mev msg model =
|
||||
let
|
||||
ev =
|
||||
Maybe.withDefault model.inner mev
|
||||
@ -153,7 +154,7 @@ update flags mev msg model =
|
||||
( m
|
||||
, Cmd.none
|
||||
, if res.success then
|
||||
Just event
|
||||
Just { event | timeZone = tz }
|
||||
|
||||
else
|
||||
Nothing
|
||||
|
@ -26,6 +26,7 @@ import Data.DropdownStyle as DS
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ListType exposing (ListType)
|
||||
import Data.TagOrder
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -111,8 +112,8 @@ getSettings model =
|
||||
model.schedule
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
GetTagsResp (Ok tl) ->
|
||||
let
|
||||
@ -123,7 +124,7 @@ update flags msg model =
|
||||
lm =
|
||||
Comp.Dropdown.SetOptions categories
|
||||
in
|
||||
update flags (CategoryListMsg lm) model
|
||||
update flags tz (CategoryListMsg lm) model
|
||||
|
||||
GetTagsResp (Err _) ->
|
||||
( model, Cmd.none )
|
||||
@ -133,6 +134,7 @@ update flags msg model =
|
||||
( cm, cc, ce ) =
|
||||
Comp.CalEventInput.update
|
||||
flags
|
||||
tz
|
||||
model.schedule
|
||||
lmsg
|
||||
model.scheduleModel
|
||||
|
@ -26,6 +26,7 @@ import Comp.StringListInput
|
||||
import Data.DropdownStyle as DS
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.Language exposing (Language)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -143,8 +144,8 @@ type Msg
|
||||
| PasswordMsg Comp.StringListInput.Msg
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Maybe CollectiveSettings )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Cmd Msg, Maybe CollectiveSettings )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
LangDropdownMsg m ->
|
||||
let
|
||||
@ -207,7 +208,7 @@ update flags msg model =
|
||||
ClassifierSettingMsg lmsg ->
|
||||
let
|
||||
( cm, cc ) =
|
||||
Comp.ClassifierSettingsForm.update flags lmsg model.classifierModel
|
||||
Comp.ClassifierSettingsForm.update flags tz lmsg model.classifierModel
|
||||
in
|
||||
( { model
|
||||
| classifierModel = cm
|
||||
@ -219,7 +220,7 @@ update flags msg model =
|
||||
EmptyTrashMsg lmsg ->
|
||||
let
|
||||
( cm, cc ) =
|
||||
Comp.EmptyTrashForm.update flags lmsg model.emptyTrashModel
|
||||
Comp.EmptyTrashForm.update flags tz lmsg model.emptyTrashModel
|
||||
in
|
||||
( { model
|
||||
| emptyTrashModel = cm
|
||||
|
@ -29,6 +29,7 @@ import Data.CalEvent exposing (CalEvent)
|
||||
import Data.DropdownStyle as DS
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TagOrder
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Data.Validated exposing (Validated(..))
|
||||
import Html exposing (..)
|
||||
@ -237,8 +238,8 @@ withValidSettings mkcmd model =
|
||||
)
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Action, Cmd Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Action, Cmd Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
ChannelMsg lm ->
|
||||
let
|
||||
@ -254,6 +255,7 @@ update flags msg model =
|
||||
let
|
||||
( cm, cc, cs ) =
|
||||
Comp.CalEventInput.update flags
|
||||
tz
|
||||
model.schedule
|
||||
lmsg
|
||||
model.scheduleModel
|
||||
|
@ -20,6 +20,7 @@ import Comp.DueItemsTaskForm
|
||||
import Comp.DueItemsTaskList
|
||||
import Comp.MenuBar as MB
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -81,8 +82,8 @@ init flags =
|
||||
--- Update
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
GetDataResp (Ok items) ->
|
||||
( { model
|
||||
@ -126,7 +127,7 @@ update flags msg model =
|
||||
Just dm ->
|
||||
let
|
||||
( mm, action, mc ) =
|
||||
Comp.DueItemsTaskForm.update flags lm dm
|
||||
Comp.DueItemsTaskForm.update flags tz lm dm
|
||||
|
||||
( model_, cmd_ ) =
|
||||
case action of
|
||||
|
@ -19,6 +19,7 @@ import Comp.CalEventInput
|
||||
import Comp.IntField
|
||||
import Data.CalEvent exposing (CalEvent)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -81,14 +82,15 @@ getSettings model =
|
||||
model.minAgeDays
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
ScheduleMsg lmsg ->
|
||||
let
|
||||
( cm, cc, ce ) =
|
||||
Comp.CalEventInput.update
|
||||
flags
|
||||
tz
|
||||
model.schedule
|
||||
lmsg
|
||||
model.scheduleModel
|
||||
|
@ -225,7 +225,7 @@ menuBar texts inav env model =
|
||||
[ { icon =
|
||||
foldSelected
|
||||
(i [ class "fa fa-check-square dark:text-lime-400 text-lime-600" ] [])
|
||||
(i [ class "fa fa-tasks" ] [])
|
||||
(i [ class "fa-regular fa-plus" ] [])
|
||||
, label = foldSelected texts.deselectItem texts.selectItem
|
||||
, disabled = False
|
||||
, attrs =
|
||||
@ -316,7 +316,7 @@ menuBar texts inav env model =
|
||||
]
|
||||
[ foldSelected
|
||||
(i [ class "fa fa-square-check" ] [])
|
||||
(i [ class "fa fa-list-check" ] [])
|
||||
(i [ class "fa fa-plus" ] [])
|
||||
]
|
||||
, MB.CustomElement <|
|
||||
a
|
||||
|
@ -25,6 +25,7 @@ import Comp.MenuBar as MB
|
||||
import Comp.PowerSearchInput
|
||||
import Data.CalEvent exposing (CalEvent)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Data.Validated exposing (Validated(..))
|
||||
import Html exposing (..)
|
||||
@ -254,13 +255,14 @@ withValidSettings mkcmd model =
|
||||
}
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> UpdateResult
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> UpdateResult
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
CalEventMsg lmsg ->
|
||||
let
|
||||
( cm, cc, cs ) =
|
||||
Comp.CalEventInput.update flags
|
||||
tz
|
||||
model.schedule
|
||||
lmsg
|
||||
model.scheduleModel
|
||||
|
@ -20,6 +20,7 @@ import Comp.MenuBar as MB
|
||||
import Comp.PeriodicQueryTaskForm
|
||||
import Comp.PeriodicQueryTaskList
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -81,8 +82,8 @@ init flags =
|
||||
--- Update
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
GetDataResp (Ok items) ->
|
||||
( { model
|
||||
@ -130,7 +131,7 @@ update flags msg model =
|
||||
let
|
||||
--( mm, action, mc ) =
|
||||
result =
|
||||
Comp.PeriodicQueryTaskForm.update flags lm dm
|
||||
Comp.PeriodicQueryTaskForm.update flags tz lm dm
|
||||
|
||||
( model_, cmd_ ) =
|
||||
case result.action of
|
||||
|
@ -40,6 +40,7 @@ import Data.Flags exposing (Flags)
|
||||
import Data.FolderOrder
|
||||
import Data.Language exposing (Language)
|
||||
import Data.TagOrder
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Data.Validated exposing (Validated(..))
|
||||
import Html exposing (..)
|
||||
@ -183,7 +184,7 @@ initWith flags s =
|
||||
|> Maybe.withDefault []
|
||||
|
||||
( nm, _, nc ) =
|
||||
update flags (ConnMsg (Comp.Dropdown.SetSelection imap)) im
|
||||
update flags Data.TimeZone.utc (ConnMsg (Comp.Dropdown.SetSelection imap)) im
|
||||
|
||||
newSchedule =
|
||||
Data.CalEvent.fromEvent s.schedule
|
||||
@ -354,13 +355,14 @@ withValidSettings mkAction model =
|
||||
)
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Action, Cmd Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Action, Cmd Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
CalEventMsg lmsg ->
|
||||
let
|
||||
( cm, cc, cs ) =
|
||||
Comp.CalEventInput.update flags
|
||||
tz
|
||||
model.schedule
|
||||
lmsg
|
||||
model.scheduleModel
|
||||
@ -585,8 +587,8 @@ update flags msg model =
|
||||
( a, NoAction, b )
|
||||
in
|
||||
Util.Update.andThen1
|
||||
[ update flags (FolderDropdownMsg opts) >> removeAction
|
||||
, update flags (FolderDropdownMsg (Comp.Dropdown.SetSelection sel)) >> removeAction
|
||||
[ update flags tz (FolderDropdownMsg opts) >> removeAction
|
||||
, update flags tz (FolderDropdownMsg (Comp.Dropdown.SetSelection sel)) >> removeAction
|
||||
]
|
||||
model_
|
||||
|> addNoAction
|
||||
|
@ -21,6 +21,7 @@ import Comp.MenuBar as MB
|
||||
import Comp.ScanMailboxForm
|
||||
import Comp.ScanMailboxList
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -82,8 +83,8 @@ init flags =
|
||||
--- Update
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags msg model =
|
||||
update : Flags -> TimeZone -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update flags tz msg model =
|
||||
case msg of
|
||||
GetDataResp (Ok res) ->
|
||||
( { model
|
||||
@ -127,7 +128,7 @@ update flags msg model =
|
||||
Just dm ->
|
||||
let
|
||||
( mm, action, mc ) =
|
||||
Comp.ScanMailboxForm.update flags lm dm
|
||||
Comp.ScanMailboxForm.update flags tz lm dm
|
||||
|
||||
( model_, cmd_ ) =
|
||||
case action of
|
||||
|
@ -19,6 +19,7 @@ import Api
|
||||
import Api.Model.TagList exposing (TagList)
|
||||
import Comp.BasicSizeField
|
||||
import Comp.ColorTagger
|
||||
import Comp.Dropdown
|
||||
import Comp.FieldListSelect
|
||||
import Comp.FixedDropdown
|
||||
import Comp.IntField
|
||||
@ -32,6 +33,7 @@ import Data.Flags exposing (Flags)
|
||||
import Data.ItemTemplate as IT exposing (ItemTemplate)
|
||||
import Data.Pdf exposing (PdfMode)
|
||||
import Data.TagOrder
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiSettings exposing (ItemPattern, StoredUiSettings, UiSettings)
|
||||
import Dict exposing (Dict)
|
||||
import Html exposing (..)
|
||||
@ -74,6 +76,7 @@ type alias Model =
|
||||
, powerSearchEnabled : Bool
|
||||
, uiLangModel : Comp.FixedDropdown.Model UiLanguage
|
||||
, uiLang : UiLanguage
|
||||
, timezoneDropdown : Comp.Dropdown.Model String
|
||||
, openTabs : Set String
|
||||
, defaults : UiSettings
|
||||
}
|
||||
@ -169,6 +172,11 @@ initModel flags storedSettings defaults =
|
||||
, uiLang = settings.uiLang
|
||||
, uiLangModel =
|
||||
Comp.FixedDropdown.init Messages.UiLanguage.all
|
||||
, timezoneDropdown =
|
||||
Comp.Dropdown.makeSingleList
|
||||
{ options = Data.TimeZone.listAll
|
||||
, selected = Just (Data.TimeZone.toName settings.timeZone)
|
||||
}
|
||||
, openTabs = Set.empty
|
||||
, defaults = defaults
|
||||
}
|
||||
@ -208,6 +216,7 @@ type Msg
|
||||
| TogglePowerSearch
|
||||
| UiLangMsg (Comp.FixedDropdown.Msg UiLanguage)
|
||||
| PdfModeMsg (Comp.FixedDropdown.Msg PdfMode)
|
||||
| TimeZoneMsg (Comp.Dropdown.Msg String)
|
||||
| ToggleAllTabs
|
||||
| ResetTab AkkordionTab
|
||||
|
||||
@ -598,6 +607,27 @@ update flags sett msg model =
|
||||
in
|
||||
( { nm | openTabs = model.openTabs }, Just newSettings )
|
||||
|
||||
TimeZoneMsg lm ->
|
||||
let
|
||||
( tm, tcmd ) =
|
||||
Comp.Dropdown.update lm model.timezoneDropdown
|
||||
|
||||
tz =
|
||||
if Comp.Dropdown.isDropdownChangeMsg lm then
|
||||
Comp.Dropdown.getSelected tm |> List.head
|
||||
|
||||
else
|
||||
sett.timeZone
|
||||
|
||||
newSett =
|
||||
if sett.timeZone == tz then
|
||||
Nothing
|
||||
|
||||
else
|
||||
Just { sett | timeZone = tz }
|
||||
in
|
||||
( { model | timezoneDropdown = tm }, newSett )
|
||||
|
||||
|
||||
|
||||
--- View2
|
||||
@ -646,8 +676,8 @@ settingFormTabs : Texts -> Flags -> StoredUiSettings -> Model -> List (Comp.Tabs
|
||||
settingFormTabs texts flags _ model =
|
||||
let
|
||||
langCfg =
|
||||
{ display = \lang -> Messages.get lang |> .label
|
||||
, icon = \lang -> Just (Messages.get lang |> .flagIcon)
|
||||
{ display = \lang -> Messages.get lang Data.TimeZone.utc |> .label
|
||||
, icon = \lang -> Just (Messages.get lang Data.TimeZone.utc |> .flagIcon)
|
||||
, style = DS.mainStyle
|
||||
, selectPlaceholder = texts.basics.selectPlaceholder
|
||||
}
|
||||
@ -669,6 +699,9 @@ settingFormTabs texts flags _ model =
|
||||
[ i [ class "fa fa-eraser mr-1" ] []
|
||||
, text texts.resetLabel
|
||||
]
|
||||
|
||||
uiSettings =
|
||||
Data.UiSettings.defaults
|
||||
in
|
||||
[ { name = akkordionTabName GeneralTab
|
||||
, title = texts.general
|
||||
@ -694,6 +727,22 @@ settingFormTabs texts flags _ model =
|
||||
model.uiLangModel
|
||||
)
|
||||
]
|
||||
, div [ class "mb-4" ]
|
||||
[ label [ class S.inputLabel ] [ text "Timezone" ]
|
||||
, Html.map TimeZoneMsg
|
||||
(Comp.Dropdown.view2
|
||||
{ makeOption = \s -> { text = s, additional = "" }
|
||||
, placeholder = ""
|
||||
, labelColor = \_ -> \_ -> ""
|
||||
, style = DS.mainStyle
|
||||
}
|
||||
uiSettings
|
||||
model.timezoneDropdown
|
||||
)
|
||||
, span [ class "opacity-75 text-sm" ]
|
||||
[ text "Used to format date-time values."
|
||||
]
|
||||
]
|
||||
]
|
||||
}
|
||||
, { name = akkordionTabName SearchTab
|
||||
|
@ -12,6 +12,7 @@ module Data.CalEvent exposing
|
||||
, makeEvent
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Util.Maybe
|
||||
|
||||
|
||||
@ -22,12 +23,13 @@ type alias CalEvent =
|
||||
, day : String
|
||||
, hour : String
|
||||
, minute : String
|
||||
, timeZone : TimeZone
|
||||
}
|
||||
|
||||
|
||||
everyMonth : CalEvent
|
||||
everyMonth =
|
||||
CalEvent Nothing "*" "*" "01" "00" "00"
|
||||
CalEvent Nothing "*" "*" "01" "00" "00" Data.TimeZone.utc
|
||||
|
||||
|
||||
makeEvent : CalEvent -> String
|
||||
@ -43,6 +45,8 @@ makeEvent ev =
|
||||
++ ev.hour
|
||||
++ ":"
|
||||
++ ev.minute
|
||||
++ " "
|
||||
++ Data.TimeZone.toName ev.timeZone
|
||||
in
|
||||
case ev.weekday of
|
||||
Just wd ->
|
||||
@ -60,18 +64,40 @@ fromEvent str =
|
||||
|
||||
parts =
|
||||
String.split " " str
|
||||
|
||||
foldChanges : List (CalEvent -> Maybe CalEvent) -> Maybe CalEvent
|
||||
foldChanges list =
|
||||
List.foldl (\fmc -> \c -> Maybe.andThen fmc c) (Just init) list
|
||||
in
|
||||
case parts of
|
||||
wd :: date :: time :: [] ->
|
||||
Maybe.andThen
|
||||
(fromDate date)
|
||||
(fromTime time init)
|
||||
|> Maybe.map (withWeekday wd)
|
||||
wd :: date :: time :: tz :: [] ->
|
||||
foldChanges
|
||||
[ fromWeekDays wd
|
||||
, fromDate date
|
||||
, fromTime time
|
||||
, fromTimeZone tz
|
||||
]
|
||||
|
||||
a :: b :: c :: [] ->
|
||||
if startsWithWeekday a then
|
||||
foldChanges
|
||||
[ fromWeekDays a
|
||||
, fromDate b
|
||||
, fromTime c
|
||||
]
|
||||
|
||||
else
|
||||
foldChanges
|
||||
[ fromDate a
|
||||
, fromTime b
|
||||
, fromTimeZone c
|
||||
]
|
||||
|
||||
date :: time :: [] ->
|
||||
Maybe.andThen
|
||||
(fromDate date)
|
||||
(fromTime time init)
|
||||
foldChanges
|
||||
[ fromDate date
|
||||
, fromTime time
|
||||
]
|
||||
|
||||
_ ->
|
||||
Nothing
|
||||
@ -109,6 +135,31 @@ fromTime time ev =
|
||||
Nothing
|
||||
|
||||
|
||||
fromTimeZone : String -> CalEvent -> Maybe CalEvent
|
||||
fromTimeZone tzStr ev =
|
||||
Data.TimeZone.get tzStr
|
||||
|> Maybe.map (\tz -> { ev | timeZone = tz })
|
||||
|
||||
|
||||
fromWeekDays : String -> CalEvent -> Maybe CalEvent
|
||||
fromWeekDays str ce =
|
||||
if startsWithWeekday str then
|
||||
Just (withWeekday str ce)
|
||||
|
||||
else
|
||||
Nothing
|
||||
|
||||
|
||||
withWeekday : String -> CalEvent -> CalEvent
|
||||
withWeekday wd ev =
|
||||
{ ev | weekday = Util.Maybe.fromString wd }
|
||||
|
||||
|
||||
weekDays : List String
|
||||
weekDays =
|
||||
[ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ]
|
||||
|
||||
|
||||
startsWithWeekday : String -> Bool
|
||||
startsWithWeekday str =
|
||||
List.any (\a -> String.startsWith a str) weekDays
|
||||
|
47
modules/webapp/src/main/elm/Data/TimeZone.elm
Normal file
47
modules/webapp/src/main/elm/Data/TimeZone.elm
Normal file
@ -0,0 +1,47 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Data.TimeZone exposing (TimeZone, get, listAll, toName, toZone, utc)
|
||||
|
||||
import Dict
|
||||
import Time exposing (Zone)
|
||||
import TimeZone as TZ
|
||||
|
||||
|
||||
type TimeZone
|
||||
= TimeZone ( String, Zone )
|
||||
|
||||
|
||||
get : String -> Maybe TimeZone
|
||||
get name =
|
||||
case String.toLower name of
|
||||
"utc" ->
|
||||
Just utc
|
||||
|
||||
_ ->
|
||||
Dict.get name TZ.zones
|
||||
|> Maybe.map (\z -> TimeZone ( name, z () ))
|
||||
|
||||
|
||||
toName : TimeZone -> String
|
||||
toName (TimeZone ( name, _ )) =
|
||||
name
|
||||
|
||||
|
||||
toZone : TimeZone -> Zone
|
||||
toZone (TimeZone ( _, zone )) =
|
||||
zone
|
||||
|
||||
|
||||
utc : TimeZone
|
||||
utc =
|
||||
TimeZone ( "UTC", Time.utc )
|
||||
|
||||
|
||||
listAll : List String
|
||||
listAll =
|
||||
"UTC" :: Dict.keys TZ.zones
|
@ -40,6 +40,7 @@ import Data.Flags exposing (Flags)
|
||||
import Data.ItemArrange exposing (ItemArrange)
|
||||
import Data.ItemTemplate exposing (ItemTemplate)
|
||||
import Data.Pdf exposing (PdfMode)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Data.UiTheme exposing (UiTheme)
|
||||
import Dict exposing (Dict)
|
||||
import Html exposing (Attribute, Html, embed, iframe)
|
||||
@ -80,6 +81,7 @@ type alias StoredUiSettings =
|
||||
, uiLang : Maybe String
|
||||
, itemSearchShowGroups : Maybe Bool
|
||||
, itemSearchArrange : Maybe String
|
||||
, timeZone : Maybe String
|
||||
}
|
||||
|
||||
|
||||
@ -105,6 +107,7 @@ emptyStoredSettings =
|
||||
, uiLang = Nothing
|
||||
, itemSearchShowGroups = Nothing
|
||||
, itemSearchArrange = Nothing
|
||||
, timeZone = Nothing
|
||||
}
|
||||
|
||||
|
||||
@ -141,6 +144,7 @@ storedUiSettingsDecoder =
|
||||
|> P.optional "uiLang" maybeString Nothing
|
||||
|> P.optional "itemSearchShowGroups" maybeBool Nothing
|
||||
|> P.optional "itemSearchArrange" maybeString Nothing
|
||||
|> P.optional "timeZone" maybeString Nothing
|
||||
|
||||
|
||||
storedUiSettingsEncode : StoredUiSettings -> Encode.Value
|
||||
@ -173,6 +177,7 @@ storedUiSettingsEncode value =
|
||||
, maybeEnc "uiLang" Encode.string value.uiLang
|
||||
, maybeEnc "itemSearchShowGroups" Encode.bool value.itemSearchShowGroups
|
||||
, maybeEnc "itemSearchArrange" Encode.string value.itemSearchArrange
|
||||
, maybeEnc "timeZone" Encode.string value.timeZone
|
||||
]
|
||||
|
||||
|
||||
@ -205,6 +210,7 @@ type alias UiSettings =
|
||||
, uiLang : UiLanguage
|
||||
, itemSearchShowGroups : Bool
|
||||
, itemSearchArrange : ItemArrange
|
||||
, timeZone : TimeZone
|
||||
}
|
||||
|
||||
|
||||
@ -248,6 +254,7 @@ defaults =
|
||||
, uiLang = Messages.UiLanguage.English
|
||||
, itemSearchShowGroups = True
|
||||
, itemSearchArrange = Data.ItemArrange.Cards
|
||||
, timeZone = Data.TimeZone.utc
|
||||
}
|
||||
|
||||
|
||||
@ -306,6 +313,9 @@ merge given fallback =
|
||||
, itemSearchArrange =
|
||||
Maybe.andThen Data.ItemArrange.fromString given.itemSearchArrange
|
||||
|> Maybe.withDefault fallback.itemSearchArrange
|
||||
, timeZone =
|
||||
Maybe.andThen Data.TimeZone.get given.timeZone
|
||||
|> Maybe.withDefault fallback.timeZone
|
||||
}
|
||||
|
||||
|
||||
@ -344,6 +354,7 @@ convert settings =
|
||||
, uiLang = Just <| Messages.toIso2 settings.uiLang
|
||||
, itemSearchShowGroups = Just settings.itemSearchShowGroups
|
||||
, itemSearchArrange = Data.ItemArrange.asString settings.itemSearchArrange |> Just
|
||||
, timeZone = Data.TimeZone.toName settings.timeZone |> Just
|
||||
}
|
||||
|
||||
|
||||
|
@ -12,6 +12,7 @@ module Messages exposing
|
||||
, toIso2
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.App
|
||||
import Messages.Page.CollectiveSettings
|
||||
import Messages.Page.Dashboard
|
||||
@ -33,6 +34,7 @@ import Messages.UiLanguage exposing (UiLanguage(..))
|
||||
-}
|
||||
type alias Messages =
|
||||
{ lang : UiLanguage
|
||||
, timeZone : TimeZone
|
||||
, iso2 : String
|
||||
, label : String
|
||||
, flagIcon : String
|
||||
@ -53,21 +55,21 @@ type alias Messages =
|
||||
}
|
||||
|
||||
|
||||
get : UiLanguage -> Messages
|
||||
get lang =
|
||||
get : UiLanguage -> TimeZone -> Messages
|
||||
get lang tz =
|
||||
case lang of
|
||||
English ->
|
||||
gb
|
||||
gb tz
|
||||
|
||||
German ->
|
||||
de
|
||||
de tz
|
||||
|
||||
|
||||
{-| Get a ISO-3166-1 code of the given lanugage.
|
||||
-}
|
||||
toIso2 : UiLanguage -> String
|
||||
toIso2 lang =
|
||||
get lang |> .iso2
|
||||
get lang Data.TimeZone.utc |> .iso2
|
||||
|
||||
|
||||
{-| Return the UiLanguage from given iso2 code. If the iso2 code is not
|
||||
@ -98,47 +100,49 @@ fromIso2 iso =
|
||||
-- use two classes: flag-icon flag-icon-xx where xx is the two-letter country code
|
||||
|
||||
|
||||
gb : Messages
|
||||
gb =
|
||||
gb : TimeZone -> Messages
|
||||
gb tz =
|
||||
{ lang = English
|
||||
, timeZone = tz
|
||||
, iso2 = "gb"
|
||||
, label = "English"
|
||||
, flagIcon = "flag-icon flag-icon-gb"
|
||||
, app = Messages.App.gb
|
||||
, collectiveSettings = Messages.Page.CollectiveSettings.gb
|
||||
, collectiveSettings = Messages.Page.CollectiveSettings.gb tz
|
||||
, login = Messages.Page.Login.gb
|
||||
, register = Messages.Page.Register.gb
|
||||
, newInvite = Messages.Page.NewInvite.gb
|
||||
, upload = Messages.Page.Upload.gb
|
||||
, itemDetail = Messages.Page.ItemDetail.gb
|
||||
, queue = Messages.Page.Queue.gb
|
||||
, userSettings = Messages.Page.UserSettings.gb
|
||||
, manageData = Messages.Page.ManageData.gb
|
||||
, search = Messages.Page.Search.gb
|
||||
, share = Messages.Page.Share.gb
|
||||
, shareDetail = Messages.Page.ShareDetail.gb
|
||||
, dashboard = Messages.Page.Dashboard.gb
|
||||
, itemDetail = Messages.Page.ItemDetail.gb tz
|
||||
, queue = Messages.Page.Queue.gb tz
|
||||
, userSettings = Messages.Page.UserSettings.gb tz
|
||||
, manageData = Messages.Page.ManageData.gb tz
|
||||
, search = Messages.Page.Search.gb tz
|
||||
, share = Messages.Page.Share.gb tz
|
||||
, shareDetail = Messages.Page.ShareDetail.gb tz
|
||||
, dashboard = Messages.Page.Dashboard.gb tz
|
||||
}
|
||||
|
||||
|
||||
de : Messages
|
||||
de =
|
||||
de : TimeZone -> Messages
|
||||
de tz =
|
||||
{ lang = German
|
||||
, timeZone = tz
|
||||
, iso2 = "de"
|
||||
, label = "Deutsch"
|
||||
, flagIcon = "flag-icon flag-icon-de"
|
||||
, app = Messages.App.de
|
||||
, collectiveSettings = Messages.Page.CollectiveSettings.de
|
||||
, collectiveSettings = Messages.Page.CollectiveSettings.de tz
|
||||
, login = Messages.Page.Login.de
|
||||
, register = Messages.Page.Register.de
|
||||
, newInvite = Messages.Page.NewInvite.de
|
||||
, upload = Messages.Page.Upload.de
|
||||
, itemDetail = Messages.Page.ItemDetail.de
|
||||
, queue = Messages.Page.Queue.de
|
||||
, userSettings = Messages.Page.UserSettings.de
|
||||
, manageData = Messages.Page.ManageData.de
|
||||
, search = Messages.Page.Search.de
|
||||
, share = Messages.Page.Share.de
|
||||
, shareDetail = Messages.Page.ShareDetail.de
|
||||
, dashboard = Messages.Page.Dashboard.de
|
||||
, itemDetail = Messages.Page.ItemDetail.de tz
|
||||
, queue = Messages.Page.Queue.de tz
|
||||
, userSettings = Messages.Page.UserSettings.de tz
|
||||
, manageData = Messages.Page.ManageData.de tz
|
||||
, search = Messages.Page.Search.de tz
|
||||
, share = Messages.Page.Share.de tz
|
||||
, shareDetail = Messages.Page.ShareDetail.de tz
|
||||
, dashboard = Messages.Page.Dashboard.de tz
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.AttachmentMeta exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -35,8 +36,8 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, extractedMetadata = "Extracted Meta Data"
|
||||
@ -49,12 +50,12 @@ gb =
|
||||
, concerningEquipment = "Concerning Equipment"
|
||||
, itemDate = "Item Date"
|
||||
, itemDueDate = "Item Due Date"
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.English tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, extractedMetadata = "Extrahierte Metadaten"
|
||||
@ -67,5 +68,5 @@ de =
|
||||
, concerningEquipment = "Betreffende Ausstattung"
|
||||
, itemDate = "Datum"
|
||||
, itemDueDate = "Fälligkeitsdatum"
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.German tz
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
module Messages.Comp.BoxQueryView exposing (Texts, de, gb)
|
||||
|
||||
import Data.ItemTemplate as IT
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -27,30 +28,30 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ httpError = Messages.Comp.HttpError.gb
|
||||
, errorOccurred = "Error retrieving data."
|
||||
, basics = Messages.Basics.gb
|
||||
, noResults = "No items found."
|
||||
, templateCtx =
|
||||
{ dateFormatLong = DF.formatDateLong Messages.UiLanguage.English
|
||||
, dateFormatShort = DF.formatDateShort Messages.UiLanguage.English
|
||||
{ dateFormatLong = DF.formatDateLong Messages.UiLanguage.English tz
|
||||
, dateFormatShort = DF.formatDateShort Messages.UiLanguage.English tz
|
||||
, directionLabel = Messages.Data.Direction.gb
|
||||
}
|
||||
, itemColumn = Messages.Data.ItemColumn.gb
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ httpError = Messages.Comp.HttpError.de
|
||||
, errorOccurred = "Fehler beim Laden der Daten."
|
||||
, basics = Messages.Basics.de
|
||||
, noResults = "Keine Dokumente gefunden."
|
||||
, templateCtx =
|
||||
{ dateFormatLong = DF.formatDateLong Messages.UiLanguage.German
|
||||
, dateFormatShort = DF.formatDateShort Messages.UiLanguage.German
|
||||
{ dateFormatLong = DF.formatDateLong Messages.UiLanguage.German tz
|
||||
, dateFormatShort = DF.formatDateShort Messages.UiLanguage.German tz
|
||||
, directionLabel = Messages.Data.Direction.de
|
||||
}
|
||||
, itemColumn = Messages.Data.ItemColumn.de
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
module Messages.Comp.BoxView exposing (Texts, de, gb)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Comp.BoxQueryView
|
||||
import Messages.Comp.BoxStatsView
|
||||
import Messages.Comp.BoxUploadView
|
||||
@ -19,17 +20,17 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ queryView = Messages.Comp.BoxQueryView.gb
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ queryView = Messages.Comp.BoxQueryView.gb tz
|
||||
, statsView = Messages.Comp.BoxStatsView.gb
|
||||
, uploadView = Messages.Comp.BoxUploadView.gb
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ queryView = Messages.Comp.BoxQueryView.de
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ queryView = Messages.Comp.BoxQueryView.de tz
|
||||
, statsView = Messages.Comp.BoxStatsView.de
|
||||
, uploadView = Messages.Comp.BoxUploadView.de
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.CalEventInput exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.DateFormat as DF
|
||||
@ -32,8 +33,8 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ weekday = "Weekday"
|
||||
, year = "Year"
|
||||
, month = "Month"
|
||||
@ -43,13 +44,13 @@ gb =
|
||||
, error = "Error"
|
||||
, schedule = "Schedule"
|
||||
, next = "Next"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English tz
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ weekday = "Wochentag"
|
||||
, year = "Jahr"
|
||||
, month = "Monat"
|
||||
@ -59,6 +60,6 @@ de =
|
||||
, error = "Fehler"
|
||||
, schedule = "Zeitplan"
|
||||
, next = "Nächste Zeiten"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German tz
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ClassifierSettingsForm exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CalEventInput
|
||||
|
||||
@ -28,10 +29,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb tz
|
||||
, autoTaggingText =
|
||||
"""
|
||||
|
||||
@ -53,10 +54,10 @@ Use an empty whitelist to disable auto tagging.
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de tz
|
||||
, autoTaggingText =
|
||||
"""
|
||||
|
||||
|
@ -12,6 +12,7 @@ module Messages.Comp.CollectiveSettingsForm exposing
|
||||
)
|
||||
|
||||
import Data.Language exposing (Language)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.ClassifierSettingsForm
|
||||
@ -49,11 +50,11 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, classifierSettingsForm = Messages.Comp.ClassifierSettingsForm.gb
|
||||
, emptyTrashForm = Messages.Comp.EmptyTrashForm.gb
|
||||
, classifierSettingsForm = Messages.Comp.ClassifierSettingsForm.gb tz
|
||||
, emptyTrashForm = Messages.Comp.EmptyTrashForm.gb tz
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, save = "Save"
|
||||
, saveSettings = "Save Settings"
|
||||
@ -84,11 +85,11 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, classifierSettingsForm = Messages.Comp.ClassifierSettingsForm.de
|
||||
, emptyTrashForm = Messages.Comp.EmptyTrashForm.de
|
||||
, classifierSettingsForm = Messages.Comp.ClassifierSettingsForm.de tz
|
||||
, emptyTrashForm = Messages.Comp.EmptyTrashForm.de tz
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, save = "Speichern"
|
||||
, saveSettings = "Einstellungen speichern"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.CustomFieldManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CustomFieldForm
|
||||
import Messages.Comp.CustomFieldTable
|
||||
@ -25,21 +26,21 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, fieldForm = Messages.Comp.CustomFieldForm.gb
|
||||
, fieldTable = Messages.Comp.CustomFieldTable.gb
|
||||
, fieldTable = Messages.Comp.CustomFieldTable.gb tz
|
||||
, addCustomField = "Add a new custom field"
|
||||
, newCustomField = "New custom field"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, fieldForm = Messages.Comp.CustomFieldForm.de
|
||||
, fieldTable = Messages.Comp.CustomFieldTable.de
|
||||
, fieldTable = Messages.Comp.CustomFieldTable.de tz
|
||||
, addCustomField = "Ein neues Benutzerfeld anlegen"
|
||||
, newCustomField = "Neues Benutzerfeld"
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.CustomFieldTable exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
@ -25,21 +26,21 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, nameLabel = "Name/Label"
|
||||
, format = "Format"
|
||||
, usageCount = "#Usage"
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.English tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, nameLabel = "Name/Label"
|
||||
, format = "Format"
|
||||
, usageCount = "#Nutzung"
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.German tz
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
module Messages.Comp.DashboardView exposing (Texts, de, gb)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Comp.BoxView
|
||||
|
||||
|
||||
@ -15,13 +16,13 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ boxView = Messages.Comp.BoxView.gb
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ boxView = Messages.Comp.BoxView.gb tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ boxView = Messages.Comp.BoxView.de
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ boxView = Messages.Comp.BoxView.de tz
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.DueItemsTaskForm exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CalEventInput
|
||||
@ -57,10 +58,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb tz
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelForm = Messages.Comp.ChannelForm.gb
|
||||
, tagDropdown = Messages.Comp.TagDropdown.gb
|
||||
@ -98,10 +99,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de tz
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelForm = Messages.Comp.ChannelForm.de
|
||||
, tagDropdown = Messages.Comp.TagDropdown.de
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.DueItemsTaskManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.DueItemsTaskForm
|
||||
@ -34,10 +35,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, notificationForm = Messages.Comp.DueItemsTaskForm.gb
|
||||
, notificationForm = Messages.Comp.DueItemsTaskForm.gb tz
|
||||
, notificationTable = Messages.Comp.DueItemsTaskList.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelType = Messages.Data.ChannelType.gb
|
||||
@ -50,10 +51,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, notificationForm = Messages.Comp.DueItemsTaskForm.de
|
||||
, notificationForm = Messages.Comp.DueItemsTaskForm.de tz
|
||||
, notificationTable = Messages.Comp.DueItemsTaskList.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelType = Messages.Data.ChannelType.de
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.EmptyTrashForm exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CalEventInput
|
||||
|
||||
@ -24,20 +25,20 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb tz
|
||||
, schedule = "Schedule"
|
||||
, minAge = "Minimum Age (Days)"
|
||||
, minAgeInfo = "The minimum age in days of an items to be removed. The last-update time is used."
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de tz
|
||||
, schedule = "Zeitplan"
|
||||
, minAge = "Mindestalter (Tage)"
|
||||
, minAgeInfo = "Das Mindestalter (in Tagen) der Dokumente, die gelöscht werden. Es wird das Datum der letzten Veränderung verwendet."
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.FolderManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.FolderDetail
|
||||
import Messages.Comp.FolderTable
|
||||
@ -26,22 +27,22 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, folderDetail = Messages.Comp.FolderDetail.gb
|
||||
, folderTable = Messages.Comp.FolderTable.gb
|
||||
, folderTable = Messages.Comp.FolderTable.gb tz
|
||||
, showOwningFoldersOnly = "Show owning folders only"
|
||||
, createNewFolder = "Create a new folder"
|
||||
, newFolder = "New Folder"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, folderDetail = Messages.Comp.FolderDetail.de
|
||||
, folderTable = Messages.Comp.FolderTable.de
|
||||
, folderTable = Messages.Comp.FolderTable.de tz
|
||||
, showOwningFoldersOnly = "Nur besitzende Ordner anzeigen"
|
||||
, createNewFolder = "Neuen Ordner anlegen"
|
||||
, newFolder = "Neuer Ordner"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.FolderTable exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
@ -24,19 +25,19 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, memberCount = "#Member"
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.English tz
|
||||
, owner = "Owner"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, memberCount = "#Mitglieder"
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateShort = DF.formatDateShort Messages.UiLanguage.German tz
|
||||
, owner = "Besitzer"
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ module Messages.Comp.ItemCard exposing
|
||||
)
|
||||
|
||||
import Data.Direction exposing (Direction)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Data.Direction
|
||||
import Messages.DateFormat
|
||||
@ -31,29 +32,29 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, dueOn = "Due on"
|
||||
, new = "New"
|
||||
, openAttachmentFile = "Open attachment file"
|
||||
, gotoDetail = "Go to detail view"
|
||||
, cycleAttachments = "Cycle attachments"
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.English
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.English tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English tz
|
||||
, directionLabel = Messages.Data.Direction.gb
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, dueOn = "Fällig am"
|
||||
, new = "Neu"
|
||||
, openAttachmentFile = "Anhang öffnen"
|
||||
, gotoDetail = "Detailansicht"
|
||||
, cycleAttachments = "Anhänge durchschalten"
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.German
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.German tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German tz
|
||||
, directionLabel = Messages.Data.Direction.de
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ItemCardList exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Comp.ItemCard
|
||||
|
||||
|
||||
@ -19,13 +20,13 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ itemCard = Messages.Comp.ItemCard.gb
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ itemCard = Messages.Comp.ItemCard.gb tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ itemCard = Messages.Comp.ItemCard.de
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ itemCard = Messages.Comp.ItemCard.de tz
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ItemDetail exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Comp.DetailEdit
|
||||
import Messages.Comp.HttpError
|
||||
@ -62,12 +63,12 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ addFilesForm = Messages.Comp.ItemDetail.AddFilesForm.gb
|
||||
, itemInfoHeader = Messages.Comp.ItemDetail.ItemInfoHeader.gb
|
||||
, singleAttachment = Messages.Comp.ItemDetail.SingleAttachment.gb
|
||||
, sentMails = Messages.Comp.SentMails.gb
|
||||
, itemInfoHeader = Messages.Comp.ItemDetail.ItemInfoHeader.gb tz
|
||||
, singleAttachment = Messages.Comp.ItemDetail.SingleAttachment.gb tz
|
||||
, sentMails = Messages.Comp.SentMails.gb tz
|
||||
, notes = Messages.Comp.ItemDetail.Notes.gb
|
||||
, itemMail = Messages.Comp.ItemMail.gb
|
||||
, detailEdit = Messages.Comp.DetailEdit.gb
|
||||
@ -91,7 +92,7 @@ gb =
|
||||
, createdOn = "Created on"
|
||||
, lastUpdateOn = "Last update on"
|
||||
, sendingMailNow = "Sending e-mail…"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English tz
|
||||
, mailSendSuccessful = "Mail sent."
|
||||
, showQrCode = "Show URL as QR code"
|
||||
, close = "Close"
|
||||
@ -100,12 +101,12 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ addFilesForm = Messages.Comp.ItemDetail.AddFilesForm.de
|
||||
, itemInfoHeader = Messages.Comp.ItemDetail.ItemInfoHeader.de
|
||||
, singleAttachment = Messages.Comp.ItemDetail.SingleAttachment.de
|
||||
, sentMails = Messages.Comp.SentMails.de
|
||||
, itemInfoHeader = Messages.Comp.ItemDetail.ItemInfoHeader.de tz
|
||||
, singleAttachment = Messages.Comp.ItemDetail.SingleAttachment.de tz
|
||||
, sentMails = Messages.Comp.SentMails.de tz
|
||||
, notes = Messages.Comp.ItemDetail.Notes.de
|
||||
, itemMail = Messages.Comp.ItemMail.de
|
||||
, detailEdit = Messages.Comp.DetailEdit.de
|
||||
@ -129,7 +130,7 @@ de =
|
||||
, createdOn = "Erstellt am"
|
||||
, lastUpdateOn = "Letzte Aktualisierung"
|
||||
, sendingMailNow = "E-Mail wird gesendet…"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German tz
|
||||
, mailSendSuccessful = "E-Mail wurde versendet."
|
||||
, showQrCode = "Link als QR code anzeigen"
|
||||
, close = "Schließen"
|
||||
|
@ -12,6 +12,7 @@ module Messages.Comp.ItemDetail.EditForm exposing
|
||||
)
|
||||
|
||||
import Data.Direction exposing (Direction)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CustomFieldMultiInput
|
||||
import Messages.Comp.TagDropdown
|
||||
@ -43,8 +44,8 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, customFieldInput = Messages.Comp.CustomFieldMultiInput.gb
|
||||
, tagDropdown = Messages.Comp.TagDropdown.gb
|
||||
@ -62,13 +63,13 @@ gb =
|
||||
, editEquipment = "Edit equipment"
|
||||
, suggestions = "Suggestions"
|
||||
, noSuggestions = "No suggestions"
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.English
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.English tz
|
||||
, direction = Messages.Data.Direction.gb
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, customFieldInput = Messages.Comp.CustomFieldMultiInput.de
|
||||
, tagDropdown = Messages.Comp.TagDropdown.de
|
||||
@ -86,6 +87,6 @@ de =
|
||||
, editEquipment = "Ausstattung ändern"
|
||||
, suggestions = "Vorschläge"
|
||||
, noSuggestions = "Keine Vorschläge"
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.German
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.German tz
|
||||
, direction = Messages.Data.Direction.de
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ItemDetail.ItemInfoHeader exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
@ -26,23 +27,23 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, itemDate = "Item Date"
|
||||
, dueDate = "Due Date"
|
||||
, source = "Source"
|
||||
, new = "New"
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.English
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.English tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, itemDate = "Datum"
|
||||
, dueDate = "Fälligkeitsdatum"
|
||||
, source = "Quelle"
|
||||
, new = "Neu"
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.German
|
||||
, formatDate = DF.formatDateLong Messages.UiLanguage.German tz
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ItemDetail.SingleAttachment exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Comp.AttachmentMeta
|
||||
import Messages.Comp.ItemDetail.ConfirmModal
|
||||
|
||||
@ -35,9 +36,9 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ attachmentMeta = Messages.Comp.AttachmentMeta.gb
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ attachmentMeta = Messages.Comp.AttachmentMeta.gb tz
|
||||
, confirmModal = Messages.Comp.ItemDetail.ConfirmModal.gb
|
||||
, noName = "No name"
|
||||
, openFileInNewTab = "Open file in new tab"
|
||||
@ -56,9 +57,9 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ attachmentMeta = Messages.Comp.AttachmentMeta.de
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ attachmentMeta = Messages.Comp.AttachmentMeta.de tz
|
||||
, confirmModal = Messages.Comp.ItemDetail.ConfirmModal.de
|
||||
, noName = "Kein Name"
|
||||
, openFileInNewTab = "Anhang im neuen Tab öffnen"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ItemMerge exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -35,15 +36,15 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, title = "Merge Items"
|
||||
, infoText = "When merging items the first item in the list acts as the target. Every other items metadata is copied into the target item. If the property is a single value (like correspondent), it is only set if not already present. Tags, custom fields and attachments are added. The items can be reordered using drag&drop."
|
||||
, deleteWarn = "Note that all items but the first one is deleted after a successful merge!"
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.English
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.English tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English tz
|
||||
, submitMerge = "Merge"
|
||||
, submitMergeTitle = "Merge the documents now"
|
||||
, cancelMerge = "Cancel"
|
||||
@ -53,15 +54,15 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, title = "Dokumente zusammenführen"
|
||||
, infoText = "Beim Zusammenführen der Dokumente, wird das erste in der Liste als Zieldokument verwendet. Die Metadaten der anderen Dokumente werden der Reihe nach auf des Zieldokument geschrieben. Metadaten die nur einen Wert haben, werden nur gesetzt falls noch kein Wert existiert. Tags, Benutzerfelder und Anhänge werden zu dem Zieldokument hinzugefügt. Die Einträge können mit Drag&Drop umgeordnet werden."
|
||||
, deleteWarn = "Bitte beachte, dass nach erfolgreicher Zusammenführung alle anderen Dokumente gelöscht werden!"
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.German
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.German tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German tz
|
||||
, submitMerge = "Zusammenführen"
|
||||
, submitMergeTitle = "Dokumente jetzt zusammenführen"
|
||||
, cancelMerge = "Abbrechen"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.OtpSetup exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.DateFormat
|
||||
@ -43,10 +44,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ httpError = Messages.Comp.HttpError.gb
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English tz
|
||||
, errorTitle = "Error"
|
||||
, stateErrorInfoText = "There was a problem determining the current state of your two factor authentication scheme:"
|
||||
, errorGeneratingQR = "Error generating QR Code"
|
||||
@ -70,10 +71,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ httpError = Messages.Comp.HttpError.de
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German tz
|
||||
, errorTitle = "Fehler"
|
||||
, stateErrorInfoText = "Es gab ein Problem, den Status der Zwei-Faktor-Authentifizierung zu ermittlen:"
|
||||
, errorGeneratingQR = "Fehler beim Generieren des QR-Code"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.PeriodicQueryTaskForm exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.BookmarkDropdown
|
||||
@ -49,10 +50,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb tz
|
||||
, channelForm = Messages.Comp.ChannelForm.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, bookmarkDropdown = Messages.Comp.BookmarkDropdown.gb
|
||||
@ -83,10 +84,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de tz
|
||||
, channelForm = Messages.Comp.ChannelForm.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, bookmarkDropdown = Messages.Comp.BookmarkDropdown.de
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.PeriodicQueryTaskManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -38,10 +39,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, notificationForm = Messages.Comp.PeriodicQueryTaskForm.gb
|
||||
, notificationForm = Messages.Comp.PeriodicQueryTaskForm.gb tz
|
||||
, notificationTable = Messages.Comp.PeriodicQueryTaskList.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelType = Messages.Data.ChannelType.gb
|
||||
@ -58,10 +59,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, notificationForm = Messages.Comp.PeriodicQueryTaskForm.de
|
||||
, notificationForm = Messages.Comp.PeriodicQueryTaskForm.de tz
|
||||
, notificationTable = Messages.Comp.PeriodicQueryTaskList.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelType = Messages.Data.ChannelType.de
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.PublishItems exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -43,17 +44,17 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, shareForm = Messages.Comp.ShareForm.gb
|
||||
, shareView = Messages.Comp.ShareView.gb
|
||||
, shareView = Messages.Comp.ShareView.gb tz
|
||||
, shareMail = Messages.Comp.ShareMail.gb
|
||||
, title = "Publish Items"
|
||||
, infoText = "Publishing items creates a cryptic link, which can be used by everyone to see the selected documents. This link cannot be guessed, but is public! It exists for a certain amount of time and can be further protected using a password."
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.English
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.English tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.English tz
|
||||
, submitPublish = "Publish"
|
||||
, submitPublishTitle = "Publish the documents now"
|
||||
, cancelPublish = "Cancel"
|
||||
@ -66,17 +67,17 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, shareForm = Messages.Comp.ShareForm.de
|
||||
, shareView = Messages.Comp.ShareView.de
|
||||
, shareView = Messages.Comp.ShareView.de tz
|
||||
, shareMail = Messages.Comp.ShareMail.de
|
||||
, title = "Dokumente publizieren"
|
||||
, infoText = "Beim Publizieren der Dokumente wird ein kryptischer Link erzeugt, mit welchem jeder die dahinter publizierten Dokumente einsehen kann. Dieser Link kann nicht erraten werden, ist aber öffentlich. Er ist zeitlich begrenzt und kann zusätzlich mit einem Passwort geschützt werden."
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.German
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong Messages.UiLanguage.German tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort Messages.UiLanguage.German tz
|
||||
, submitPublish = "Publizieren"
|
||||
, submitPublishTitle = "Dokumente jetzt publizieren"
|
||||
, cancelPublish = "Abbrechen"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ScanMailboxForm exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CalEventInput
|
||||
@ -80,10 +81,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb tz
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, tagDropdown = Messages.Comp.TagDropdown.gb
|
||||
, reallyDeleteTask = "Really delete this scan mailbox task?"
|
||||
@ -165,10 +166,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de tz
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, tagDropdown = Messages.Comp.TagDropdown.de
|
||||
, reallyDeleteTask = "Den Auftrag wirklich löschen?"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ScanMailboxManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -32,10 +33,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, form = Messages.Comp.ScanMailboxForm.gb
|
||||
, form = Messages.Comp.ScanMailboxForm.gb tb
|
||||
, table = Messages.Comp.ScanMailboxTable.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, newTask = "New Task"
|
||||
@ -47,10 +48,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, form = Messages.Comp.ScanMailboxForm.de
|
||||
, form = Messages.Comp.ScanMailboxForm.de tz
|
||||
, table = Messages.Comp.ScanMailboxTable.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, newTask = "Neuer Auftrag"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.SentMails exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
|
||||
@ -26,25 +27,25 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ from = "From"
|
||||
, date = "Date"
|
||||
, recipients = "Recipients"
|
||||
, subject = "Subject"
|
||||
, sent = "Sent"
|
||||
, sender = "Sender"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ from = "Von"
|
||||
, date = "Datum"
|
||||
, recipients = "Empfänger"
|
||||
, subject = "Betreff"
|
||||
, sent = "Gesendet"
|
||||
, sender = "Absender"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German tz
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ShareManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -44,13 +45,13 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, shareTable = Messages.Comp.ShareTable.gb
|
||||
, shareTable = Messages.Comp.ShareTable.gb tz
|
||||
, shareForm = Messages.Comp.ShareForm.gb
|
||||
, shareView = Messages.Comp.ShareView.gb
|
||||
, shareView = Messages.Comp.ShareView.gb tz
|
||||
, shareMail = Messages.Comp.ShareMail.gb
|
||||
, newShare = "New share"
|
||||
, copyToClipboard = "Copy to clipboard"
|
||||
@ -69,12 +70,12 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, shareTable = Messages.Comp.ShareTable.de
|
||||
, shareTable = Messages.Comp.ShareTable.de tz
|
||||
, shareForm = Messages.Comp.ShareForm.de
|
||||
, shareView = Messages.Comp.ShareView.de
|
||||
, shareView = Messages.Comp.ShareView.de tz
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, shareMail = Messages.Comp.ShareMail.de
|
||||
, newShare = "Neue Freigabe"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ShareTable exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
@ -25,20 +26,20 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English tz
|
||||
, active = "Active"
|
||||
, publishUntil = "Publish Until"
|
||||
, user = "User"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German tz
|
||||
, active = "Aktiv"
|
||||
, publishUntil = "Publiziert bis"
|
||||
, user = "Benutzer"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.ShareView exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
@ -32,10 +33,10 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, date = DF.formatDateLong Messages.UiLanguage.English
|
||||
, date = DF.formatDateLong Messages.UiLanguage.English tz
|
||||
, qrCodeError = "Error generating QR Code."
|
||||
, expiredInfo = "This share has expired."
|
||||
, disabledInfo = "This share is disabled."
|
||||
@ -49,10 +50,10 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, date = DF.formatDateLong Messages.UiLanguage.German
|
||||
, date = DF.formatDateLong Messages.UiLanguage.German tz
|
||||
, qrCodeError = "Fehler beim Erzeugen des QR-Codes."
|
||||
, expiredInfo = "Diese Freigabe ist abgelaufen."
|
||||
, disabledInfo = "Diese Freigae ist nicht aktiv."
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.UserManage exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -38,9 +39,9 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ userTable = Messages.Comp.UserTable.gb
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ userTable = Messages.Comp.UserTable.gb tz
|
||||
, userForm = Messages.Comp.UserForm.gb
|
||||
, basics = Messages.Basics.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
@ -59,9 +60,9 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ userTable = Messages.Comp.UserTable.de
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ userTable = Messages.Comp.UserTable.de tz
|
||||
, userForm = Messages.Comp.UserForm.de
|
||||
, basics = Messages.Basics.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
|
@ -11,6 +11,7 @@ module Messages.Comp.UserTable exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.DateFormat as DF
|
||||
import Messages.UiLanguage
|
||||
@ -28,8 +29,8 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, login = "Login"
|
||||
, state = "State"
|
||||
@ -37,12 +38,12 @@ gb =
|
||||
, email = "E-Mail"
|
||||
, logins = "Logins"
|
||||
, lastLogin = "Last Login"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English tz
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, login = "Benutzername"
|
||||
, state = "Status"
|
||||
@ -50,5 +51,5 @@ de =
|
||||
, email = "E-Mail"
|
||||
, logins = "Anmeldungen"
|
||||
, lastLogin = "Letzte Anmeldung"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German tz
|
||||
}
|
||||
|
@ -11,8 +11,10 @@ module Messages.DateFormat exposing
|
||||
, formatDateShort
|
||||
, formatDateTimeLong
|
||||
, formatDateTimeShort
|
||||
, formatIsoDateTimeUtc
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import DateFormat exposing (Token)
|
||||
import DateFormat.Language as DL
|
||||
import Messages.UiLanguage exposing (UiLanguage(..))
|
||||
@ -20,6 +22,7 @@ import Time
|
||||
exposing
|
||||
( Month(..)
|
||||
, Weekday(..)
|
||||
, Zone
|
||||
)
|
||||
|
||||
|
||||
@ -42,8 +45,8 @@ get lang =
|
||||
de
|
||||
|
||||
|
||||
format : UiLanguage -> (DateTimeMsg -> List Token) -> Int -> String
|
||||
format lang pattern millis =
|
||||
format : UiLanguage -> TimeZone -> (DateTimeMsg -> List Token) -> Int -> String
|
||||
format lang zone pattern millis =
|
||||
let
|
||||
msg =
|
||||
get lang
|
||||
@ -51,27 +54,50 @@ format lang pattern millis =
|
||||
fmt =
|
||||
DateFormat.formatWithLanguage msg.lang (pattern msg)
|
||||
in
|
||||
fmt Time.utc (Time.millisToPosix millis)
|
||||
fmt (Data.TimeZone.toZone zone) (Time.millisToPosix millis)
|
||||
|
||||
|
||||
formatDateTimeLong : UiLanguage -> Int -> String
|
||||
formatDateTimeLong lang millis =
|
||||
format lang .dateTimeLong millis
|
||||
formatDateTimeLong : UiLanguage -> TimeZone -> Int -> String
|
||||
formatDateTimeLong lang zone millis =
|
||||
format lang zone .dateTimeLong millis
|
||||
|
||||
|
||||
formatDateLong : UiLanguage -> Int -> String
|
||||
formatDateLong lang millis =
|
||||
format lang .dateLong millis
|
||||
formatDateLong : UiLanguage -> TimeZone -> Int -> String
|
||||
formatDateLong lang zone millis =
|
||||
format lang zone .dateLong millis
|
||||
|
||||
|
||||
formatDateShort : UiLanguage -> Int -> String
|
||||
formatDateShort lang millis =
|
||||
format lang .dateShort millis
|
||||
formatDateShort : UiLanguage -> TimeZone -> Int -> String
|
||||
formatDateShort lang zone millis =
|
||||
format lang zone .dateShort millis
|
||||
|
||||
|
||||
formatDateTimeShort : UiLanguage -> Int -> String
|
||||
formatDateTimeShort lang millis =
|
||||
format lang .dateTimeShort millis
|
||||
formatDateTimeShort : UiLanguage -> TimeZone -> Int -> String
|
||||
formatDateTimeShort lang zone millis =
|
||||
format lang zone .dateTimeShort millis
|
||||
|
||||
|
||||
isoDateTimeFormatter : List Token
|
||||
isoDateTimeFormatter =
|
||||
[ DateFormat.yearNumber
|
||||
, DateFormat.text "-"
|
||||
, DateFormat.monthFixed
|
||||
, DateFormat.text "-"
|
||||
, DateFormat.dayOfMonthFixed
|
||||
, DateFormat.text "T"
|
||||
, DateFormat.hourMilitaryNumber
|
||||
, DateFormat.text ":"
|
||||
, DateFormat.minuteFixed
|
||||
, DateFormat.text ":"
|
||||
, DateFormat.secondFixed
|
||||
, DateFormat.text "Z"
|
||||
]
|
||||
|
||||
|
||||
formatIsoDateTimeUtc : Int -> String
|
||||
formatIsoDateTimeUtc millis =
|
||||
Time.millisToPosix millis
|
||||
|> DateFormat.format isoDateTimeFormatter Time.utc
|
||||
|
||||
|
||||
|
||||
|
@ -11,6 +11,7 @@ module Messages.Page.CollectiveSettings exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CollectiveSettingsForm
|
||||
@ -39,13 +40,13 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, userManage = Messages.Comp.UserManage.gb
|
||||
, collectiveSettingsForm = Messages.Comp.CollectiveSettingsForm.gb
|
||||
, userManage = Messages.Comp.UserManage.gb tz
|
||||
, collectiveSettingsForm = Messages.Comp.CollectiveSettingsForm.gb tz
|
||||
, sourceManage = Messages.Comp.SourceManage.gb
|
||||
, shareManage = Messages.Comp.ShareManage.gb
|
||||
, shareManage = Messages.Comp.ShareManage.gb tz
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, collectiveSettings = "Collective Settings"
|
||||
, insights = "Insights"
|
||||
@ -59,13 +60,13 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, userManage = Messages.Comp.UserManage.de
|
||||
, collectiveSettingsForm = Messages.Comp.CollectiveSettingsForm.de
|
||||
, userManage = Messages.Comp.UserManage.de tz
|
||||
, collectiveSettingsForm = Messages.Comp.CollectiveSettingsForm.de tz
|
||||
, sourceManage = Messages.Comp.SourceManage.de
|
||||
, shareManage = Messages.Comp.ShareManage.de
|
||||
, shareManage = Messages.Comp.ShareManage.de tz
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, collectiveSettings = "Kollektiveinstellungen"
|
||||
, insights = "Statistiken"
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
module Messages.Page.Dashboard exposing (Texts, de, gb)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.BookmarkChooser
|
||||
import Messages.Comp.DashboardManage
|
||||
@ -55,21 +56,21 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, bookmarkChooser = Messages.Comp.BookmarkChooser.gb
|
||||
, notificationHookManage = Messages.Comp.NotificationHookManage.gb
|
||||
, periodicQueryManage = Messages.Comp.PeriodicQueryTaskManage.gb
|
||||
, periodicQueryManage = Messages.Comp.PeriodicQueryTaskManage.gb tz
|
||||
, sourceManage = Messages.Comp.SourceManage.gb
|
||||
, shareManage = Messages.Comp.ShareManage.gb
|
||||
, shareManage = Messages.Comp.ShareManage.gb tz
|
||||
, organizationManage = Messages.Comp.OrgManage.gb
|
||||
, personManage = Messages.Comp.PersonManage.gb
|
||||
, equipManage = Messages.Comp.EquipmentManage.gb
|
||||
, tagManage = Messages.Comp.TagManage.gb
|
||||
, folderManage = Messages.Comp.FolderManage.gb
|
||||
, folderManage = Messages.Comp.FolderManage.gb tz
|
||||
, uploadForm = Messages.Comp.UploadForm.gb
|
||||
, dashboard = Messages.Comp.DashboardView.gb
|
||||
, dashboard = Messages.Comp.DashboardView.gb tz
|
||||
, dashboardManage = Messages.Comp.DashboardManage.gb
|
||||
, defaultDashboard = Messages.Page.DefaultDashboard.gb
|
||||
, accountScope = Messages.Data.AccountScope.gb
|
||||
@ -86,21 +87,21 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, bookmarkChooser = Messages.Comp.BookmarkChooser.de
|
||||
, notificationHookManage = Messages.Comp.NotificationHookManage.de
|
||||
, periodicQueryManage = Messages.Comp.PeriodicQueryTaskManage.de
|
||||
, periodicQueryManage = Messages.Comp.PeriodicQueryTaskManage.de tz
|
||||
, sourceManage = Messages.Comp.SourceManage.de
|
||||
, shareManage = Messages.Comp.ShareManage.de
|
||||
, shareManage = Messages.Comp.ShareManage.de tz
|
||||
, organizationManage = Messages.Comp.OrgManage.de
|
||||
, personManage = Messages.Comp.PersonManage.de
|
||||
, equipManage = Messages.Comp.EquipmentManage.de
|
||||
, tagManage = Messages.Comp.TagManage.de
|
||||
, folderManage = Messages.Comp.FolderManage.de
|
||||
, folderManage = Messages.Comp.FolderManage.de tz
|
||||
, uploadForm = Messages.Comp.UploadForm.de
|
||||
, dashboard = Messages.Comp.DashboardView.de
|
||||
, dashboard = Messages.Comp.DashboardView.de tz
|
||||
, dashboardManage = Messages.Comp.DashboardManage.de
|
||||
, defaultDashboard = Messages.Page.DefaultDashboard.de
|
||||
, accountScope = Messages.Data.AccountScope.de
|
||||
|
@ -11,6 +11,7 @@ module Messages.Page.ItemDetail exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Comp.ItemDetail
|
||||
import Messages.Comp.ItemDetail.EditForm
|
||||
|
||||
@ -23,19 +24,19 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ itemDetail = Messages.Comp.ItemDetail.gb
|
||||
, editForm = Messages.Comp.ItemDetail.EditForm.gb
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ itemDetail = Messages.Comp.ItemDetail.gb tz
|
||||
, editForm = Messages.Comp.ItemDetail.EditForm.gb tz
|
||||
, editMetadata = "Edit Metadata"
|
||||
, collapseExpand = "Collapse/Expand"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ itemDetail = Messages.Comp.ItemDetail.de
|
||||
, editForm = Messages.Comp.ItemDetail.EditForm.de
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ itemDetail = Messages.Comp.ItemDetail.de tz
|
||||
, editForm = Messages.Comp.ItemDetail.EditForm.de tz
|
||||
, editMetadata = "Metadaten ändern"
|
||||
, collapseExpand = "Aus-/Einklappen"
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Page.ManageData exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.BookmarkManage
|
||||
import Messages.Comp.CustomFieldManage
|
||||
@ -35,30 +36,30 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, tagManage = Messages.Comp.TagManage.gb
|
||||
, equipmentManage = Messages.Comp.EquipmentManage.gb
|
||||
, orgManage = Messages.Comp.OrgManage.gb
|
||||
, personManage = Messages.Comp.PersonManage.gb
|
||||
, folderManage = Messages.Comp.FolderManage.gb
|
||||
, customFieldManage = Messages.Comp.CustomFieldManage.gb
|
||||
, folderManage = Messages.Comp.FolderManage.gb tz
|
||||
, customFieldManage = Messages.Comp.CustomFieldManage.gb tz
|
||||
, bookmarkManage = Messages.Comp.BookmarkManage.gb
|
||||
, manageData = "Manage Data"
|
||||
, bookmarks = "Bookmarks"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, tagManage = Messages.Comp.TagManage.de
|
||||
, equipmentManage = Messages.Comp.EquipmentManage.de
|
||||
, orgManage = Messages.Comp.OrgManage.de
|
||||
, personManage = Messages.Comp.PersonManage.de
|
||||
, folderManage = Messages.Comp.FolderManage.de
|
||||
, customFieldManage = Messages.Comp.CustomFieldManage.de
|
||||
, folderManage = Messages.Comp.FolderManage.de tz
|
||||
, customFieldManage = Messages.Comp.CustomFieldManage.de tz
|
||||
, bookmarkManage = Messages.Comp.BookmarkManage.de
|
||||
, manageData = "Daten verwalten"
|
||||
, bookmarks = "Bookmarks"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Page.Queue exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -44,8 +45,8 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, currentlyRunning = "Currently Running"
|
||||
@ -66,13 +67,13 @@ gb =
|
||||
, retries = "Retries"
|
||||
, changePriority = "Change priority of this job"
|
||||
, prio = "Prio"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.English tz
|
||||
, sidebarTitle = "Processing"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, currentlyRunning = "Wird ausgeführt"
|
||||
@ -93,6 +94,6 @@ de =
|
||||
, retries = "Versuche"
|
||||
, changePriority = "Priorität des Jobs ändern"
|
||||
, prio = "Prio"
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German
|
||||
, formatDateTime = DF.formatDateTimeLong Messages.UiLanguage.German tz
|
||||
, sidebarTitle = "Verarbeitung"
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ module Messages.Page.Search exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.BookmarkQueryManage
|
||||
import Messages.Comp.ItemCardList
|
||||
@ -61,14 +62,14 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, itemCardList = Messages.Comp.ItemCardList.gb
|
||||
, itemCardList = Messages.Comp.ItemCardList.gb tz
|
||||
, searchStatsView = Messages.Comp.SearchStatsView.gb
|
||||
, sideMenu = Messages.Page.SearchSideMenu.gb
|
||||
, itemMerge = Messages.Comp.ItemMerge.gb
|
||||
, publishItems = Messages.Comp.PublishItems.gb
|
||||
, itemMerge = Messages.Comp.ItemMerge.gb tz
|
||||
, publishItems = Messages.Comp.PublishItems.gb tz
|
||||
, bookmarkManage = Messages.Comp.BookmarkQueryManage.gb
|
||||
, contentSearch = "Content search…"
|
||||
, searchInNames = "Search in names…"
|
||||
@ -103,14 +104,14 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, itemCardList = Messages.Comp.ItemCardList.de
|
||||
, itemCardList = Messages.Comp.ItemCardList.de tz
|
||||
, searchStatsView = Messages.Comp.SearchStatsView.de
|
||||
, sideMenu = Messages.Page.SearchSideMenu.de
|
||||
, itemMerge = Messages.Comp.ItemMerge.de
|
||||
, publishItems = Messages.Comp.PublishItems.de
|
||||
, itemMerge = Messages.Comp.ItemMerge.de tz
|
||||
, publishItems = Messages.Comp.PublishItems.de tz
|
||||
, bookmarkManage = Messages.Comp.BookmarkQueryManage.de
|
||||
, contentSearch = "Volltextsuche…"
|
||||
, searchInNames = "Suche in Namen…"
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
module Messages.Page.Share exposing (..)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -32,11 +33,11 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ searchMenu = Messages.Comp.SearchMenu.gb
|
||||
, basics = Messages.Basics.gb
|
||||
, itemCardList = Messages.Comp.ItemCardList.gb
|
||||
, itemCardList = Messages.Comp.ItemCardList.gb tz
|
||||
, passwordForm = Messages.Comp.SharePasswordForm.gb
|
||||
, authFailed = "This share does not exist."
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
@ -50,11 +51,11 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ searchMenu = Messages.Comp.SearchMenu.de
|
||||
, basics = Messages.Basics.de
|
||||
, itemCardList = Messages.Comp.ItemCardList.de
|
||||
, itemCardList = Messages.Comp.ItemCardList.de tz
|
||||
, passwordForm = Messages.Comp.SharePasswordForm.de
|
||||
, authFailed = "Diese Freigabe existiert nicht."
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
|
@ -8,6 +8,7 @@
|
||||
module Messages.Page.ShareDetail exposing (..)
|
||||
|
||||
import Data.Fields exposing (Field)
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
@ -31,13 +32,13 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ passwordForm = Messages.Comp.SharePasswordForm.gb
|
||||
, basics = Messages.Basics.gb
|
||||
, field = Messages.Data.Fields.gb
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong English
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort English
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong English tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort English tz
|
||||
, authFailed = "This share does not exist."
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, tagsAndFields = "Tags & Fields"
|
||||
@ -46,13 +47,13 @@ gb =
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ passwordForm = Messages.Comp.SharePasswordForm.de
|
||||
, basics = Messages.Basics.de
|
||||
, field = Messages.Data.Fields.de
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong German
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort German
|
||||
, formatDateLong = Messages.DateFormat.formatDateLong German tz
|
||||
, formatDateShort = Messages.DateFormat.formatDateShort German tz
|
||||
, authFailed = "Diese Freigabe existiert nicht."
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, tagsAndFields = "Tags & Felder"
|
||||
|
@ -11,6 +11,7 @@ module Messages.Page.UserSettings exposing
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.TimeZone exposing (TimeZone)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.ChangePasswordForm
|
||||
import Messages.Comp.DueItemsTaskManage
|
||||
@ -58,19 +59,19 @@ type alias Texts =
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
gb : TimeZone -> Texts
|
||||
gb tz =
|
||||
{ basics = Messages.Basics.gb
|
||||
, changePasswordForm = Messages.Comp.ChangePasswordForm.gb
|
||||
, uiSettingsManage = Messages.Comp.UiSettingsManage.gb
|
||||
, emailSettingsManage = Messages.Comp.EmailSettingsManage.gb
|
||||
, imapSettingsManage = Messages.Comp.ImapSettingsManage.gb
|
||||
, notificationManage = Messages.Comp.DueItemsTaskManage.gb
|
||||
, scanMailboxManage = Messages.Comp.ScanMailboxManage.gb
|
||||
, notificationManage = Messages.Comp.DueItemsTaskManage.gb tz
|
||||
, scanMailboxManage = Messages.Comp.ScanMailboxManage.gb tz
|
||||
, notificationHookManage = Messages.Comp.NotificationHookManage.gb
|
||||
, periodicQueryTask = Messages.Comp.PeriodicQueryTaskManage.gb
|
||||
, periodicQueryTask = Messages.Comp.PeriodicQueryTaskManage.gb tz
|
||||
, channelManage = Messages.Comp.NotificationChannelManage.gb
|
||||
, otpSetup = Messages.Comp.OtpSetup.gb
|
||||
, otpSetup = Messages.Comp.OtpSetup.gb tz
|
||||
, userSettings = "User Settings"
|
||||
, uiSettings = "UI Settings"
|
||||
, notifications = "Notifications"
|
||||
@ -121,19 +122,19 @@ must be created before.
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
de : TimeZone -> Texts
|
||||
de tz =
|
||||
{ basics = Messages.Basics.de
|
||||
, changePasswordForm = Messages.Comp.ChangePasswordForm.de
|
||||
, uiSettingsManage = Messages.Comp.UiSettingsManage.de
|
||||
, emailSettingsManage = Messages.Comp.EmailSettingsManage.de
|
||||
, imapSettingsManage = Messages.Comp.ImapSettingsManage.de
|
||||
, notificationManage = Messages.Comp.DueItemsTaskManage.de
|
||||
, scanMailboxManage = Messages.Comp.ScanMailboxManage.de
|
||||
, notificationManage = Messages.Comp.DueItemsTaskManage.de tz
|
||||
, scanMailboxManage = Messages.Comp.ScanMailboxManage.de tz
|
||||
, notificationHookManage = Messages.Comp.NotificationHookManage.de
|
||||
, periodicQueryTask = Messages.Comp.PeriodicQueryTaskManage.de
|
||||
, periodicQueryTask = Messages.Comp.PeriodicQueryTaskManage.de tz
|
||||
, channelManage = Messages.Comp.NotificationChannelManage.de
|
||||
, otpSetup = Messages.Comp.OtpSetup.de
|
||||
, otpSetup = Messages.Comp.OtpSetup.de tz
|
||||
, userSettings = "Benutzereinstellung"
|
||||
, uiSettings = "Oberfläche"
|
||||
, notifications = "Benachrichtigungen"
|
||||
|
@ -12,13 +12,14 @@ import Comp.CollectiveSettingsForm
|
||||
import Comp.ShareManage
|
||||
import Comp.SourceManage
|
||||
import Comp.UserManage
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.Environment as Env
|
||||
import Data.Flags
|
||||
import Messages.Page.CollectiveSettings exposing (Texts)
|
||||
import Page.CollectiveSettings.Data exposing (..)
|
||||
|
||||
|
||||
update : Texts -> Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
update texts flags msg model =
|
||||
update : Texts -> Env.Update -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
update texts env msg model =
|
||||
case msg of
|
||||
SetTab t ->
|
||||
let
|
||||
@ -27,45 +28,45 @@ update texts flags msg model =
|
||||
in
|
||||
case t of
|
||||
SourceTab ->
|
||||
update texts flags (SourceMsg Comp.SourceManage.LoadSources) m
|
||||
update texts env (SourceMsg Comp.SourceManage.LoadSources) m
|
||||
|
||||
UserTab ->
|
||||
update texts flags (UserMsg Comp.UserManage.LoadUsers) m
|
||||
update texts env (UserMsg Comp.UserManage.LoadUsers) m
|
||||
|
||||
InsightsTab ->
|
||||
update texts flags Init m
|
||||
update texts env Init m
|
||||
|
||||
SettingsTab ->
|
||||
update texts flags Init m
|
||||
update texts env Init m
|
||||
|
||||
ShareTab ->
|
||||
update texts flags (ShareMsg Comp.ShareManage.loadShares) m
|
||||
update texts env (ShareMsg Comp.ShareManage.loadShares) m
|
||||
|
||||
SourceMsg m ->
|
||||
let
|
||||
( m2, c2 ) =
|
||||
Comp.SourceManage.update flags m model.sourceModel
|
||||
Comp.SourceManage.update env.flags m model.sourceModel
|
||||
in
|
||||
( { model | sourceModel = m2 }, Cmd.map SourceMsg c2, Sub.none )
|
||||
|
||||
ShareMsg lm ->
|
||||
let
|
||||
( sm, sc, ss ) =
|
||||
Comp.ShareManage.update texts.shareManage flags lm model.shareModel
|
||||
Comp.ShareManage.update texts.shareManage env.flags lm model.shareModel
|
||||
in
|
||||
( { model | shareModel = sm }, Cmd.map ShareMsg sc, Sub.map ShareMsg ss )
|
||||
|
||||
UserMsg m ->
|
||||
let
|
||||
( m2, c2 ) =
|
||||
Comp.UserManage.update flags m model.userModel
|
||||
Comp.UserManage.update env.flags m model.userModel
|
||||
in
|
||||
( { model | userModel = m2 }, Cmd.map UserMsg c2, Sub.none )
|
||||
|
||||
SettingsFormMsg m ->
|
||||
let
|
||||
( m2, c2, msett ) =
|
||||
Comp.CollectiveSettingsForm.update flags m model.settingsModel
|
||||
Comp.CollectiveSettingsForm.update env.flags env.settings.timeZone m model.settingsModel
|
||||
|
||||
cmd =
|
||||
case msett of
|
||||
@ -73,7 +74,7 @@ update texts flags msg model =
|
||||
Cmd.none
|
||||
|
||||
Just sett ->
|
||||
Api.setCollectiveSettings flags sett SubmitResp
|
||||
Api.setCollectiveSettings env.flags sett SubmitResp
|
||||
in
|
||||
( { model | settingsModel = m2, formState = InitialState }
|
||||
, Cmd.batch [ cmd, Cmd.map SettingsFormMsg c2 ]
|
||||
@ -83,8 +84,8 @@ update texts flags msg model =
|
||||
Init ->
|
||||
( { model | formState = InitialState }
|
||||
, Cmd.batch
|
||||
[ Api.getInsights flags GetInsightsResp
|
||||
, Api.getCollectiveSettings flags CollectiveSettingsResp
|
||||
[ Api.getInsights env.flags GetInsightsResp
|
||||
, Api.getCollectiveSettings env.flags CollectiveSettingsResp
|
||||
]
|
||||
, Sub.none
|
||||
)
|
||||
@ -98,7 +99,7 @@ update texts flags msg model =
|
||||
CollectiveSettingsResp (Ok data) ->
|
||||
let
|
||||
( cm, cc ) =
|
||||
Comp.CollectiveSettingsForm.init flags data
|
||||
Comp.CollectiveSettingsForm.init env.flags data
|
||||
in
|
||||
( { model | settingsModel = cm }
|
||||
, Cmd.map SettingsFormMsg cc
|
||||
|
@ -41,7 +41,7 @@ getDefaultDashboard flags settings =
|
||||
Data.UiSettings.getUiLanguage flags settings Messages.UiLanguage.English
|
||||
|
||||
texts =
|
||||
Messages.get lang
|
||||
Messages.get lang settings.timeZone
|
||||
in
|
||||
value texts.dashboard.defaultDashboard
|
||||
|
||||
|
@ -270,7 +270,7 @@ update texts settings navKey flags msg model =
|
||||
PeriodicQuery pqm ->
|
||||
let
|
||||
( pqm_, pqc, pqs ) =
|
||||
Comp.PeriodicQueryTaskManage.update flags lm pqm
|
||||
Comp.PeriodicQueryTaskManage.update flags settings.timeZone lm pqm
|
||||
in
|
||||
( { model | content = PeriodicQuery pqm_ }
|
||||
, Cmd.map PeriodicQueryMsg pqc
|
||||
|
@ -20,7 +20,6 @@ import Html.Events exposing (onClick)
|
||||
import Messages.Page.Queue exposing (Texts)
|
||||
import Page.Queue.Data exposing (..)
|
||||
import Styles as S
|
||||
import Util.Time exposing (formatIsoDateTime)
|
||||
|
||||
|
||||
viewSidebar : Texts -> Bool -> Flags -> UiSettings -> Model -> Html Msg
|
||||
@ -91,7 +90,7 @@ viewSidebar texts visible _ _ model =
|
||||
|
||||
|
||||
viewContent : Texts -> Flags -> UiSettings -> Model -> Html Msg
|
||||
viewContent texts _ _ model =
|
||||
viewContent texts _ settings model =
|
||||
let
|
||||
gridStyle =
|
||||
"grid gap-4 grid-cols-1 md:grid-cols-2"
|
||||
@ -109,7 +108,7 @@ viewContent texts _ _ model =
|
||||
]
|
||||
[ case model.showLog of
|
||||
Just job ->
|
||||
renderJobLog job
|
||||
renderJobLog texts settings job
|
||||
|
||||
Nothing ->
|
||||
span [ class "hidden" ] []
|
||||
@ -120,7 +119,7 @@ viewContent texts _ _ model =
|
||||
|
||||
else
|
||||
div [ class "flex flex-col space-y-2" ]
|
||||
(List.map (renderProgressCard texts model) model.state.progress)
|
||||
(List.map (renderProgressCard texts settings model) model.state.progress)
|
||||
|
||||
QueueAll ->
|
||||
if List.isEmpty model.state.completed && List.isEmpty model.state.completed then
|
||||
@ -187,8 +186,8 @@ filterJobDetails list state =
|
||||
List.filter isState list
|
||||
|
||||
|
||||
renderJobLog : JobDetail -> Html Msg
|
||||
renderJobLog job =
|
||||
renderJobLog : Texts -> UiSettings -> JobDetail -> Html Msg
|
||||
renderJobLog texts settings job =
|
||||
div
|
||||
[ class " absolute top-12 left-0 w-full h-full-12 z-40 flex flex-col items-center px-4 py-2 "
|
||||
, class "bg-white bg-opacity-80 dark:bg-black dark:bg-slate-900 dark:bg-opacity-90"
|
||||
@ -209,13 +208,13 @@ renderJobLog job =
|
||||
]
|
||||
]
|
||||
, div [ class styleJobLog ]
|
||||
(List.map renderLogLine job.logs)
|
||||
(List.map (renderLogLine texts settings) job.logs)
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
renderProgressCard : Texts -> Model -> JobDetail -> Html Msg
|
||||
renderProgressCard texts model job =
|
||||
renderProgressCard : Texts -> UiSettings -> Model -> JobDetail -> Html Msg
|
||||
renderProgressCard texts settings model job =
|
||||
div [ class (S.box ++ "px-2 flex flex-col") ]
|
||||
[ Comp.Progress.topAttachedIndicating job.progress
|
||||
, Html.map (DimmerMsg job)
|
||||
@ -248,7 +247,7 @@ renderProgressCard texts model job =
|
||||
]
|
||||
, div [ class "py-2", id "joblog" ]
|
||||
[ div [ class styleJobLog ]
|
||||
(List.map renderLogLine job.logs)
|
||||
(List.map (renderLogLine texts settings) job.logs)
|
||||
]
|
||||
, div [ class "py-2 flex flex-row justify-end" ]
|
||||
[ button [ class S.secondaryButton, onClick (RequestCancelJob job) ]
|
||||
@ -263,8 +262,8 @@ styleJobLog =
|
||||
"bg-gray-900 text-xs leading-5 px-2 py-1 font-mono text-gray-100 overflow-auto max-h-96 rounded"
|
||||
|
||||
|
||||
renderLogLine : JobLogEvent -> Html Msg
|
||||
renderLogLine log =
|
||||
renderLogLine : Texts -> UiSettings -> JobLogEvent -> Html Msg
|
||||
renderLogLine texts settings log =
|
||||
let
|
||||
lineStyle =
|
||||
case String.toLower log.level of
|
||||
@ -284,7 +283,7 @@ renderLogLine log =
|
||||
""
|
||||
in
|
||||
span [ class lineStyle ]
|
||||
[ formatIsoDateTime log.time |> text
|
||||
[ texts.formatDateTime log.time |> text
|
||||
, text ": "
|
||||
, text log.message
|
||||
, br [] []
|
||||
|
@ -161,7 +161,7 @@ update flags settings msg model =
|
||||
NotificationMsg lm ->
|
||||
let
|
||||
( m2, c2 ) =
|
||||
Comp.DueItemsTaskManage.update flags lm model.notificationModel
|
||||
Comp.DueItemsTaskManage.update flags settings.timeZone lm model.notificationModel
|
||||
in
|
||||
{ model = { model | notificationModel = m2 }
|
||||
, cmd = Cmd.map NotificationMsg c2
|
||||
@ -172,7 +172,7 @@ update flags settings msg model =
|
||||
ScanMailboxMsg lm ->
|
||||
let
|
||||
( m2, c2 ) =
|
||||
Comp.ScanMailboxManage.update flags lm model.scanMailboxModel
|
||||
Comp.ScanMailboxManage.update flags settings.timeZone lm model.scanMailboxModel
|
||||
in
|
||||
{ model = { model | scanMailboxModel = m2 }
|
||||
, cmd = Cmd.map ScanMailboxMsg c2
|
||||
@ -227,7 +227,7 @@ update flags settings msg model =
|
||||
PeriodicQueryMsg lm ->
|
||||
let
|
||||
( pqm, pqc, pqs ) =
|
||||
Comp.PeriodicQueryTaskManage.update flags lm model.periodicQueryModel
|
||||
Comp.PeriodicQueryTaskManage.update flags settings.timeZone lm model.periodicQueryModel
|
||||
in
|
||||
{ model = { model | periodicQueryModel = pqm }
|
||||
, cmd = Cmd.map PeriodicQueryMsg pqc
|
||||
|
@ -1,39 +0,0 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Util.Time exposing (formatIsoDateTime)
|
||||
|
||||
import DateFormat
|
||||
import Time exposing (Posix, Zone, utc)
|
||||
|
||||
|
||||
isoDateTimeFormatter : Zone -> Posix -> String
|
||||
isoDateTimeFormatter =
|
||||
DateFormat.format
|
||||
[ DateFormat.yearNumber
|
||||
, DateFormat.text "-"
|
||||
, DateFormat.monthFixed
|
||||
, DateFormat.text "-"
|
||||
, DateFormat.dayOfMonthFixed
|
||||
, DateFormat.text "T"
|
||||
, DateFormat.hourMilitaryNumber
|
||||
, DateFormat.text ":"
|
||||
, DateFormat.minuteFixed
|
||||
, DateFormat.text ":"
|
||||
, DateFormat.secondFixed
|
||||
]
|
||||
|
||||
|
||||
timeZone : Zone
|
||||
timeZone =
|
||||
utc
|
||||
|
||||
|
||||
formatIsoDateTime : Int -> String
|
||||
formatIsoDateTime millis =
|
||||
Time.millisToPosix millis
|
||||
|> isoDateTimeFormatter timeZone
|
@ -48,7 +48,7 @@ let
|
||||
wakeup-period = "10 minutes";
|
||||
};
|
||||
house-keeping = {
|
||||
schedule = "Sun *-*-* 00:00:00";
|
||||
schedule = "Sun *-*-* 00:00:00 UTC";
|
||||
cleanup-invites = {
|
||||
enabled = true;
|
||||
older-than = "30 days";
|
||||
@ -70,7 +70,7 @@ let
|
||||
update-check = {
|
||||
enabled = false;
|
||||
test-run = false;
|
||||
schedule = "Sun *-*-* 00:00:00";
|
||||
schedule = "Sun *-*-* 00:00:00 UTC";
|
||||
sender-account = "";
|
||||
smtp-id = "";
|
||||
recipients = [];
|
||||
|
@ -114,7 +114,7 @@ docspell.joex {
|
||||
retry-delay = "10 seconds"
|
||||
}
|
||||
house-keeping {
|
||||
schedule = "*-*-* 01:00:00"
|
||||
schedule = "*-*-* 01:00:00 UTC"
|
||||
cleanup-invites = {
|
||||
older-than = "10 days"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user