Adapt user jobview to new version, fix refresher

- add manually triggered refresh function to jobList
- Changing displayed metrics requires hard refresh (F5) to load data
-> Under investigation
This commit is contained in:
Christoph Kluge 2023-05-08 18:06:36 +02:00
parent 760d3dec0f
commit b5a5def3a6
2 changed files with 74 additions and 71 deletions

View File

@ -53,15 +53,19 @@
} }
} }
const client = getContextClient();
const query = gql`
mutation($name: String!, $value: String!) {
updateConfiguration(name: $name, value: $value)
}
`;
const updateConfiguration = ({ name, value }) => { const updateConfiguration = ({ name, value }) => {
result = mutationStore({ mutationStore({
client: getContextClient(), client,
query: gql`mutation($name: String!, $value: String!) { query,
updateConfiguration(name: $name, value: $value) variables: { name, value },
}`, })}
variables: {name, value}
})
}
let columnHovering = null let columnHovering = null
@ -89,13 +93,9 @@
isOpen = false isOpen = false
updateConfiguration({ updateConfiguration({
name: cluster == null ? configName : `${configName}:${cluster}`, name: cluster == null ? configName : `${configName}:${cluster}`,
value: JSON.stringify(metrics) value: JSON.stringify(metrics)
}) })
.then(res => {
if (res.error)
console.error(res.error)
})
} }
</script> </script>

View File

@ -34,62 +34,55 @@
let paging = { itemsPerPage, page }; let paging = { itemsPerPage, page };
let filter = []; let filter = [];
// $: { const client = getContextClient();
// console.log('CHANGED FILTERS IN JOBLIST TO') const query = gql`
// console.log('filter:', ...filter.map(f => Object.entries(f)).flat(2)) query (
// } $filter: [JobFilter!]!
$sorting: OrderByInput!
// $: { $paging: PageRequest!
// console.log('CHANGED PAGING IN JOBLIST TO') ) {
// console.log(paging) jobs(filter: $filter, order: $sorting, page: $paging) {
// } items {
id
jobId
user
project
jobName
cluster
subCluster
startTime
duration
numNodes
numHWThreads
numAcc
walltime
resources {
hostname
}
SMT
exclusive
partition
arrayJobId
monitoringStatus
state
tags {
id
type
name
}
userData {
name
}
metaData
}
count
}
}
`;
$: jobs = queryStore({ $: jobs = queryStore({
client: getContextClient(), client,
query: gql` query,
query (
$filter: [JobFilter!]!
$sorting: OrderByInput!
$paging: PageRequest!
) {
jobs(filter: $filter, order: $sorting, page: $paging) {
items {
id
jobId
user
project
jobName
cluster
subCluster
startTime
duration
numNodes
numHWThreads
numAcc
walltime
resources {
hostname
}
SMT
exclusive
partition
arrayJobId
monitoringStatus
state
tags {
id
type
name
}
userData {
name
}
metaData
}
count
}
}
`,
variables: { paging, sorting, filter }, variables: { paging, sorting, filter },
}); });
@ -109,8 +102,8 @@
} }
const updateConfiguration = ({ value, page }) => { const updateConfiguration = ({ value, page }) => {
configValue = value; configValue = value; // Trigger mutation
paging = { itemsPerPage: value, page: page }; paging = { itemsPerPage: value, page: page }; // Trigger reload of jobList
}; };
// $: $jobs.variables = { ...$jobs.variables, sorting, paging } // $: $jobs.variables = { ...$jobs.variables, sorting, paging }
@ -131,6 +124,16 @@
paging = paging = { page, itemsPerPage }; paging = paging = { page, itemsPerPage };
} }
// Force refresh list with existing unchanged variables (== usually would not trigger reactivity)
export function refresh() {
queryStore({
client,
query,
variables: { paging, sorting, filter },
requestPolicy: 'network-only'
});
}
let tableWidth = null; let tableWidth = null;
let jobInfoColumnWidth = 250; let jobInfoColumnWidth = 250;
$: plotWidth = Math.floor( $: plotWidth = Math.floor(