mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-07 07:35:59 +00:00
Externalize strings in queue page
This commit is contained in:
parent
968c8e02b7
commit
b9c98c6578
@ -133,7 +133,7 @@ mainContent model =
|
|||||||
viewUserSettings model
|
viewUserSettings model
|
||||||
|
|
||||||
QueuePage ->
|
QueuePage ->
|
||||||
viewQueue model
|
viewQueue texts model
|
||||||
|
|
||||||
RegisterPage ->
|
RegisterPage ->
|
||||||
viewRegister texts model
|
viewRegister texts model
|
||||||
@ -449,12 +449,17 @@ viewUserSettings model =
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
viewQueue : Model -> List (Html Msg)
|
viewQueue : Messages -> Model -> List (Html Msg)
|
||||||
viewQueue model =
|
viewQueue texts model =
|
||||||
[ Html.map QueueMsg
|
[ Html.map QueueMsg
|
||||||
(Queue.viewSidebar model.sidebarVisible model.flags model.uiSettings model.queueModel)
|
(Queue.viewSidebar texts.queue
|
||||||
|
model.sidebarVisible
|
||||||
|
model.flags
|
||||||
|
model.uiSettings
|
||||||
|
model.queueModel
|
||||||
|
)
|
||||||
, Html.map QueueMsg
|
, Html.map QueueMsg
|
||||||
(Queue.viewContent model.flags model.uiSettings model.queueModel)
|
(Queue.viewContent texts.queue model.flags model.uiSettings model.queueModel)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import Messages.CollectiveSettingsPage
|
|||||||
import Messages.ItemDetailPage
|
import Messages.ItemDetailPage
|
||||||
import Messages.LoginPage
|
import Messages.LoginPage
|
||||||
import Messages.NewInvitePage
|
import Messages.NewInvitePage
|
||||||
|
import Messages.QueuePage
|
||||||
import Messages.RegisterPage
|
import Messages.RegisterPage
|
||||||
import Messages.UploadPage
|
import Messages.UploadPage
|
||||||
import UiLanguage exposing (UiLanguage(..))
|
import UiLanguage exposing (UiLanguage(..))
|
||||||
@ -29,6 +30,7 @@ type alias Messages =
|
|||||||
, newInvite : Messages.NewInvitePage.Texts
|
, newInvite : Messages.NewInvitePage.Texts
|
||||||
, upload : Messages.UploadPage.Texts
|
, upload : Messages.UploadPage.Texts
|
||||||
, itemDetail : Messages.ItemDetailPage.Texts
|
, itemDetail : Messages.ItemDetailPage.Texts
|
||||||
|
, queue : Messages.QueuePage.Texts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -88,6 +90,7 @@ gb =
|
|||||||
, newInvite = Messages.NewInvitePage.gb
|
, newInvite = Messages.NewInvitePage.gb
|
||||||
, upload = Messages.UploadPage.gb
|
, upload = Messages.UploadPage.gb
|
||||||
, itemDetail = Messages.ItemDetailPage.gb
|
, itemDetail = Messages.ItemDetailPage.gb
|
||||||
|
, queue = Messages.QueuePage.gb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -104,4 +107,5 @@ de =
|
|||||||
, newInvite = Messages.NewInvitePage.de
|
, newInvite = Messages.NewInvitePage.de
|
||||||
, upload = Messages.UploadPage.de
|
, upload = Messages.UploadPage.de
|
||||||
, itemDetail = Messages.ItemDetailPage.de
|
, itemDetail = Messages.ItemDetailPage.de
|
||||||
|
, queue = Messages.QueuePage.de
|
||||||
}
|
}
|
||||||
|
51
modules/webapp/src/main/elm/Messages/QueuePage.elm
Normal file
51
modules/webapp/src/main/elm/Messages/QueuePage.elm
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
module Messages.QueuePage exposing (..)
|
||||||
|
|
||||||
|
import Messages.Basics
|
||||||
|
|
||||||
|
|
||||||
|
type alias Texts =
|
||||||
|
{ basics : Messages.Basics.Texts
|
||||||
|
, currentlyRunning : String
|
||||||
|
, queue : String
|
||||||
|
, waiting : String
|
||||||
|
, errored : String
|
||||||
|
, success : String
|
||||||
|
, noJobsRunning : String
|
||||||
|
, noJobsDisplay : String
|
||||||
|
, noJobsWaiting : String
|
||||||
|
, noJobsFailed : String
|
||||||
|
, noJobsSuccess : String
|
||||||
|
, deleteThisJob : String
|
||||||
|
, showLog : String
|
||||||
|
, remove : String
|
||||||
|
, retries : String
|
||||||
|
, changePriority : String
|
||||||
|
, prio : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gb : Texts
|
||||||
|
gb =
|
||||||
|
{ basics = Messages.Basics.gb
|
||||||
|
, currentlyRunning = "Currently Running"
|
||||||
|
, queue = "Queue"
|
||||||
|
, waiting = "Waiting"
|
||||||
|
, errored = "Errored"
|
||||||
|
, success = "Success"
|
||||||
|
, noJobsRunning = "No jobs currently running."
|
||||||
|
, noJobsDisplay = "No jobs to display."
|
||||||
|
, noJobsWaiting = "No waiting jobs."
|
||||||
|
, noJobsFailed = "No failed jobs to display."
|
||||||
|
, noJobsSuccess = "No succesfull jobs to display."
|
||||||
|
, deleteThisJob = "Cancel/Delete this job?"
|
||||||
|
, showLog = "Show log"
|
||||||
|
, remove = "Remove"
|
||||||
|
, retries = "Retries"
|
||||||
|
, changePriority = "Change priority of this job"
|
||||||
|
, prio = "Prio"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
de : Texts
|
||||||
|
de =
|
||||||
|
gb
|
@ -10,13 +10,14 @@ import Data.UiSettings exposing (UiSettings)
|
|||||||
import Html exposing (..)
|
import Html exposing (..)
|
||||||
import Html.Attributes exposing (..)
|
import Html.Attributes exposing (..)
|
||||||
import Html.Events exposing (onClick)
|
import Html.Events exposing (onClick)
|
||||||
|
import Messages.QueuePage exposing (Texts)
|
||||||
import Page.Queue.Data exposing (..)
|
import Page.Queue.Data exposing (..)
|
||||||
import Styles as S
|
import Styles as S
|
||||||
import Util.Time exposing (formatDateTime, formatIsoDateTime)
|
import Util.Time exposing (formatDateTime, formatIsoDateTime)
|
||||||
|
|
||||||
|
|
||||||
viewSidebar : Bool -> Flags -> UiSettings -> Model -> Html Msg
|
viewSidebar : Texts -> Bool -> Flags -> UiSettings -> Model -> Html Msg
|
||||||
viewSidebar visible _ _ model =
|
viewSidebar texts visible _ _ model =
|
||||||
let
|
let
|
||||||
count v =
|
count v =
|
||||||
case v of
|
case v of
|
||||||
@ -68,17 +69,17 @@ viewSidebar visible _ _ model =
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
, div [ class "flex flex-col my-2" ]
|
, div [ class "flex flex-col my-2" ]
|
||||||
[ tabLink "" CurrentJobs "fa fa-play-circle" "Currently Running"
|
[ tabLink "" CurrentJobs "fa fa-play-circle" texts.currentlyRunning
|
||||||
, tabLink "" QueueAll "fa fa-hourglass-half" "Queue"
|
, tabLink "" QueueAll "fa fa-hourglass-half" texts.queue
|
||||||
, tabLink "ml-8" QueueWaiting "fa fa-clock" "Waiting"
|
, tabLink "ml-8" QueueWaiting "fa fa-clock" texts.waiting
|
||||||
, tabLink "ml-8" QueueError "fa fa-bolt" "Errored"
|
, tabLink "ml-8" QueueError "fa fa-bolt" texts.errored
|
||||||
, tabLink "ml-8" QueueSuccess "fa fa-check" "Success"
|
, tabLink "ml-8" QueueSuccess "fa fa-check" texts.success
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
viewContent : Flags -> UiSettings -> Model -> Html Msg
|
viewContent : Texts -> Flags -> UiSettings -> Model -> Html Msg
|
||||||
viewContent _ _ model =
|
viewContent texts _ _ model =
|
||||||
let
|
let
|
||||||
gridStyle =
|
gridStyle =
|
||||||
"grid gap-4 grid-cols-1 md:grid-cols-2"
|
"grid gap-4 grid-cols-1 md:grid-cols-2"
|
||||||
@ -103,29 +104,29 @@ viewContent _ _ model =
|
|||||||
, case model.queueView of
|
, case model.queueView of
|
||||||
CurrentJobs ->
|
CurrentJobs ->
|
||||||
if List.isEmpty model.state.progress then
|
if List.isEmpty model.state.progress then
|
||||||
message "No jobs currently running."
|
message texts.noJobsRunning
|
||||||
|
|
||||||
else
|
else
|
||||||
div [ class "flex flex-col space-y-2" ]
|
div [ class "flex flex-col space-y-2" ]
|
||||||
(List.map (renderProgressCard model) model.state.progress)
|
(List.map (renderProgressCard texts model) model.state.progress)
|
||||||
|
|
||||||
QueueAll ->
|
QueueAll ->
|
||||||
if List.isEmpty model.state.completed && List.isEmpty model.state.completed then
|
if List.isEmpty model.state.completed && List.isEmpty model.state.completed then
|
||||||
message "No jobs to display."
|
message texts.noJobsDisplay
|
||||||
|
|
||||||
else
|
else
|
||||||
div [ class gridStyle ]
|
div [ class gridStyle ]
|
||||||
(List.map (renderInfoCard model)
|
(List.map (renderInfoCard texts model)
|
||||||
(model.state.queued ++ model.state.completed)
|
(model.state.queued ++ model.state.completed)
|
||||||
)
|
)
|
||||||
|
|
||||||
QueueWaiting ->
|
QueueWaiting ->
|
||||||
if List.isEmpty model.state.queued then
|
if List.isEmpty model.state.queued then
|
||||||
message "No waiting jobs."
|
message texts.noJobsWaiting
|
||||||
|
|
||||||
else
|
else
|
||||||
div [ class gridStyle ]
|
div [ class gridStyle ]
|
||||||
(List.map (renderInfoCard model) model.state.queued)
|
(List.map (renderInfoCard texts model) model.state.queued)
|
||||||
|
|
||||||
QueueError ->
|
QueueError ->
|
||||||
let
|
let
|
||||||
@ -133,11 +134,11 @@ viewContent _ _ model =
|
|||||||
filterJobDetails model.state.completed "failed"
|
filterJobDetails model.state.completed "failed"
|
||||||
in
|
in
|
||||||
if List.isEmpty items then
|
if List.isEmpty items then
|
||||||
message "No failed jobs to display."
|
message texts.noJobsFailed
|
||||||
|
|
||||||
else
|
else
|
||||||
div [ class gridStyle ]
|
div [ class gridStyle ]
|
||||||
(List.map (renderInfoCard model) items)
|
(List.map (renderInfoCard texts model) items)
|
||||||
|
|
||||||
QueueSuccess ->
|
QueueSuccess ->
|
||||||
let
|
let
|
||||||
@ -145,11 +146,11 @@ viewContent _ _ model =
|
|||||||
filterJobDetails model.state.completed "success"
|
filterJobDetails model.state.completed "success"
|
||||||
in
|
in
|
||||||
if List.isEmpty items then
|
if List.isEmpty items then
|
||||||
message "No succesfull jobs to display."
|
message texts.noJobsSuccess
|
||||||
|
|
||||||
else
|
else
|
||||||
div [ class gridStyle ]
|
div [ class gridStyle ]
|
||||||
(List.map (renderInfoCard model) items)
|
(List.map (renderInfoCard texts model) items)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -189,14 +190,14 @@ renderJobLog job =
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
renderProgressCard : Model -> JobDetail -> Html Msg
|
renderProgressCard : Texts -> Model -> JobDetail -> Html Msg
|
||||||
renderProgressCard model job =
|
renderProgressCard texts model job =
|
||||||
div [ class (S.box ++ "px-2 flex flex-col") ]
|
div [ class (S.box ++ "px-2 flex flex-col") ]
|
||||||
[ Comp.Progress.topAttachedIndicating job.progress
|
[ Comp.Progress.topAttachedIndicating job.progress
|
||||||
, Html.map (DimmerMsg job)
|
, Html.map (DimmerMsg job)
|
||||||
(Comp.YesNoDimmer.viewN
|
(Comp.YesNoDimmer.viewN
|
||||||
(model.cancelJobRequest == Just job.id)
|
(model.cancelJobRequest == Just job.id)
|
||||||
dimmerSettings
|
(dimmerSettings texts)
|
||||||
model.deleteConfirm
|
model.deleteConfirm
|
||||||
)
|
)
|
||||||
, div [ class "py-2 flex flex-row x-space-2 items-center" ]
|
, div [ class "py-2 flex flex-row x-space-2 items-center" ]
|
||||||
@ -227,7 +228,7 @@ renderProgressCard model job =
|
|||||||
]
|
]
|
||||||
, div [ class "py-2 flex flex-row justify-end" ]
|
, div [ class "py-2 flex flex-row justify-end" ]
|
||||||
[ button [ class S.secondaryButton, onClick (RequestCancelJob job) ]
|
[ button [ class S.secondaryButton, onClick (RequestCancelJob job) ]
|
||||||
[ text "Cancel"
|
[ text texts.basics.cancel
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
@ -282,8 +283,8 @@ isFinal job =
|
|||||||
False
|
False
|
||||||
|
|
||||||
|
|
||||||
dimmerSettings : Comp.YesNoDimmer.Settings
|
dimmerSettings : Texts -> Comp.YesNoDimmer.Settings
|
||||||
dimmerSettings =
|
dimmerSettings texts =
|
||||||
let
|
let
|
||||||
defaults =
|
defaults =
|
||||||
Comp.YesNoDimmer.defaultSettings
|
Comp.YesNoDimmer.defaultSettings
|
||||||
@ -292,12 +293,12 @@ dimmerSettings =
|
|||||||
| headerClass = "text-lg text-white"
|
| headerClass = "text-lg text-white"
|
||||||
, headerIcon = ""
|
, headerIcon = ""
|
||||||
, extraClass = "rounded"
|
, extraClass = "rounded"
|
||||||
, message = "Cancel/Delete this job?"
|
, message = texts.deleteThisJob
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
renderInfoCard : Model -> JobDetail -> Html Msg
|
renderInfoCard : Texts -> Model -> JobDetail -> Html Msg
|
||||||
renderInfoCard model job =
|
renderInfoCard texts model job =
|
||||||
let
|
let
|
||||||
prio =
|
prio =
|
||||||
Data.Priority.fromString job.priority
|
Data.Priority.fromString job.priority
|
||||||
@ -315,7 +316,7 @@ renderInfoCard model job =
|
|||||||
[ Html.map (DimmerMsg job)
|
[ Html.map (DimmerMsg job)
|
||||||
(Comp.YesNoDimmer.viewN
|
(Comp.YesNoDimmer.viewN
|
||||||
(model.cancelJobRequest == Just job.id)
|
(model.cancelJobRequest == Just job.id)
|
||||||
dimmerSettings
|
(dimmerSettings texts)
|
||||||
model.deleteConfirm
|
model.deleteConfirm
|
||||||
)
|
)
|
||||||
, div [ class "flex flex-row" ]
|
, div [ class "flex flex-row" ]
|
||||||
@ -345,10 +346,14 @@ renderInfoCard model job =
|
|||||||
, class S.link
|
, class S.link
|
||||||
, classList [ ( "hidden", not (isFinal job || job.state == "stuck") ) ]
|
, classList [ ( "hidden", not (isFinal job || job.state == "stuck") ) ]
|
||||||
]
|
]
|
||||||
[ i [ class "fa fa-file", title "Show log" ] []
|
[ i
|
||||||
|
[ class "fa fa-file"
|
||||||
|
, title texts.showLog
|
||||||
|
]
|
||||||
|
[]
|
||||||
]
|
]
|
||||||
, a
|
, a
|
||||||
[ title "Remove"
|
[ title texts.remove
|
||||||
, href "#"
|
, href "#"
|
||||||
, class S.link
|
, class S.link
|
||||||
, onClick (RequestCancelJob job)
|
, onClick (RequestCancelJob job)
|
||||||
@ -391,7 +396,7 @@ renderInfoCard model job =
|
|||||||
]
|
]
|
||||||
, div [ class (labelStyle False) ]
|
, div [ class (labelStyle False) ]
|
||||||
[ span [ class "mr-3" ]
|
[ span [ class "mr-3" ]
|
||||||
[ text "Retries"
|
[ text texts.retries
|
||||||
]
|
]
|
||||||
, span []
|
, span []
|
||||||
[ job.retries |> String.fromInt |> text
|
[ job.retries |> String.fromInt |> text
|
||||||
@ -403,7 +408,7 @@ renderInfoCard model job =
|
|||||||
[ class (labelStyle False)
|
[ class (labelStyle False)
|
||||||
, onClick (ChangePrio job.id (Data.Priority.next prio))
|
, onClick (ChangePrio job.id (Data.Priority.next prio))
|
||||||
, href "#"
|
, href "#"
|
||||||
, title "Change priority of this job"
|
, title texts.changePriority
|
||||||
]
|
]
|
||||||
[ i [ class "sort numeric up icon" ] []
|
[ i [ class "sort numeric up icon" ] []
|
||||||
, text "Prio"
|
, text "Prio"
|
||||||
@ -422,7 +427,7 @@ renderInfoCard model job =
|
|||||||
[ class (labelStyle False)
|
[ class (labelStyle False)
|
||||||
]
|
]
|
||||||
[ span [ class "mr-3" ]
|
[ span [ class "mr-3" ]
|
||||||
[ text "Prio"
|
[ text texts.prio
|
||||||
]
|
]
|
||||||
, code [ class "font-mono" ]
|
, code [ class "font-mono" ]
|
||||||
[ Data.Priority.fromString job.priority
|
[ Data.Priority.fromString job.priority
|
||||||
|
Loading…
x
Reference in New Issue
Block a user