Editable dashboard

This commit is contained in:
eikek
2022-01-26 21:27:26 +01:00
parent 2c2b34cd89
commit e83bf6b750
41 changed files with 2813 additions and 130 deletions

View File

@ -0,0 +1,67 @@
module Messages.Comp.BoxEdit exposing (Texts, de, gb)
import Messages.Basics
import Messages.Comp.BoxMessageEdit
import Messages.Comp.BoxQueryEdit
import Messages.Comp.BoxStatsEdit
import Messages.Comp.BoxUploadEdit
import Messages.Data.BoxContent
type alias Texts =
{ messageEdit : Messages.Comp.BoxMessageEdit.Texts
, uploadEdit : Messages.Comp.BoxUploadEdit.Texts
, queryEdit : Messages.Comp.BoxQueryEdit.Texts
, statsEdit : Messages.Comp.BoxStatsEdit.Texts
, boxContent : Messages.Data.BoxContent.Texts
, basics : Messages.Basics.Texts
, namePlaceholder : String
, visible : String
, decorations : String
, colspan : String
, contentProperties : String
, reallyDeleteBox : String
, moveToLeft : String
, moveToRight : String
, deleteBox : String
}
gb : Texts
gb =
{ messageEdit = Messages.Comp.BoxMessageEdit.gb
, uploadEdit = Messages.Comp.BoxUploadEdit.gb
, queryEdit = Messages.Comp.BoxQueryEdit.gb
, statsEdit = Messages.Comp.BoxStatsEdit.gb
, boxContent = Messages.Data.BoxContent.gb
, basics = Messages.Basics.gb
, namePlaceholder = "Box name"
, visible = "Visible"
, decorations = "Box decorations"
, colspan = "Column span"
, contentProperties = "Content"
, reallyDeleteBox = "Really delete this box?"
, moveToLeft = "Move to left"
, moveToRight = "Move to right"
, deleteBox = "Delete box"
}
de : Texts
de =
{ messageEdit = Messages.Comp.BoxMessageEdit.de
, uploadEdit = Messages.Comp.BoxUploadEdit.de
, queryEdit = Messages.Comp.BoxQueryEdit.de
, statsEdit = Messages.Comp.BoxStatsEdit.de
, boxContent = Messages.Data.BoxContent.de
, basics = Messages.Basics.de
, namePlaceholder = "Boxname"
, visible = "Sichtbar"
, decorations = "Kachel-Dekoration anzeigen"
, colspan = "Spalten überspannen"
, contentProperties = "Inhalt"
, reallyDeleteBox = "Die Kachel wirklich entfernen?"
, moveToLeft = "Nach links verschieben"
, moveToRight = "Nach rechts verschieben"
, deleteBox = "Kachel entfernen"
}

View File

@ -0,0 +1,30 @@
module Messages.Comp.BoxMessageEdit exposing (Texts, de, gb)
type alias Texts =
{ titleLabel : String
, titlePlaceholder : String
, bodyLabel : String
, bodyPlaceholder : String
, infoText : String
}
gb : Texts
gb =
{ titleLabel = "Title"
, titlePlaceholder = "Message title"
, bodyLabel = "Body"
, bodyPlaceholder = "Message body"
, infoText = "Markdown can be used in both fields for simple formatting."
}
de : Texts
de =
{ titleLabel = "Titel"
, titlePlaceholder = "Titel"
, bodyLabel = "Nachricht"
, bodyPlaceholder = "Text"
, infoText = "Markdown kann in beiden Feldern für einfache Formatierung verwendet werden."
}

View File

@ -0,0 +1,27 @@
module Messages.Comp.BoxQueryEdit exposing (Texts, de, gb)
import Messages.Comp.BoxSearchQueryInput
import Messages.Comp.ItemColumnDropdown
type alias Texts =
{ columnDropdown : Messages.Comp.ItemColumnDropdown.Texts
, searchQuery : Messages.Comp.BoxSearchQueryInput.Texts
, showColumnHeaders : String
}
gb : Texts
gb =
{ columnDropdown = Messages.Comp.ItemColumnDropdown.gb
, searchQuery = Messages.Comp.BoxSearchQueryInput.gb
, showColumnHeaders = "Show column headers"
}
de : Texts
de =
{ columnDropdown = Messages.Comp.ItemColumnDropdown.de
, searchQuery = Messages.Comp.BoxSearchQueryInput.de
, showColumnHeaders = "Spaltennamen anzeigen"
}

View File

