diff --git a/web/frontend/src/Jobs.root.svelte b/web/frontend/src/Jobs.root.svelte
index 204a4e3..fb49b39 100644
--- a/web/frontend/src/Jobs.root.svelte
+++ b/web/frontend/src/Jobs.root.svelte
@@ -14,7 +14,7 @@
import Refresher from "./joblist/Refresher.svelte";
import Sorting from "./joblist/SortSelection.svelte";
import MetricSelection from "./MetricSelection.svelte";
- import UserOrProject from "./filters/UserOrProject.svelte";
+ import TextFilter from "./filters/TextFilter.svelte";
const { query: initq } = init();
@@ -86,7 +86,7 @@
- filterComponent.update(detail)}
diff --git a/web/frontend/src/filters/UserOrProject.svelte b/web/frontend/src/filters/TextFilter.svelte
similarity index 52%
rename from web/frontend/src/filters/UserOrProject.svelte
rename to web/frontend/src/filters/TextFilter.svelte
index 983192c..80f454a 100644
--- a/web/frontend/src/filters/UserOrProject.svelte
+++ b/web/frontend/src/filters/TextFilter.svelte
@@ -4,21 +4,25 @@
const dispatch = createEventDispatcher();
- export let user = "";
- export let project = "";
export let authlevel;
export let roles;
- let mode = "user",
- term = "";
+ let mode = "user";
+ let term = "";
+ let user = "";
+ let project = "";
+ let jobName = "";
const throttle = 500;
function modeChanged() {
if (mode == "user") {
project = term;
term = user;
- } else {
+ } else if (mode == "project") {
user = term;
term = project;
+ } else {
+ jobName = term;
+ term = jobName;
}
termChanged(0);
}
@@ -28,7 +32,8 @@
function termChanged(sleep = throttle) {
if (authlevel >= roles.manager) {
if (mode == "user") user = term;
- else project = term;
+ else if (mode == "project") project = term;
+ else jobName = term;
if (timeoutId != null) clearTimeout(timeoutId);
@@ -36,49 +41,44 @@
dispatch("update", {
user,
project,
+ jobName
});
}, sleep);
} else {
- project = term;
+ if (mode == "project") project = term;
+ else jobName = term;
+
if (timeoutId != null) clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
dispatch("update", {
project,
+ jobName
});
}, sleep);
}
}
-{#if authlevel >= roles.manager}
-
-
+ termChanged()}
+ on:keyup={(event) => termChanged(event.key == "Enter" ? 0 : throttle)}
+ placeholder={`filter ${mode}...`}
+ />
+
+