chore(admin-jobs): implement JobActionData as dbtable action res
This commit is contained in:
parent
15ab17aeca
commit
26ce2b83e2
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user