@ -5,6 +5,7 @@ import Http
import Messages.Basics
import Messages.Comp.HttpError
import Messages.Data.Direction
import Messages.Data.ItemColumn
import Messages.DateFormat as DF
import Messages.UiLanguage
@ -15,6 +16,7 @@ type alias Texts =
, basics : Messages.Basics.Texts
, noResults : String
, templateCtx : IT.TemplateContext
, itemColumn : Messages.Data.ItemColumn.Texts
}
@ -29,6 +31,7 @@ gb =
, dateFormatShort = DF.formatDateShort Messages.UiLanguage.English
, directionLabel = Messages.Data.Direction.gb
}
, itemColumn = Messages.Data.ItemColumn.gb
}
@ -43,4 +46,5 @@ de =
, dateFormatShort = DF.formatDateShort Messages.UiLanguage.German
, directionLabel = Messages.Data.Direction.de
}
, itemColumn = Messages.Data.ItemColumn.de
}

View File

@ -0,0 +1,29 @@
module Messages.Comp.BoxSearchQueryInput exposing (Texts, de, gb)
import Messages.Comp.BookmarkDropdown
type alias Texts =
{ bookmarkDropdown : Messages.Comp.BookmarkDropdown.Texts
, switchToBookmark : String
, switchToQuery : String
, searchPlaceholder : String
}
gb : Texts
gb =
{ bookmarkDropdown = Messages.Comp.BookmarkDropdown.gb
, switchToBookmark = "Bookmarks"
, switchToQuery = "Search query"
, searchPlaceholder = "Search"
}
de : Texts
de =
{ bookmarkDropdown = Messages.Comp.BookmarkDropdown.de
, switchToBookmark = "Bookmarks"
, switchToQuery = "Suchabfrage"
, searchPlaceholder = "Abfrage"
}

View File

@ -0,0 +1,32 @@
module Messages.Comp.BoxStatsEdit exposing (Texts, de, gb)
import Messages.Comp.BoxSearchQueryInput
type alias Texts =
{ searchQuery : Messages.Comp.BoxSearchQueryInput.Texts
, fieldStatistics : String
, basicNumbers : String
, showLabel : String
, showItemCount : String
}
gb : Texts
gb =
{ searchQuery = Messages.Comp.BoxSearchQueryInput.gb
, fieldStatistics = "Field statistics"
, basicNumbers = "Basic numbers"
, showLabel = "Display"
, showItemCount = "Show item count"
}
de : Texts
de =
{ searchQuery = Messages.Comp.BoxSearchQueryInput.de
, fieldStatistics = "Benutzerfeld Statistiken"
, basicNumbers = "Allgemeine Zahlen"
, showLabel = "Anzeige"
, showItemCount = "Gesamtanzahl Dokumente mit anzeigen"
}

View File

@ -1,4 +1,4 @@
module Messages.Comp.BoxSummaryView exposing (Texts, de, gb)
module Messages.Comp.BoxStatsView exposing (Texts, de, gb)
import Http
import Messages.Basics

View File

@ -0,0 +1,24 @@
module Messages.Comp.BoxUploadEdit exposing (Texts, de, gb)
type alias Texts =
{ sourceLabel : String
, sourcePlaceholder : String
, infoText : String
}
gb : Texts
gb =
{ sourceLabel = "Source"
, sourcePlaceholder = "Choose source"
, infoText = "Optionally choose a source otherwise default settings apply to all uploads."
}
de : Texts
de =
{ sourceLabel = "Quelle"
, sourcePlaceholder = "Quelle"
, infoText = "Optional kann eine Quelle als Einstellung gewählt werden, sonst werden Standardeinstellungen verwendet."
}

View File

@ -1,13 +1,13 @@
module Messages.Comp.BoxView exposing (Texts, de, gb)
import Messages.Comp.BoxQueryView
import Messages.Comp.BoxSummaryView
import Messages.Comp.BoxStatsView
import Messages.Comp.BoxUploadView
type alias Texts =
{ queryView : Messages.Comp.BoxQueryView.Texts
, summaryView : Messages.Comp.BoxSummaryView.Texts
, statsView : Messages.Comp.BoxStatsView.Texts
, uploadView : Messages.Comp.BoxUploadView.Texts
}
@ -15,7 +15,7 @@ type alias Texts =
gb : Texts
gb =
{ queryView = Messages.Comp.BoxQueryView.gb
, summaryView = Messages.Comp.BoxSummaryView.gb
, statsView = Messages.Comp.BoxStatsView.gb
, uploadView = Messages.Comp.BoxUploadView.gb
}
@ -23,6 +23,6 @@ gb =
de : Texts
de =
{ queryView = Messages.Comp.BoxQueryView.de
, summaryView = Messages.Comp.BoxSummaryView.de
, statsView = Messages.Comp.BoxStatsView.de
, uploadView = Messages.Comp.BoxUploadView.de
}

