function makeJobsListColumns()

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>
        },