diff --git a/src/Handler/Utils/Form/MassInput.hs b/src/Handler/Utils/Form/MassInput.hs index 582e4193f..526ee5d9b 100644 --- a/src/Handler/Utils/Form/MassInput.hs +++ b/src/Handler/Utils/Form/MassInput.hs @@ -632,7 +632,7 @@ massInputAccumEdit miAdd' miCell' miButtonAction miLayout miIdent fSettings fReq miCell :: ListPosition -> cellData -> Maybe cellData -> (Text -> Text) -> (Markup -> MForm handler (FormResult cellData, Widget)) - miCell _pos dat _mPrev nudge = miCell' nudge dat + miCell _pos dat mPrev' nudge = miCell' nudge $ fromMaybe dat mPrev' miDelete :: MassInputDelete ListLength miDelete = miDeleteList diff --git a/src/Handler/Workflow/Definition/Edit.hs b/src/Handler/Workflow/Definition/Edit.hs index 1967fc958..b7865df88 100644 --- a/src/Handler/Workflow/Definition/Edit.hs +++ b/src/Handler/Workflow/Definition/Edit.hs @@ -54,22 +54,26 @@ postAWDEditR wds' wdn = do , workflowDefinitionInstanceCategory = wdfInstanceCategory } - when (is _Nothing insConflict) . iforM_ wdfDescriptions $ \wddLang (wddTitle, wddDesc) -> do + when (is _Nothing insConflict) $ do deleteWhere [WorkflowDefinitionDescriptionDefinition ==. wdId] - insert WorkflowDefinitionDescription - { workflowDefinitionDescriptionDefinition = wdId - , workflowDefinitionDescriptionLanguage = wddLang - , workflowDefinitionDescriptionTitle = wddTitle - , workflowDefinitionDescriptionDescription = wddDesc - } - when (is _Nothing insConflict) . iforM_ wdfInstanceDescriptions $ \wddLang (wddTitle, wddDesc) -> do + insertMany_ $ do + (wddLang, (wddTitle, wddDesc)) <- Map.toList wdfDescriptions + return WorkflowDefinitionDescription + { workflowDefinitionDescriptionDefinition = wdId + , workflowDefinitionDescriptionLanguage = wddLang + , workflowDefinitionDescriptionTitle = wddTitle + , workflowDefinitionDescriptionDescription = wddDesc + } + deleteWhere [WorkflowDefinitionInstanceDescriptionDefinition ==. wdId] - insert WorkflowDefinitionInstanceDescription - { workflowDefinitionInstanceDescriptionDefinition = wdId - , workflowDefinitionInstanceDescriptionLanguage = wddLang - , workflowDefinitionInstanceDescriptionTitle = wddTitle - , workflowDefinitionInstanceDescriptionDescription = wddDesc - } + insertMany_ $ do + (wddLang, (wddTitle, wddDesc)) <- Map.toList wdfInstanceDescriptions + return WorkflowDefinitionInstanceDescription + { workflowDefinitionInstanceDescriptionDefinition = wdId + , workflowDefinitionInstanceDescriptionLanguage = wddLang + , workflowDefinitionInstanceDescriptionTitle = wddTitle + , workflowDefinitionInstanceDescriptionDescription = wddDesc + } case insConflict of Just (UniqueWorkflowDefinition wdn' wds'') -> return . Just $