View File

@ -0,0 +1,40 @@
module Messages.Comp.DashboardEdit exposing (Texts, de, gb)
import Messages.Basics
import Messages.Comp.BoxEdit
import Messages.Data.BoxContent
type alias Texts =
{ boxView : Messages.Comp.BoxEdit.Texts
, boxContent : Messages.Data.BoxContent.Texts
, basics : Messages.Basics.Texts
, namePlaceholder : String
, columns : String
, dashboardBoxes : String
, newBox : String
}
gb : Texts
gb =
{ boxView = Messages.Comp.BoxEdit.gb
, boxContent = Messages.Data.BoxContent.gb
, basics = Messages.Basics.gb
, namePlaceholder = "Dashboard name"
, columns = "Columns"
, dashboardBoxes = "Dashboard Boxes"
, newBox = "New box"
}
de : Texts
de =
{ boxView = Messages.Comp.BoxEdit.de
, boxContent = Messages.Data.BoxContent.de
, basics = Messages.Basics.de
, namePlaceholder = "Dashboardname"
, columns = "Spalten"
, dashboardBoxes = "Dashboard Kacheln"
, newBox = "Neue Kachel"
}

View File

@ -0,0 +1,38 @@
{-
Copyright 2020 Eike K. & Contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-}
module Messages.Comp.ItemColumnDropdown exposing
( Texts
, de
, gb
)
import Messages.Basics
import Messages.Data.ItemColumn
type alias Texts =
{ basics : Messages.Basics.Texts
, column : Messages.Data.ItemColumn.Texts
, placeholder : String
}
gb : Texts
gb =
{ basics = Messages.Basics.gb
, column = Messages.Data.ItemColumn.gb
, placeholder = "Choose"
}
de : Texts
de =
{ basics = Messages.Basics.de
, column = Messages.Data.ItemColumn.de
, placeholder = "Wähle"
}

View File

@ -0,0 +1,54 @@
module Messages.Data.BoxContent exposing (Texts, de, gb)
import Data.BoxContent exposing (BoxContent(..))
type alias Texts =
{ forContent : BoxContent -> String
, queryBox : String
, statsBox : String
, messageBox : String
, uploadBox : String
}
gb : Texts
gb =
updateForContent
{ forContent = \_ -> ""
, queryBox = "Query box"
, statsBox = "Statistics box"
, messageBox = "Message box"
, uploadBox = "Upload box"
}
de : Texts
de =
updateForContent
{ forContent = \_ -> ""
, queryBox = "Suchabfrage Kachel"
, statsBox = "Statistik Kachel"
, messageBox = "Mitteilung Kachel"
, uploadBox = "Datei hochladen Kachel"
}
updateForContent : Texts -> Texts
updateForContent init =
{ init
| forContent =
\cnt ->
case cnt of
BoxMessage _ ->
init.messageBox
BoxUpload _ ->
init.uploadBox
BoxQuery _ ->
init.queryBox
BoxStats _ ->
init.statsBox
}

View File

@ -0,0 +1,115 @@
module Messages.Data.ItemColumn exposing (Texts, de, gb)
import Data.ItemColumn exposing (ItemColumn(..))
type alias Texts =
{ header : ItemColumn -> String
, label : ItemColumn -> String
}
gb : Texts
gb =
let
headerName col =
case col of
Name ->
"Name"
DateLong ->
"Date"
DateShort ->
"Date"
DueDateLong ->
"Due date"
DueDateShort ->
"Due date"
Folder ->
"Folder"
Correspondent ->
"Correspondent"
Concerning ->
"Concerning"
Tags ->
"Tags"
in
{ header = headerName
, label =
\col ->
case col of
DateShort ->
headerName col ++ " (short)"
DateLong ->
headerName col ++ " (long)"
DueDateShort ->
headerName col ++ " (short)"
DueDateLong ->
headerName col ++ " (long)"
_ ->
headerName col
}
de : Texts
de =
let
headerName col =
case col of
Name ->
"Name"
DateLong ->
"Datum"
DateShort ->
"Datum"
DueDateLong ->
"Fälligkeitsdatum"
DueDateShort ->
"Fälligkeitsdatum"
Folder ->
"Ordner"
Correspondent ->
"Korrespondent"
Concerning ->
"Betreffend"
Tags ->
"Tags"
in
{ header = headerName
, label =
\col ->
case col of
DateShort ->
headerName col ++ " (kurz)"
DateLong ->
headerName col ++ " (lang)"
DueDateShort ->
headerName col ++ " (kurz)"
DueDateLong ->
headerName col ++ " (lang)"
_ ->
headerName col
}

