diff --git a/src/Handler/Admin/Crontab.hs b/src/Handler/Admin/Crontab.hs index 5cb000074..53393abb0 100644 --- a/src/Handler/Admin/Crontab.hs +++ b/src/Handler/Admin/Crontab.hs @@ -118,9 +118,8 @@ instance Finite JobTableAction nullaryPathPiece ''JobTableAction $ camelToPathPiece' 1 embedRenderMessage ''UniWorX ''JobTableAction id --- Not yet needed, since there is no additional data for now (also, postprocess did not type somehow) --- data JobTableActionData = ActJobDeleteData --- deriving (Eq, Ord, Read, Show, Generic) +data JobTableActionData = ActJobDeleteData + deriving (Eq, Ord, Read, Show, Generic) getAdminJobsR, postAdminJobsR :: Handler Html @@ -164,13 +163,13 @@ postAdminJobsR = do prismAForm (singletonFilter "job" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift textField) (fslI MsgTableJob) ] dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout } - acts :: Map JobTableAction (AForm Handler JobTableAction) - acts = Map.singleton ActJobDelete $ pure ActJobDelete + acts :: Map JobTableAction (AForm Handler JobTableActionData) + acts = Map.singleton ActJobDelete $ pure ActJobDeleteData dbtParams = DBParamsForm { dbParamsFormAdditional = renderAForm FormStandard $ (, mempty) . First . Just - <$> multiActionA acts (fslI MsgTableAction) Nothing + <$> multiActionA acts (fslI MsgTableAction) Nothing , dbParamsFormMethod = POST , dbParamsFormAction = Nothing -- Just $ SomeRoute currentRoute , dbParamsFormAttrs = [] @@ -185,8 +184,8 @@ postAdminJobsR = do -- jobsDBTableValidator :: PSValidator (MForm Handler) (FormResult (First JobTableAction, DBFormResult QueuedJobId Bool (DBRow (Entity QueuedJob)))) jobsDBTableValidator = def & defaultSorting [SortDescBy "creation-time"] - -- postprocess :: FormResult (First JobTableAction, DBFormResult QueuedJobId Bool (DBRow (Entity QueuedJob))) - -- -> FormResult (JobTableAction, Set QueuedJobId) + postprocess :: FormResult (First JobTableActionData, DBFormResult QueuedJobId Bool (DBRow (Entity QueuedJob))) + -> FormResult (JobTableActionData, Set QueuedJobId) postprocess inp = do (First (Just act), jobMap) <- inp let jobSet = Map.keysSet . Map.filter id $ getDBFormResult (const False) jobMap @@ -194,13 +193,13 @@ postAdminJobsR = do (jobActRes, jobsTable) <- runDB (over _1 postprocess <$> dbTable jobsDBTableValidator jobsDBTable) formResult jobActRes $ \case - (ActJobDelete, jobIds) -> do + (ActJobDeleteData, jobIds) -> do let jobReq = length jobIds - rmvd <- fromIntegral <$> runDB (deleteWhereCount + rmvd <- runDB $ fromIntegral <$> deleteWhereCount [ QueuedJobLockTime ==. Nothing , QueuedJobLockInstance ==. Nothing , QueuedJobId <-. Set.toList jobIds - ]) + ] addMessageI (bool Success Warning $ rmvd < jobReq) (MsgTableJobActDeleteFeedback rmvd jobReq) reloadKeepGetParams AdminJobsR