feat(workflows): delete definitions
This commit is contained in:
parent
ff370c68c7
commit
bda4f81702
@ -2802,3 +2802,7 @@ WorkflowDefinitionEditTitle: Workflow-Definition Bearbeiten
|
|||||||
WorkflowDefinitionListTitle: Workflow-Definitionen
|
WorkflowDefinitionListTitle: Workflow-Definitionen
|
||||||
WorkflowDefinitionInstanceCount: Instanzen
|
WorkflowDefinitionInstanceCount: Instanzen
|
||||||
WorkflowDefinitionWorkflowCount: Workflows
|
WorkflowDefinitionWorkflowCount: Workflows
|
||||||
|
WorkflowDefinitionConcreteInstanceCount num@Int64: #{num} Instanzen
|
||||||
|
WorkflowDefinitionConcreteWorkflowCount num@Int64: #{num} Workflows
|
||||||
|
WorkflowDefinitionDeleteQuestion: Wollen Sie die unten aufgeführte Workflow-Definition wirklich löschen?
|
||||||
|
WorkflowDefinitionDeleted: Workflow-Definition gelöscht
|
||||||
@ -4,6 +4,49 @@ module Handler.Workflow.Definition.Delete
|
|||||||
|
|
||||||
import Import
|
import Import
|
||||||
|
|
||||||
|
import Handler.Utils.Delete
|
||||||
|
|
||||||
|
import qualified Database.Esqueleto as E
|
||||||
|
|
||||||
|
import qualified Data.Set as Set
|
||||||
|
|
||||||
|
|
||||||
getAWDDeleteR, postAWDDeleteR :: WorkflowInstanceScope' -> WorkflowDefinitionName -> Handler Html
|
getAWDDeleteR, postAWDDeleteR :: WorkflowInstanceScope' -> WorkflowDefinitionName -> Handler Html
|
||||||
getAWDDeleteR = postAWDDeleteR
|
getAWDDeleteR = postAWDDeleteR
|
||||||
postAWDDeleteR = error "not implemented"
|
postAWDDeleteR wds' wdn = do
|
||||||
|
wdId <- runDB . getKeyBy404 $ UniqueWorkflowDefinition wdn wds'
|
||||||
|
deleteR DeleteRoute
|
||||||
|
{ drRecords = Set.singleton wdId
|
||||||
|
, drGetInfo = \workflowDefinition -> do
|
||||||
|
let instanceCount = E.subSelectCount . E.from $ \workflowInstance ->
|
||||||
|
E.where_ $ workflowInstance E.^. WorkflowInstanceDefinition E.==. E.just (workflowDefinition E.^. WorkflowDefinitionId)
|
||||||
|
workflowCount = E.subSelectCount . E.from $ \(workflowInstance `E.InnerJoin` workflow) -> do
|
||||||
|
E.on $ workflow E.^. WorkflowWorkflowInstance E.==. E.just (workflowInstance E.^. WorkflowInstanceId)
|
||||||
|
E.where_ $ workflowInstance E.^. WorkflowInstanceDefinition E.==. E.just (workflowDefinition E.^. WorkflowDefinitionId)
|
||||||
|
return ( workflowDefinition E.^. WorkflowDefinitionScope
|
||||||
|
, workflowDefinition E.^. WorkflowDefinitionName
|
||||||
|
, instanceCount, workflowCount
|
||||||
|
)
|
||||||
|
, drUnjoin = id
|
||||||
|
, drRenderRecord = \(E.Value scope, E.Value name, E.Value instanceCount, E.Value workflowCount) ->
|
||||||
|
return [whamlet|
|
||||||
|
$newline never
|
||||||
|
#{name}
|
||||||
|
\ (_{scope}
|
||||||
|
$if instanceCount > 0
|
||||||
|
; _{MsgWorkflowDefinitionConcreteInstanceCount instanceCount}
|
||||||
|
$if workflowCount > 0
|
||||||
|
; _{MsgWorkflowDefinitionConcreteWorkflowCount workflowCount}
|
||||||
|
)
|
||||||
|
|]
|
||||||
|
, drRecordConfirmString = \(E.Value scope, E.Value name, _, _) ->
|
||||||
|
return [st|#{toPathPiece scope}.#{name}|]
|
||||||
|
, drCaption = SomeMessage MsgWorkflowDefinitionDeleteQuestion
|
||||||
|
, drSuccessMessage = SomeMessage MsgWorkflowDefinitionDeleted
|
||||||
|
, drFormMessage = const $ return Nothing
|
||||||
|
, drAbort = SomeRoute AdminWorkflowDefinitionListR
|
||||||
|
, drSuccess = SomeRoute AdminWorkflowDefinitionListR
|
||||||
|
, drDelete = \k cascade -> do
|
||||||
|
updateWhere [WorkflowInstanceDefinition ==. Just k] [WorkflowInstanceDefinition =. Nothing]
|
||||||
|
cascade
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user