View File

@ -2,6 +2,7 @@ module Messages.Page.Dashboard exposing (Texts, de, gb)
import Messages.Basics
import Messages.Comp.BookmarkChooser
import Messages.Comp.DashboardEdit
import Messages.Comp.DashboardView
import Messages.Comp.EquipmentManage
import Messages.Comp.FolderManage
@ -30,6 +31,7 @@ type alias Texts =
, folderManage : Messages.Comp.FolderManage.Texts
, uploadForm : Messages.Comp.UploadForm.Texts
, dashboard : Messages.Comp.DashboardView.Texts
, dashboardEdit : Messages.Comp.DashboardEdit.Texts
, defaultDashboard : Messages.Page.DefaultDashboard.Texts
, manage : String
, dashboardLink : String
@ -38,6 +40,7 @@ type alias Texts =
, settings : String
, documentation : String
, uploadFiles : String
, editDashboard : String
}
@ -56,6 +59,7 @@ gb =
, folderManage = Messages.Comp.FolderManage.gb
, uploadForm = Messages.Comp.UploadForm.gb
, dashboard = Messages.Comp.DashboardView.gb
, dashboardEdit = Messages.Comp.DashboardEdit.gb
, defaultDashboard = Messages.Page.DefaultDashboard.gb
, manage = "Manage"
, dashboardLink = "Dasbhoard"
@ -64,6 +68,7 @@ gb =
, settings = "Settings"
, documentation = "Documentation"
, uploadFiles = "Upload documents"
, editDashboard = "Edit Dashboard"
}
@ -82,12 +87,14 @@ de =
, folderManage = Messages.Comp.FolderManage.de
, uploadForm = Messages.Comp.UploadForm.de
, dashboard = Messages.Comp.DashboardView.de
, dashboardEdit = Messages.Comp.DashboardEdit.de
, defaultDashboard = Messages.Page.DefaultDashboard.de
, manage = "Managen"
, manage = "Verwalten"
, dashboardLink = "Dasbhoard"
, bookmarks = "Bookmarks"
, misc = "Anderes"
, settings = "Einstellungen"
, documentation = "Dokumentation"
, uploadFiles = "Dokumente hochladen"
, editDashboard = "Dashboard ändern"
}

View File

@ -1,8 +1,6 @@
module Messages.Page.DefaultDashboard exposing (Texts, de, gb)
import Data.Fields exposing (Field)
import Messages.Basics
import Messages.Data.Fields
type alias Texts =
@ -13,36 +11,26 @@ type alias Texts =
, welcomeBody : String
, summaryName : String
, dueInDays : Int -> String
, dueHeaderColumns : List String
, newDocsName : String
}
gb : Texts
gb =
let
b =
Messages.Basics.gb
in
{ basics = b
{ basics = Messages.Basics.gb
, default = "Default"
, welcomeName = "Welcome Message"
, welcomeTitle = "# Welcome to Docspell"
, welcomeBody = "Docspell keeps your documents organized."
, summaryName = "Summary"
, dueInDays = \n -> "Due in " ++ String.fromInt n ++ " days"
, dueHeaderColumns = dueHeaderCols b Messages.Data.Fields.gb
, newDocsName = "New Documents"
}
de : Texts
de =
let
b =
Messages.Basics.de
in
{ basics = b
{ basics = Messages.Basics.de
, default = "Standard"
, welcomeName = "Willkommens-Nachricht"
, welcomeTitle = "# Willkommen zu Docspell"
@ -50,10 +38,4 @@ de =
, summaryName = "Zahlen"
, dueInDays = \n -> "Fällig in " ++ String.fromInt n ++ " Tagen"
, newDocsName = "Neue Dokumente"
, dueHeaderColumns = dueHeaderCols b Messages.Data.Fields.de
}
dueHeaderCols : Messages.Basics.Texts -> (Field -> String) -> List String
dueHeaderCols b d =
[ b.name, b.correspondent, d Data.Fields.DueDate ]