diff --git a/web/frontend/src/List.root.svelte b/web/frontend/src/List.root.svelte
index 814a7df..57cd291 100644
--- a/web/frontend/src/List.root.svelte
+++ b/web/frontend/src/List.root.svelte
@@ -24,6 +24,16 @@
export let type;
export let filterPresets;
+ // By default, look at the jobs of the last 30 days:
+ if (filterPresets?.startTime == null) {
+ if (filterPresets == null)
+ filterPresets = {}
+
+ const lastMonth = (new Date(Date.now() - (30*24*60*60*1000))).toISOString()
+ const now = (new Date(Date.now())).toISOString()
+ filterPresets.startTime = { from: lastMonth, to: now, text: 'Last 30 Days', url: 'last30d' }
+ }
+
console.assert(
type == "USER" || type == "PROJECT",
"Invalid list type provided!"
diff --git a/web/frontend/src/filters/Filters.svelte b/web/frontend/src/filters/Filters.svelte
index b8264d3..1431293 100644
--- a/web/frontend/src/filters/Filters.svelte
+++ b/web/frontend/src/filters/Filters.svelte
@@ -35,17 +35,17 @@
projectMatch: filterPresets.projectMatch || 'contains',
userMatch: filterPresets.userMatch || 'contains',
- cluster: filterPresets.cluster || null,
- partition: filterPresets.partition || null,
- states: filterPresets.states || filterPresets.state ? [filterPresets.state].flat() : allJobStates,
- startTime: filterPresets.startTime || { from: null, to: null },
- tags: filterPresets.tags || [],
- duration: filterPresets.duration || { from: null, to: null },
- jobId: filterPresets.jobId || '',
- arrayJobId: filterPresets.arrayJobId || null,
- user: filterPresets.user || '',
- project: filterPresets.project || '',
- jobName: filterPresets.jobName || '',
+ cluster: filterPresets.cluster || null,
+ partition: filterPresets.partition || null,
+ states: filterPresets.states || filterPresets.state ? [filterPresets.state].flat() : allJobStates,
+ startTime: filterPresets.startTime || { from: null, to: null },
+ tags: filterPresets.tags || [],
+ duration: filterPresets.duration || { from: null, to: null },
+ jobId: filterPresets.jobId || '',
+ arrayJobId: filterPresets.arrayJobId || null,
+ user: filterPresets.user || '',
+ project: filterPresets.project || '',
+ jobName: filterPresets.jobName || '',
numNodes: filterPresets.numNodes || { from: null, to: null },
numHWThreads: filterPresets.numHWThreads || { from: null, to: null },
@@ -120,7 +120,11 @@
for (let state of filters.states)
opts.push(`state=${state}`)
if (filters.startTime.from && filters.startTime.to)
- opts.push(`startTime=${dateToUnixEpoch(filters.startTime.from)}-${dateToUnixEpoch(filters.startTime.to)}`)
+ // if (filters.startTime.url) {
+ // opts.push(`startTime=${filters.startTime.url}`)
+ // } else {
+ opts.push(`startTime=${dateToUnixEpoch(filters.startTime.from)}-${dateToUnixEpoch(filters.startTime.to)}`)
+ // }
for (let tag of filters.tags)
opts.push(`tag=${tag}`)
if (filters.duration.from && filters.duration.to)
@@ -193,16 +197,18 @@
Start Time Qick Selection
{#each [
- { text: 'Last 6hrs', seconds: 6*60*60 },
- { text: 'Last 12hrs', seconds: 12*60*60 },
- { text: 'Last 24hrs', seconds: 24*60*60 },
- { text: 'Last 48hrs', seconds: 48*60*60 },
- { text: 'Last 7 days', seconds: 7*24*60*60 },
- { text: 'Last 30 days', seconds: 30*24*60*60 }
- ] as {text, seconds}}
+ { text: 'Last 6hrs', url: 'last6h', seconds: 6*60*60 },
+ // { text: 'Last 12hrs', seconds: 12*60*60 },
+ { text: 'Last 24hrs', url: 'last24h', seconds: 24*60*60 },
+ // { text: 'Last 48hrs', seconds: 48*60*60 },
+ { text: 'Last 7 days', url: 'last7d', seconds: 7*24*60*60 },
+ { text: 'Last 30 days', url: 'last30d', seconds: 30*24*60*60 }
+ ] as {text, url, seconds}}
{
filters.startTime.from = (new Date(Date.now() - seconds * 1000)).toISOString()
filters.startTime.to = (new Date(Date.now())).toISOString()
+ filters.startTime.text = text,
+ filters.startTime.url = url
update()
}}>
{text}
@@ -212,27 +218,6 @@
-
{#if filters.cluster}
(isClusterOpen = true)}>
@@ -251,8 +236,12 @@
{#if filters.startTime.from || filters.startTime.to}
(isStartTimeOpen = true)}>
- {new Date(filters.startTime.from).toLocaleString()} - {new Date(filters.startTime.to).toLocaleString()}
-
+ {#if filters.startTime.text}
+ {filters.startTime.text}
+ {:else}
+ {new Date(filters.startTime.from).toLocaleString()} - {new Date(filters.startTime.to).toLocaleString()}
+ {/if}
+
{/if}
{#if filters.duration.from || filters.duration.to}
@@ -307,7 +296,11 @@
bind:isOpen={isStartTimeOpen}
bind:from={filters.startTime.from}
bind:to={filters.startTime.to}
- on:update={() => update()} />
+ on:update={() => {
+ delete filters.startTime['text']
+ delete filters.startTime['url']
+ update()
+ }} />