refactor(workflow): payload specification

This commit is contained in:
Sarah Vaupel 2020-04-01 15:45:42 +02:00 committed by Gregor Kleen
parent 094421ae5c
commit 5ff48d9b60
2 changed files with 10 additions and 6 deletions

View File

@ -1,5 +1,5 @@
WorkflowDefinition
graph (WorkflowGraph UniWorX)
graph (WorkflowGraph FileId)
initiator (WorkflowRole UserId AuthDNF)
WorkflowInitiator

View File

@ -25,17 +25,21 @@ data WorkflowEdgePayload' = WEPText' | WEPBool'
deriving (Eq, Ord, Enum, Show, Read, Data, Generic, Typeable)
type WorkflowEdgePayloadLabel = CI Text
data WorkflowGraphEdge site = WGE
data WorkflowGraphEdge fileid = WGE
{ wgeActors :: () -- TODO
, wgeTarget :: WorkflowGraphNode
, wgeForm :: Map Text (WorkflowEdgePayload', FieldSettings site)
, wgePayload :: Map WorkflowEdgePayloadLabel WorkflowEdgePayload
, wgeForm :: Map WorkflowEdgePayloadLabel (NonNull (Set (WorkflowEdgePayloadSpecification fileid)))
}
data WorkflowEdgePayloadSpecification fileid = forall payload. (FromJSON payload, ToJSON payload) => WorkflowEdgePayloadSpecification (WorkflowEdgePayloadField payload fileid)
data WorkflowEdgePayloadField (payload :: *) fileid where
WorkflowEdgePayloadFieldText :: { wepftLabel :: Text, wepftPlaceholder :: Text, wepftTooltip :: Maybe Text, wepftDefault :: Maybe Text } -> WorkflowEdgePayloadField Text fileid
WorkflowEdgePayloadFieldNumber :: HasResolution prec => { wepfnLabel :: Text, wepfnPlaceholder :: Text, wepfnTooltip :: Maybe Text, wepfnDefault :: Maybe prec } -> WorkflowEdgePayloadField (Fixed prec) fileid
WorkflowEdgePayloadFieldFile :: { wepffLabel :: Text, wepffTooltip :: Maybe Text, wepffDefault :: Maybe fileid } -> WorkflowEdgePayloadField FileInfo fileid
-- deriveJSON defaultOptions ''WorkflowGraphEdge
data WorkflowGraph site = WG
data WorkflowGraph fileid = WG
{ wgNodes :: Set WorkflowGraphNode
, wgEdges :: Set (WorkflowGraphEdge site)
, wgEdges :: Set (WorkflowGraphEdge fileid)
}
-- deriveJSON defaultOptions ''WorkflowGraph