feat: add auto-reloading to system and node views

This commit is contained in:
Christoph Kluge 2023-08-01 15:30:21 +02:00
parent 38f58047f2
commit 36abed2093
3 changed files with 17 additions and 0 deletions

View File

@ -11,6 +11,7 @@
} from "sveltestrap"; } from "sveltestrap";
import { queryStore, gql, getContextClient } from "@urql/svelte"; import { queryStore, gql, getContextClient } from "@urql/svelte";
import TimeSelection from "./filters/TimeSelection.svelte"; import TimeSelection from "./filters/TimeSelection.svelte";
import Refresher from './joblist/Refresher.svelte';
import PlotTable from "./PlotTable.svelte"; import PlotTable from "./PlotTable.svelte";
import MetricPlot from "./plots/MetricPlot.svelte"; import MetricPlot from "./plots/MetricPlot.svelte";
import { getContext } from "svelte"; import { getContext } from "svelte";
@ -160,6 +161,13 @@
No currently running jobs. No currently running jobs.
{/if} {/if}
</Col> </Col>
<Col>
<Refresher on:reload={() => {
const diff = Date.now() - to
from = new Date(from.getTime() + diff)
to = new Date(to.getTime() + diff)
}} />
</Col>
<Col> <Col>
<TimeSelection bind:from bind:to /> <TimeSelection bind:from bind:to />
</Col> </Col>

View File

@ -1,5 +1,6 @@
<script> <script>
import { init, checkMetricDisabled } from './utils.js' import { init, checkMetricDisabled } from './utils.js'
import Refresher from './joblist/Refresher.svelte'
import { Row, Col, Input, InputGroup, InputGroupText, Icon, Spinner, Card } from 'sveltestrap' import { Row, Col, Input, InputGroup, InputGroupText, Icon, Spinner, Card } from 'sveltestrap'
import { queryStore, gql, getContextClient } from '@urql/svelte' import { queryStore, gql, getContextClient } from '@urql/svelte'
import TimeSelection from './filters/TimeSelection.svelte' import TimeSelection from './filters/TimeSelection.svelte'
@ -78,6 +79,13 @@
{:else if $initq.fetching} {:else if $initq.fetching}
<Spinner/> <Spinner/>
{:else} {:else}
<Col>
<Refresher on:reload={() => {
const diff = Date.now() - to
from = new Date(from.getTime() + diff)
to = new Date(to.getTime() + diff)
}} />
</Col>
<Col> <Col>
<TimeSelection <TimeSelection
bind:from={from} bind:from={from}

View File

@ -7,6 +7,7 @@
export let customEnabled = true export let customEnabled = true
export let anyEnabled = false export let anyEnabled = false
export let options = { export let options = {
'Last quarter hour': 15*60,
'Last half hour': 30*60, 'Last half hour': 30*60,
'Last hour': 60*60, 'Last hour': 60*60,
'Last 2hrs': 2*60*60, 'Last 2hrs': 2*60*60,