From 5f001b59e554a3fcef4de9ef571d872d5fee382b Mon Sep 17 00:00:00 2001
From: Eike Kettner <eike.kettner@posteo.de>
Date: Sun, 11 Apr 2021 01:01:32 +0200
Subject: [PATCH] Show cancelled jobs in queue page

---
 .../webapp/src/main/elm/Messages/Page/Queue.elm |  4 ++++
 modules/webapp/src/main/elm/Page/Queue/Data.elm |  1 +
 .../webapp/src/main/elm/Page/Queue/View2.elm    | 17 +++++++++++++++++
 3 files changed, 22 insertions(+)

diff --git a/modules/webapp/src/main/elm/Messages/Page/Queue.elm b/modules/webapp/src/main/elm/Messages/Page/Queue.elm
index 689eb045..13e901af 100644
--- a/modules/webapp/src/main/elm/Messages/Page/Queue.elm
+++ b/modules/webapp/src/main/elm/Messages/Page/Queue.elm
@@ -10,11 +10,13 @@ type alias Texts =
     , waiting : String
     , errored : String
     , success : String
+    , cancelled : String
     , noJobsRunning : String
     , noJobsDisplay : String
     , noJobsWaiting : String
     , noJobsFailed : String
     , noJobsSuccess : String
+    , noJobsCancelled : String
     , deleteThisJob : String
     , showLog : String
     , remove : String
@@ -32,11 +34,13 @@ gb =
     , waiting = "Waiting"
     , errored = "Errored"
     , success = "Success"
+    , cancelled = "Cancelled"
     , 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."
+    , noJobsCancelled = "No cancelled jobs to display."
     , deleteThisJob = "Cancel/Delete this job?"
     , showLog = "Show log"
     , remove = "Remove"
diff --git a/modules/webapp/src/main/elm/Page/Queue/Data.elm b/modules/webapp/src/main/elm/Page/Queue/Data.elm
index f945b304..470da63e 100644
--- a/modules/webapp/src/main/elm/Page/Queue/Data.elm
+++ b/modules/webapp/src/main/elm/Page/Queue/Data.elm
@@ -38,6 +38,7 @@ type QueueView
     | QueueWaiting
     | QueueError
     | QueueSuccess
+    | QueueCancelled
 
 
 emptyModel : Model
diff --git a/modules/webapp/src/main/elm/Page/Queue/View2.elm b/modules/webapp/src/main/elm/Page/Queue/View2.elm
index f1f62704..16027514 100644
--- a/modules/webapp/src/main/elm/Page/Queue/View2.elm
+++ b/modules/webapp/src/main/elm/Page/Queue/View2.elm
@@ -39,6 +39,10 @@ viewSidebar texts visible _ _ model =
                     filterJobDetails model.state.completed "failed"
                         |> List.length
 
+                QueueCancelled ->
+                    filterJobDetails model.state.completed "cancelled"
+                        |> List.length
+
         tabLink cls v icon label =
             a
                 [ href "#"
@@ -74,6 +78,7 @@ viewSidebar texts visible _ _ model =
             , tabLink "ml-8" QueueWaiting "fa fa-clock" texts.waiting
             , tabLink "ml-8" QueueError "fa fa-bolt" texts.errored
             , tabLink "ml-8" QueueSuccess "fa fa-check" texts.success
+            , tabLink "ml-8" QueueCancelled "fa fa-times-circle" texts.cancelled
             ]
         ]
 
@@ -151,6 +156,18 @@ viewContent texts _ _ model =
                 else
                     div [ class gridStyle ]
                         (List.map (renderInfoCard texts model) items)
+
+            QueueCancelled ->
+                let
+                    items =
+                        filterJobDetails model.state.completed "cancelled"
+                in
+                if List.isEmpty items then
+                    message texts.noJobsCancelled
+
+                else
+                    div [ class gridStyle ]
+                        (List.map (renderInfoCard texts model) items)
         ]