mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Add support for more generic notification
This is a start to have different kinds of notifications. It is possible to be notified via e-mail, matrix or gotify. It also extends the current "periodic query" for due items by allowing notification over different channels. A "generic periodic query" variant is added as well.
This commit is contained in:
47
modules/webapp/src/main/elm/Messages/Comp/ChannelForm.elm
Normal file
47
modules/webapp/src/main/elm/Messages/Comp/ChannelForm.elm
Normal file
@ -0,0 +1,47 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.ChannelForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Messages.Basics
|
||||
import Messages.Comp.NotificationGotifyForm
|
||||
import Messages.Comp.NotificationHttpForm
|
||||
import Messages.Comp.NotificationMailForm
|
||||
import Messages.Comp.NotificationMatrixForm
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, matrixForm : Messages.Comp.NotificationMatrixForm.Texts
|
||||
, gotifyForm : Messages.Comp.NotificationGotifyForm.Texts
|
||||
, mailForm : Messages.Comp.NotificationMailForm.Texts
|
||||
, httpForm : Messages.Comp.NotificationHttpForm.Texts
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, matrixForm = Messages.Comp.NotificationMatrixForm.gb
|
||||
, gotifyForm = Messages.Comp.NotificationGotifyForm.gb
|
||||
, mailForm = Messages.Comp.NotificationMailForm.gb
|
||||
, httpForm = Messages.Comp.NotificationHttpForm.gb
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, matrixForm = Messages.Comp.NotificationMatrixForm.de
|
||||
, gotifyForm = Messages.Comp.NotificationGotifyForm.de
|
||||
, mailForm = Messages.Comp.NotificationMailForm.de
|
||||
, httpForm = Messages.Comp.NotificationHttpForm.de
|
||||
}
|
@ -5,7 +5,7 @@
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationForm exposing
|
||||
module Messages.Comp.DueItemsTaskForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
@ -14,25 +14,23 @@ module Messages.Comp.NotificationForm exposing
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CalEventInput
|
||||
import Messages.Comp.ChannelForm
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.Data.ChannelType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, calEventInput : Messages.Comp.CalEventInput.Texts
|
||||
, httpError : Http.Error -> String
|
||||
, channelForm : Messages.Comp.ChannelForm.Texts
|
||||
, reallyDeleteTask : String
|
||||
, startOnce : String
|
||||
, startTaskNow : String
|
||||
, selectConnection : String
|
||||
, deleteThisTask : String
|
||||
, enableDisable : String
|
||||
, summary : String
|
||||
, summaryInfo : String
|
||||
, sendVia : String
|
||||
, sendViaInfo : String
|
||||
, recipients : String
|
||||
, recipientsInfo : String
|
||||
, tagsInclude : String
|
||||
, tagsIncludeInfo : String
|
||||
, tagsExclude : String
|
||||
@ -48,6 +46,9 @@ type alias Texts =
|
||||
, invalidCalEvent : String
|
||||
, remindDaysRequired : String
|
||||
, recipientsRequired : String
|
||||
, queryLabel : String
|
||||
, channelRequired : String
|
||||
, channelHeader : Messages.Data.ChannelType.Texts
|
||||
}
|
||||
|
||||
|
||||
@ -56,18 +57,14 @@ gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelForm = Messages.Comp.ChannelForm.gb
|
||||
, reallyDeleteTask = "Really delete this notification task?"
|
||||
, startOnce = "Start Once"
|
||||
, startTaskNow = "Start this task now"
|
||||
, selectConnection = "Select connection..."
|
||||
, deleteThisTask = "Delete this task"
|
||||
, enableDisable = "Enable or disable this task."
|
||||
, summary = "Summary"
|
||||
, summaryInfo = "Some human readable name, only for displaying"
|
||||
, sendVia = "Send via"
|
||||
, sendViaInfo = "The SMTP connection to use when sending notification mails."
|
||||
, recipients = "Recipient(s)"
|
||||
, recipientsInfo = "One or more mail addresses, confirm each by pressing 'Return'."
|
||||
, tagsInclude = "Tags Include (and)"
|
||||
, tagsIncludeInfo = "Items must have all the tags specified here."
|
||||
, tagsExclude = "Tags Exclude (or)"
|
||||
@ -87,6 +84,9 @@ gb =
|
||||
, invalidCalEvent = "The calendar event is not valid."
|
||||
, remindDaysRequired = "Remind-Days is required."
|
||||
, recipientsRequired = "At least one recipient is required."
|
||||
, queryLabel = "Query"
|
||||
, channelRequired = "A valid channel must be given."
|
||||
, channelHeader = \ct -> "Connection details for " ++ Messages.Data.ChannelType.gb ct
|
||||
}
|
||||
|
||||
|
||||
@ -95,18 +95,14 @@ de =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelForm = Messages.Comp.ChannelForm.gb
|
||||
, reallyDeleteTask = "Diesen Benachrichtigungsauftrag wirklich löschen?"
|
||||
, startOnce = "Jetzt starten"
|
||||
, startTaskNow = "Starte den Auftrag sofort"
|
||||
, selectConnection = "Verbindung auswählen…"
|
||||
, deleteThisTask = "Den Auftrag löschen"
|
||||
, enableDisable = "Auftrag aktivieren oder deaktivieren"
|
||||
, summary = "Kurzbeschreibung"
|
||||
, summaryInfo = "Eine kurze lesbare Zusammenfassung, nur für die Anzeige"
|
||||
, sendVia = "Senden via"
|
||||
, sendViaInfo = "Die SMTP-Verbindung, die zum Senden der Benachrichtigungs-E-Mails verwendet werden soll."
|
||||
, recipients = "Empfänger"
|
||||
, recipientsInfo = "Eine oder mehrere E-Mail-Adressen, jede mit 'Eingabe' bestätigen."
|
||||
, tagsInclude = "Tags verknüpft (&&)"
|
||||
, tagsIncludeInfo = "Dokumente müssen alle diese Tags haben."
|
||||
, tagsExclude = "Tags nicht verknüpft (||)"
|
||||
@ -126,4 +122,7 @@ de =
|
||||
, invalidCalEvent = "Das Kalenderereignis ist nicht gültig."
|
||||
, remindDaysRequired = "'Fällig in Tagen' ist erforderlich."
|
||||
, recipientsRequired = "Mindestens ein Empfänger muss angegeben werden."
|
||||
, queryLabel = "Abfrage"
|
||||
, channelRequired = "Ein Versandkanal muss angegeben werden."
|
||||
, channelHeader = \ct -> "Details für " ++ Messages.Data.ChannelType.de ct
|
||||
}
|
@ -5,7 +5,7 @@
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationTable exposing
|
||||
module Messages.Comp.DueItemsTaskList exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
@ -5,7 +5,7 @@
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationManage exposing
|
||||
module Messages.Comp.DueItemsTaskManage exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
@ -13,16 +13,18 @@ module Messages.Comp.NotificationManage exposing
|
||||
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.DueItemsTaskForm
|
||||
import Messages.Comp.DueItemsTaskList
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.Comp.NotificationForm
|
||||
import Messages.Comp.NotificationTable
|
||||
import Messages.Data.ChannelType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, notificationForm : Messages.Comp.NotificationForm.Texts
|
||||
, notificationTable : Messages.Comp.NotificationTable.Texts
|
||||
, notificationForm : Messages.Comp.DueItemsTaskForm.Texts
|
||||
, notificationTable : Messages.Comp.DueItemsTaskList.Texts
|
||||
, httpError : Http.Error -> String
|
||||
, channelType : Messages.Data.ChannelType.Texts
|
||||
, newTask : String
|
||||
, createNewTask : String
|
||||
, taskCreated : String
|
||||
@ -35,9 +37,10 @@ type alias Texts =
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, notificationForm = Messages.Comp.NotificationForm.gb
|
||||
, notificationTable = Messages.Comp.NotificationTable.gb
|
||||
, notificationForm = Messages.Comp.DueItemsTaskForm.gb
|
||||
, notificationTable = Messages.Comp.DueItemsTaskList.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelType = Messages.Data.ChannelType.gb
|
||||
, newTask = "New Task"
|
||||
, createNewTask = "Create a new notification task"
|
||||
, taskCreated = "Task created."
|
||||
@ -50,9 +53,10 @@ gb =
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, notificationForm = Messages.Comp.NotificationForm.de
|
||||
, notificationTable = Messages.Comp.NotificationTable.de
|
||||
, notificationForm = Messages.Comp.DueItemsTaskForm.de
|
||||
, notificationTable = Messages.Comp.DueItemsTaskList.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelType = Messages.Data.ChannelType.de
|
||||
, newTask = "Neuer Auftrag"
|
||||
, createNewTask = "Erstelle einen neuen Benachrichtigungsauftrag"
|
||||
, taskCreated = "Auftrag erstellt."
|
40
modules/webapp/src/main/elm/Messages/Comp/EventSample.elm
Normal file
40
modules/webapp/src/main/elm/Messages/Comp/EventSample.elm
Normal file
@ -0,0 +1,40 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.EventSample exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.EventType exposing (EventType)
|
||||
import Http
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.Data.EventType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ eventType : EventType -> Messages.Data.EventType.Texts
|
||||
, httpError : Http.Error -> String
|
||||
, selectEvent : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ eventType = Messages.Data.EventType.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, selectEvent = "Select event…"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ eventType = Messages.Data.EventType.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, selectEvent = "Ereignis wählen…"
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationGotifyForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Messages.Basics
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, gotifyUrl : String
|
||||
, appKey : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, gotifyUrl = "Gotify URL"
|
||||
, appKey = "App Key"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, gotifyUrl = "Gotify URL"
|
||||
, appKey = "App Key"
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationHookForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.EventType exposing (EventType)
|
||||
import Messages.Basics
|
||||
import Messages.Comp.ChannelForm
|
||||
import Messages.Comp.EventSample
|
||||
import Messages.Data.ChannelType
|
||||
import Messages.Data.EventType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, channelForm : Messages.Comp.ChannelForm.Texts
|
||||
, eventType : EventType -> Messages.Data.EventType.Texts
|
||||
, eventSample : Messages.Comp.EventSample.Texts
|
||||
, channelHeader : Messages.Data.ChannelType.Texts
|
||||
, enableDisable : String
|
||||
, eventsInfo : String
|
||||
, selectEvents : String
|
||||
, events : String
|
||||
, samplePayload : String
|
||||
, toggleAllEvents : String
|
||||
, eventFilter : String
|
||||
, eventFilterInfo : String
|
||||
, eventFilterClickForHelp : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, channelForm = Messages.Comp.ChannelForm.gb
|
||||
, eventType = Messages.Data.EventType.gb
|
||||
, eventSample = Messages.Comp.EventSample.gb
|
||||
, channelHeader = Messages.Data.ChannelType.gb
|
||||
, enableDisable = "Enabled / Disabled"
|
||||
, eventsInfo = "Select events that trigger this webhook"
|
||||
, selectEvents = "Select…"
|
||||
, events = "Events"
|
||||
, samplePayload = "Sample Payload"
|
||||
, toggleAllEvents = "Notify on all events"
|
||||
, eventFilter = "Event Filter Expression"
|
||||
, eventFilterInfo = "Optional specify an expression to filter events based on their JSON structure."
|
||||
, eventFilterClickForHelp = "Click here for help"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, channelForm = Messages.Comp.ChannelForm.de
|
||||
, eventType = Messages.Data.EventType.de
|
||||
, eventSample = Messages.Comp.EventSample.de
|
||||
, channelHeader = Messages.Data.ChannelType.de
|
||||
, enableDisable = "Aktiviert / Deaktivert"
|
||||
, eventsInfo = "Wähle die Ereignisse, die diesen webhook auslösen"
|
||||
, selectEvents = "Wähle…"
|
||||
, events = "Ereignisse"
|
||||
, samplePayload = "Beispieldaten"
|
||||
, toggleAllEvents = "Bei allen Ereignissen"
|
||||
, eventFilter = "Ereignisfilter"
|
||||
, eventFilterInfo = "Optionaler Ausdruck zum filtern von Ereignissen auf Basis ihrer JSON Struktur."
|
||||
, eventFilterClickForHelp = "Klicke für Hilfe"
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationHookManage exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Html exposing (Html, text)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.Comp.NotificationHookForm
|
||||
import Messages.Comp.NotificationHookTable
|
||||
import Messages.Data.ChannelType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, notificationForm : Messages.Comp.NotificationHookForm.Texts
|
||||
, notificationTable : Messages.Comp.NotificationHookTable.Texts
|
||||
, httpError : Http.Error -> String
|
||||
, channelType : Messages.Data.ChannelType.Texts
|
||||
, newHook : String
|
||||
, matrix : String
|
||||
, gotify : String
|
||||
, email : String
|
||||
, httpRequest : String
|
||||
, hookCreated : String
|
||||
, hookUpdated : String
|
||||
, hookStarted : String
|
||||
, hookDeleted : String
|
||||
, deleteThisHook : String
|
||||
, reallyDeleteHook : String
|
||||
, formInvalid : String
|
||||
, invalidJsonFilter : String -> String
|
||||
, integrate : String
|
||||
, intoDocspell : String
|
||||
, postRequestInfo : String
|
||||
, updateWebhook : String
|
||||
, addWebhook : String
|
||||
, notifyEmailInfo : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, notificationForm = Messages.Comp.NotificationHookForm.gb
|
||||
, notificationTable = Messages.Comp.NotificationHookTable.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelType = Messages.Data.ChannelType.gb
|
||||
, newHook = "New Webhook"
|
||||
, matrix = "Matrix"
|
||||
, gotify = "Gotify"
|
||||
, email = "E-Mail"
|
||||
, httpRequest = "HTTP Request"
|
||||
, hookCreated = "Webhook created"
|
||||
, hookUpdated = "Webhook updated"
|
||||
, hookStarted = "Webhook executed"
|
||||
, hookDeleted = "Webhook deleted"
|
||||
, deleteThisHook = "Delete this webhook"
|
||||
, reallyDeleteHook = "Really delete this webhook?"
|
||||
, formInvalid = "Please fill in all required fields"
|
||||
, invalidJsonFilter = \m -> "Event filter invalid: " ++ m
|
||||
, integrate = "Integrate"
|
||||
, intoDocspell = "into Docspell"
|
||||
, postRequestInfo = "Docspell will send POST requests with JSON payload."
|
||||
, updateWebhook = "Update webhook"
|
||||
, addWebhook = "Add new webhook"
|
||||
, notifyEmailInfo = "Get notified via e-mail."
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, notificationForm = Messages.Comp.NotificationHookForm.de
|
||||
, notificationTable = Messages.Comp.NotificationHookTable.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelType = Messages.Data.ChannelType.de
|
||||
, newHook = "Neuer Webhook"
|
||||
, matrix = "Matrix"
|
||||
, gotify = "Gotify"
|
||||
, email = "E-Mail"
|
||||
, httpRequest = "HTTP Request"
|
||||
, hookCreated = "Webhook erstellt"
|
||||
, hookUpdated = "Webhook aktualisiert"
|
||||
, hookStarted = "Webhook ausgeführt"
|
||||
, hookDeleted = "Webhook gelöscht"
|
||||
, deleteThisHook = "Diesen Webhook löschen"
|
||||
, reallyDeleteHook = "Den webhook wirklich löschen?"
|
||||
, formInvalid = "Bitte alle erforderlichen Felder ausfüllen"
|
||||
, invalidJsonFilter = \m -> "Ereignisfilter ist falsch: " ++ m
|
||||
, integrate = "Integriere"
|
||||
, intoDocspell = "in Docspell"
|
||||
, postRequestInfo = "Docspell wird JSON POST requests senden."
|
||||
, updateWebhook = "Webhook aktualisieren"
|
||||
, addWebhook = "Neuen Webhook hinzufügen"
|
||||
, notifyEmailInfo = "Werde per E-Mail benachrichtigt."
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationHookTable exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.EventType exposing (EventType)
|
||||
import Messages.Basics
|
||||
import Messages.Data.EventType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, eventType : EventType -> Messages.Data.EventType.Texts
|
||||
, enabled : String
|
||||
, channel : String
|
||||
, events : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, eventType = Messages.Data.EventType.gb
|
||||
, enabled = "Enabled"
|
||||
, channel = "Channel"
|
||||
, events = "Events"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, eventType = Messages.Data.EventType.de
|
||||
, enabled = "Aktiv"
|
||||
, channel = "Kanal"
|
||||
, events = "Ereignisse"
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationHttpForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Messages.Basics
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, httpUrl : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, httpUrl = "Http URL"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, httpUrl = "URL"
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationMailForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Messages.Basics
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, selectConnection : String
|
||||
, sendVia : String
|
||||
, sendViaInfo : String
|
||||
, recipients : String
|
||||
, recipientsInfo : String
|
||||
, recipientsRequired : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, selectConnection = "Select connection..."
|
||||
, sendVia = "Send via"
|
||||
, sendViaInfo = "The SMTP connection to use when sending notification mails."
|
||||
, recipients = "Recipient(s)"
|
||||
, recipientsInfo = "One or more mail addresses, confirm each by pressing 'Return'."
|
||||
, recipientsRequired = "At least one recipient is required."
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, selectConnection = "Verbindung auswählen…"
|
||||
, sendVia = "Senden via"
|
||||
, sendViaInfo = "Die SMTP-Verbindung, die zum Senden der Benachrichtigungs-E-Mails verwendet werden soll."
|
||||
, recipients = "Empfänger"
|
||||
, recipientsInfo = "Eine oder mehrere E-Mail-Adressen, jede mit 'Eingabe' bestätigen."
|
||||
, recipientsRequired = "Mindestens ein Empfänger muss angegeben werden."
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.NotificationMatrixForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Messages.Basics
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, homeServer : String
|
||||
, roomId : String
|
||||
, accessKey : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, homeServer = "Homeserver URL"
|
||||
, roomId = "Room ID"
|
||||
, accessKey = "Access Token"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, homeServer = "Homeserver URL"
|
||||
, roomId = "Room ID"
|
||||
, accessKey = "Access Token"
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.PeriodicQueryTaskForm exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Data.ChannelType exposing (ChannelType)
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.CalEventInput
|
||||
import Messages.Comp.ChannelForm
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.Data.ChannelType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, calEventInput : Messages.Comp.CalEventInput.Texts
|
||||
, channelForm : Messages.Comp.ChannelForm.Texts
|
||||
, httpError : Http.Error -> String
|
||||
, reallyDeleteTask : String
|
||||
, startOnce : String
|
||||
, startTaskNow : String
|
||||
, deleteThisTask : String
|
||||
, enableDisable : String
|
||||
, summary : String
|
||||
, summaryInfo : String
|
||||
, schedule : String
|
||||
, scheduleClickForHelp : String
|
||||
, scheduleInfo : String
|
||||
, queryLabel : String
|
||||
, invalidCalEvent : String
|
||||
, channelRequired : String
|
||||
, queryStringRequired : String
|
||||
, channelHeader : ChannelType -> String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, calEventInput = Messages.Comp.CalEventInput.gb
|
||||
, channelForm = Messages.Comp.ChannelForm.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, reallyDeleteTask = "Really delete this notification task?"
|
||||
, startOnce = "Start Once"
|
||||
, startTaskNow = "Start this task now"
|
||||
, deleteThisTask = "Delete this task"
|
||||
, enableDisable = "Enable or disable this task."
|
||||
, summary = "Summary"
|
||||
, summaryInfo = "Some human readable name, only for displaying"
|
||||
, schedule = "Schedule"
|
||||
, scheduleClickForHelp = "Click here for help"
|
||||
, scheduleInfo =
|
||||
"Specify how often and when this task should run. "
|
||||
++ "Use English 3-letter weekdays. Either a single value, "
|
||||
++ "a list (ex. 1,2,3), a range (ex. 1..3) or a '*' (meaning all) "
|
||||
++ "is allowed for each part."
|
||||
, invalidCalEvent = "The calendar event is not valid."
|
||||
, queryLabel = "Query"
|
||||
, channelRequired = "A valid channel must be given."
|
||||
, queryStringRequired = "A query string must be supplied"
|
||||
, channelHeader = \ct -> "Connection details for " ++ Messages.Data.ChannelType.gb ct
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, calEventInput = Messages.Comp.CalEventInput.de
|
||||
, channelForm = Messages.Comp.ChannelForm.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, reallyDeleteTask = "Diesen Benachrichtigungsauftrag wirklich löschen?"
|
||||
, startOnce = "Jetzt starten"
|
||||
, startTaskNow = "Starte den Auftrag sofort"
|
||||
, deleteThisTask = "Den Auftrag löschen"
|
||||
, enableDisable = "Auftrag aktivieren oder deaktivieren"
|
||||
, summary = "Kurzbeschreibung"
|
||||
, summaryInfo = "Eine kurze lesbare Zusammenfassung, nur für die Anzeige"
|
||||
, schedule = "Zeitplan"
|
||||
, scheduleClickForHelp = "Klicke für Hilfe"
|
||||
, scheduleInfo =
|
||||
"Gib an, wie oft und wann der Auftrag laufen soll. "
|
||||
++ "Verwende englische 3-Buchstaben Wochentage. Entweder ein einzelner Wert, "
|
||||
++ "eine Liste (wie `1,2,3`), eine Bereich (wie `1..3`) oder ein '*' (für alle) "
|
||||
++ "ist mögich für jeden Teil."
|
||||
, invalidCalEvent = "Das Kalenderereignis ist nicht gültig."
|
||||
, queryLabel = "Abfrage"
|
||||
, channelRequired = "Ein Versandkanal muss angegeben werden."
|
||||
, queryStringRequired = "Eine Suchabfrage muss angegeben werden."
|
||||
, channelHeader = \ct -> "Details für " ++ Messages.Data.ChannelType.de ct
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.PeriodicQueryTaskList exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Messages.Basics
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, summary : String
|
||||
, schedule : String
|
||||
, connection : String
|
||||
, recipients : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, summary = "Summary"
|
||||
, schedule = "Schedule"
|
||||
, connection = "Connection"
|
||||
, recipients = "Recipients"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, summary = "Kurzbeschreibung"
|
||||
, schedule = "Zeitplan"
|
||||
, connection = "Verbindung"
|
||||
, recipients = "Empfänger"
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Messages.Comp.PeriodicQueryTaskManage exposing
|
||||
( Texts
|
||||
, de
|
||||
, gb
|
||||
)
|
||||
|
||||
import Http
|
||||
import Messages.Basics
|
||||
import Messages.Comp.HttpError
|
||||
import Messages.Comp.PeriodicQueryTaskForm
|
||||
import Messages.Comp.PeriodicQueryTaskList
|
||||
import Messages.Data.ChannelType
|
||||
|
||||
|
||||
type alias Texts =
|
||||
{ basics : Messages.Basics.Texts
|
||||
, notificationForm : Messages.Comp.PeriodicQueryTaskForm.Texts
|
||||
, notificationTable : Messages.Comp.PeriodicQueryTaskList.Texts
|
||||
, httpError : Http.Error -> String
|
||||
, channelType : Messages.Data.ChannelType.Texts
|
||||
, newTask : String
|
||||
, createNewTask : String
|
||||
, taskCreated : String
|
||||
, taskUpdated : String
|
||||
, taskStarted : String
|
||||
, taskDeleted : String
|
||||
, matrix : String
|
||||
, gotify : String
|
||||
, email : String
|
||||
, httpRequest : String
|
||||
}
|
||||
|
||||
|
||||
gb : Texts
|
||||
gb =
|
||||
{ basics = Messages.Basics.gb
|
||||
, notificationForm = Messages.Comp.PeriodicQueryTaskForm.gb
|
||||
, notificationTable = Messages.Comp.PeriodicQueryTaskList.gb
|
||||
, httpError = Messages.Comp.HttpError.gb
|
||||
, channelType = Messages.Data.ChannelType.gb
|
||||
, newTask = "New Task"
|
||||
, createNewTask = "Create a new notification task"
|
||||
, taskCreated = "Task created."
|
||||
, taskUpdated = "Task updated."
|
||||
, taskStarted = "Task started."
|
||||
, taskDeleted = "Task deleted."
|
||||
, matrix = "Matrix"
|
||||
, gotify = "Gotify"
|
||||
, email = "E-Mail"
|
||||
, httpRequest = "HTTP Request"
|
||||
}
|
||||
|
||||
|
||||
de : Texts
|
||||
de =
|
||||
{ basics = Messages.Basics.de
|
||||
, notificationForm = Messages.Comp.PeriodicQueryTaskForm.de
|
||||
, notificationTable = Messages.Comp.PeriodicQueryTaskList.de
|
||||
, httpError = Messages.Comp.HttpError.de
|
||||
, channelType = Messages.Data.ChannelType.de
|
||||
, newTask = "Neuer Auftrag"
|
||||
, createNewTask = "Erstelle einen neuen Benachrichtigungsauftrag"
|
||||
, taskCreated = "Auftrag erstellt."
|
||||
, taskUpdated = "Auftrag aktualisiert."
|
||||
, taskStarted = "Auftrag gestartet."
|
||||
, taskDeleted = "Auftrag gelöscht."
|
||||
, matrix = "Matrix"
|
||||
, gotify = "Gotify"
|
||||
, email = "E-Mail"
|
||||
, httpRequest = "HTTP Request"
|
||||
}
|
Reference in New Issue
Block a user