chore(jobs): stub for queued job interface towards #95
This commit is contained in:
parent
1ce8f75c2d
commit
7ed891a120
@ -66,6 +66,7 @@ BreadcrumbFaq !ident-ok: FAQ
|
|||||||
BreadcrumbSheetPersonalisedFiles: Personalisierte Dateien herunterladen
|
BreadcrumbSheetPersonalisedFiles: Personalisierte Dateien herunterladen
|
||||||
BreadcrumbCourseSheetPersonalisedFiles: Vorlage für personalisierte Übungsblatt-Dateien herunterladen
|
BreadcrumbCourseSheetPersonalisedFiles: Vorlage für personalisierte Übungsblatt-Dateien herunterladen
|
||||||
BreadcrumbAdminCrontab !ident-ok: Crontab
|
BreadcrumbAdminCrontab !ident-ok: Crontab
|
||||||
|
BreadcrumbAdminJobs !ident-ok: Jobs
|
||||||
BreadcrumbError: Fehler
|
BreadcrumbError: Fehler
|
||||||
BreadcrumbUpload !ident-ok: Upload
|
BreadcrumbUpload !ident-ok: Upload
|
||||||
BreadcrumbUserAdd: Benutzer:in anlegen
|
BreadcrumbUserAdd: Benutzer:in anlegen
|
||||||
|
|||||||
@ -66,6 +66,7 @@ BreadcrumbFaq: FAQ
|
|||||||
BreadcrumbSheetPersonalisedFiles: Download personalised sheet files
|
BreadcrumbSheetPersonalisedFiles: Download personalised sheet files
|
||||||
BreadcrumbCourseSheetPersonalisedFiles: Download template for personalised sheet files
|
BreadcrumbCourseSheetPersonalisedFiles: Download template for personalised sheet files
|
||||||
BreadcrumbAdminCrontab: Crontab
|
BreadcrumbAdminCrontab: Crontab
|
||||||
|
BreadcrumbAdminJobs !ident-ok: Jobs
|
||||||
BreadcrumbError: Error
|
BreadcrumbError: Error
|
||||||
BreadcrumbUpload: Upload
|
BreadcrumbUpload: Upload
|
||||||
BreadcrumbUserAdd: Add user
|
BreadcrumbUserAdd: Add user
|
||||||
|
|||||||
@ -107,6 +107,7 @@ MenuFaq !ident-ok: FAQ
|
|||||||
MenuSheetPersonalisedFiles: Personalisierte Dateien herunterladen
|
MenuSheetPersonalisedFiles: Personalisierte Dateien herunterladen
|
||||||
MenuCourseSheetPersonalisedFiles: Vorlage für personalisierte Übungsblatt-Dateien herunterladen
|
MenuCourseSheetPersonalisedFiles: Vorlage für personalisierte Übungsblatt-Dateien herunterladen
|
||||||
MenuAdminCrontab !ident-ok: Crontab
|
MenuAdminCrontab !ident-ok: Crontab
|
||||||
|
MenuAdminJobs: Job Warteschlange
|
||||||
MenuGlossary: Begriffsverzeichnis
|
MenuGlossary: Begriffsverzeichnis
|
||||||
MenuVersion: Versionsgeschichte
|
MenuVersion: Versionsgeschichte
|
||||||
MenuCourseNewsNew: Neue Kursartnachricht
|
MenuCourseNewsNew: Neue Kursartnachricht
|
||||||
|
|||||||
@ -108,6 +108,7 @@ MenuFaq: FAQ
|
|||||||
MenuSheetPersonalisedFiles: Download personalised sheet files
|
MenuSheetPersonalisedFiles: Download personalised sheet files
|
||||||
MenuCourseSheetPersonalisedFiles: Download template for personalised sheet files
|
MenuCourseSheetPersonalisedFiles: Download template for personalised sheet files
|
||||||
MenuAdminCrontab: Crontab
|
MenuAdminCrontab: Crontab
|
||||||
|
MenuAdminJobs: Job queue
|
||||||
MenuGlossary: Glossary
|
MenuGlossary: Glossary
|
||||||
MenuVersion: Version history
|
MenuVersion: Version history
|
||||||
MenuCourseNewsNew: Add course type news
|
MenuCourseNewsNew: Add course type news
|
||||||
|
|||||||
@ -78,3 +78,5 @@ TableCompany: Firma
|
|||||||
TableCompanies: Firmen
|
TableCompanies: Firmen
|
||||||
TableCompanyNos: Firmennummern
|
TableCompanyNos: Firmennummern
|
||||||
TableSupervisor: Ansprechpartner
|
TableSupervisor: Ansprechpartner
|
||||||
|
TableCreationTime: Erstellungszeit
|
||||||
|
TableJobContent !ident-ok: Job
|
||||||
|
|||||||
@ -78,3 +78,5 @@ TableCompany: Company
|
|||||||
TableCompanies: Companies
|
TableCompanies: Companies
|
||||||
TableCompanyNos: Company numbers
|
TableCompanyNos: Company numbers
|
||||||
TableSupervisor: Supervisor
|
TableSupervisor: Supervisor
|
||||||
|
TableCreationTime: Creation
|
||||||
|
TableJobContent: Job
|
||||||
1
routes
1
routes
@ -66,6 +66,7 @@
|
|||||||
/admin/errMsg AdminErrMsgR GET POST
|
/admin/errMsg AdminErrMsgR GET POST
|
||||||
/admin/tokens AdminTokensR GET POST
|
/admin/tokens AdminTokensR GET POST
|
||||||
/admin/crontab AdminCrontabR GET
|
/admin/crontab AdminCrontabR GET
|
||||||
|
/admin/crontab/jobs AdminJobsR GET POST
|
||||||
/admin/avs AdminAvsR GET POST
|
/admin/avs AdminAvsR GET POST
|
||||||
/admin/avs/#CryptoUUIDUser AdminAvsUserR GET
|
/admin/avs/#CryptoUUIDUser AdminAvsUserR GET
|
||||||
/admin/ldap AdminLdapR GET POST
|
/admin/ldap AdminLdapR GET POST
|
||||||
|
|||||||
@ -112,6 +112,7 @@ breadcrumb AdminTestPdfR = i18nCrumb MsgMenuAdminTest $ Just
|
|||||||
breadcrumb AdminErrMsgR = i18nCrumb MsgMenuAdminErrMsg $ Just AdminR
|
breadcrumb AdminErrMsgR = i18nCrumb MsgMenuAdminErrMsg $ Just AdminR
|
||||||
breadcrumb AdminTokensR = i18nCrumb MsgMenuAdminTokens $ Just AdminR
|
breadcrumb AdminTokensR = i18nCrumb MsgMenuAdminTokens $ Just AdminR
|
||||||
breadcrumb AdminCrontabR = i18nCrumb MsgBreadcrumbAdminCrontab $ Just AdminR
|
breadcrumb AdminCrontabR = i18nCrumb MsgBreadcrumbAdminCrontab $ Just AdminR
|
||||||
|
breadcrumb AdminJobsR = i18nCrumb MsgBreadcrumbAdminJobs $ Just AdminCrontabR
|
||||||
breadcrumb AdminAvsR = i18nCrumb MsgMenuAvs $ Just AdminR
|
breadcrumb AdminAvsR = i18nCrumb MsgMenuAvs $ Just AdminR
|
||||||
breadcrumb AdminAvsUserR{} = i18nCrumb MsgAvsPersonInfo $ Just AdminAvsR
|
breadcrumb AdminAvsUserR{} = i18nCrumb MsgAvsPersonInfo $ Just AdminAvsR
|
||||||
breadcrumb AdminLdapR = i18nCrumb MsgMenuLdap $ Just AdminR
|
breadcrumb AdminLdapR = i18nCrumb MsgMenuLdap $ Just AdminR
|
||||||
@ -2396,6 +2397,13 @@ pageActions PrintCenterR = do
|
|||||||
dayLinks <- mapM toDayAck $ Map.toAscList dayMap
|
dayLinks <- mapM toDayAck $ Map.toAscList dayMap
|
||||||
return $ manualSend : take 9 dayLinks
|
return $ manualSend : take 9 dayLinks
|
||||||
|
|
||||||
|
pageActions AdminCrontabR = return
|
||||||
|
[ NavPageActionPrimary
|
||||||
|
{ navLink = defNavLink MsgMenuAdminJobs AdminJobsR
|
||||||
|
, navChildren = []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
pageActions _ = return []
|
pageActions _ = return []
|
||||||
|
|
||||||
submissionList :: ( MonadIO m
|
submissionList :: ( MonadIO m
|
||||||
|
|||||||
@ -6,23 +6,31 @@
|
|||||||
|
|
||||||
module Handler.Admin.Crontab
|
module Handler.Admin.Crontab
|
||||||
( getAdminCrontabR
|
( getAdminCrontabR
|
||||||
|
, getAdminJobsR
|
||||||
|
, postAdminJobsR
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
import Jobs
|
import Jobs
|
||||||
import Handler.Utils.DateTime
|
import Handler.Utils
|
||||||
|
|
||||||
import qualified Data.Aeson.Encode.Pretty as Pretty
|
import qualified Data.Aeson.Encode.Pretty as Pretty
|
||||||
import Data.Aeson.Encode.Pretty (encodePrettyToTextBuilder')
|
import Data.Aeson.Encode.Pretty (encodePrettyToTextBuilder')
|
||||||
|
|
||||||
|
-- import qualified Data.CaseInsensitive as CI
|
||||||
import qualified Data.Text as Text
|
import qualified Data.Text as Text
|
||||||
import qualified Data.Text.Lazy.Builder as Text.Builder
|
import qualified Data.Text.Lazy.Builder as Text.Builder
|
||||||
|
|
||||||
|
import qualified Data.Map as Map
|
||||||
import qualified Data.HashSet as HashSet
|
import qualified Data.HashSet as HashSet
|
||||||
import qualified Data.HashMap.Strict as HashMap
|
import qualified Data.HashMap.Strict as HashMap
|
||||||
|
|
||||||
import qualified Data.UUID as UUID
|
import qualified Data.UUID as UUID
|
||||||
|
|
||||||
|
import qualified Database.Esqueleto.Legacy as E
|
||||||
|
-- import qualified Database.Esqueleto.Utils as E
|
||||||
|
-- import Database.Esqueleto.Utils.TH
|
||||||
|
|
||||||
|
|
||||||
deriveJSON defaultOptions
|
deriveJSON defaultOptions
|
||||||
{ constructorTagModifier = camelToPathPiece' 1
|
{ constructorTagModifier = camelToPathPiece' 1
|
||||||
@ -96,3 +104,43 @@ getAdminCrontabR = do
|
|||||||
, Text.splitOn "-" t
|
, Text.splitOn "-" t
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
getAdminJobsR, postAdminJobsR :: Handler Html
|
||||||
|
getAdminJobsR = postAdminJobsR
|
||||||
|
postAdminJobsR = do
|
||||||
|
let
|
||||||
|
jobsDBTable = DBTable{..}
|
||||||
|
where
|
||||||
|
resultJob :: Lens' (DBRow (Entity QueuedJob)) (Entity QueuedJob)
|
||||||
|
resultJob = _dbrOutput
|
||||||
|
|
||||||
|
dbtSQLQuery = return
|
||||||
|
dbtRowKey = (E.^. QueuedJobId)
|
||||||
|
dbtProj = dbtProjId
|
||||||
|
dbtColonnade = dbColonnade $ mconcat -- remove call to dbColonnade if table actions are added
|
||||||
|
[ sortable (Just "creation-time") (i18nCell MsgTableCreationTime) $ \(view $ resultJob . _entityVal -> QueuedJob{..}) -> dateTimeCell queuedJobCreationTime
|
||||||
|
, sortable (Just "content") (i18nCell MsgTableCreationTime) $ \(view $ resultJob . _entityVal -> QueuedJob{..}) -> stringCell $ show queuedJobContent
|
||||||
|
]
|
||||||
|
dbtSorting = Map.fromList
|
||||||
|
[ ("creation-time", SortColumnNullsInv (E.^. QueuedJobCreationTime))
|
||||||
|
, ("content" , SortColumn (E.^. QueuedJobContent))
|
||||||
|
]
|
||||||
|
dbtFilter = Map.empty
|
||||||
|
dbtFilterUI = const mempty
|
||||||
|
dbtStyle = def
|
||||||
|
dbtParams = def
|
||||||
|
dbtIdent :: Text
|
||||||
|
dbtIdent = "queued-jobs"
|
||||||
|
dbtCsvEncode = noCsvEncode
|
||||||
|
dbtCsvDecode = Nothing
|
||||||
|
dbtExtraReps = []
|
||||||
|
jobsDBTableValidator = def
|
||||||
|
& defaultSorting [SortDescBy "creation-time"]
|
||||||
|
((), jobsTable) <- runDB $ dbTable jobsDBTableValidator jobsDBTable
|
||||||
|
|
||||||
|
siteLayoutMsg MsgMenuAdminJobs $ do
|
||||||
|
setTitleI MsgMenuAdminJobs
|
||||||
|
[whamlet|
|
||||||
|
^{jobsTable}
|
||||||
|
|]
|
||||||
Reference in New Issue
Block a user