in frontend/app/JobsList/JobsListContent.tsx [12:73]
function makeJobsListColumns(filterUpdated: (fieldName:string, values:string, type:"add"|"remove")=>void,
openLog: (logContent:string)=>void,
openItem: (record:JobEntry)=>void,
onError: (errorDesc:string)=>void,
onResubmit: ()=>void,
showRelativeTimes: boolean):ColDef[] {
return [
{
field: "jobId",
headerName: "ID",
sortable: false,
},
{
field: "jobType",
headerName: "Type",
renderCell: (params) => <span>
<FilterButton fieldName="jobType"
values={params.value}
type="plus"
onActivate={()=>params.value ? filterUpdated("jobType", params.value as string,"add") : null}
/>
<FilterButton fieldName="jobType"
values={params.value}
type="minus"
onActivate={()=>params.value ? filterUpdated("jobType", params.value as string,"remove") : null}/>
<JobTypeIcon jobType={params.value}/>
</span>
},
{
field: "startedAt",
headerName: "Start Time",
width: 200,
renderCell: (params)=><TimestampFormatter relative={showRelativeTimes} value={params.value as string}/>
},
{
field: "completedAt",
headerName: "Completion Time",
width: 200,
renderCell: (params)=><TimestampFormatter relative={showRelativeTimes} value={params.value as string}/>
},
{
field: "status",
headerName: "Status",
renderCell: (params)=><span>
<FilterButton fieldName="jobStatus"
values={params.value}
type="plus"
onActivate={()=>params.value ? filterUpdated("status", params.value as string,"add") : null}/>
<FilterButton fieldName="jobStatus"
values={params.value}
type="minus"
onActivate={()=>params.value ? filterUpdated("status", params.value as string,"remove") : null}/>
<JobStatusIcon status={params.value}/>
</span>
},
{
field: "log",
headerName: "Log",
width: 200,
renderCell: (params)=> (!params.value || params.value==="") ? <p>None</p> :
<a style={{cursor: "pointer"}} onClick={()=>openLog(params.value as string)}>View</a>
},