Skip to content

Commit 4ecd804

Browse files
authored
Merge pull request #835 from fractal-analytics-platform/task-activities-all
Displayed all kinds of recent task activities in tasks management page
2 parents 24e7d5d + 0ef5d8a commit 4ecd804

File tree

5 files changed

+35
-33
lines changed

5 files changed

+35
-33
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
*Note: Numbers like (\#123) point to closed Pull Requests on the fractal-web repository.*
22

3+
# Unreleased
4+
5+
* Displayed all kinds of recent task activities in tasks management page. (\#835);
6+
37
# 1.20.0
48

59
* Added body request normalizer (\#825);

src/lib/components/v2/tasks/TaskCollectionTable.svelte renamed to src/lib/components/v2/tasks/TaskActivitiesTable.svelte

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import TaskGroupActivityLogsModal from '$lib/components/v2/tasks/TaskGroupActivityLogsModal.svelte';
88
import { recentActivities } from '$lib/stores';
99
10-
// This component automatically fecthes updates for task collections activities
10+
// This component automatically fecthes updates for task recent activities
1111
// in pending and ongoing status
1212
1313
/**
@@ -23,60 +23,60 @@
2323
);
2424
2525
/** @type {number|null} */
26-
let openedTaskCollectionLogId = null;
26+
let openedTaskActivityLogId = null;
2727
2828
/** @type {TaskGroupActivityLogsModal|undefined} */
2929
let taskGroupActivitiesLogsModal = $state();
3030
3131
/**
3232
* @param {import('fractal-components/types/api').TaskGroupActivityV2[]} activitiesToUpdate
3333
*/
34-
async function updateTaskCollectionsState(activitiesToUpdate) {
34+
async function updateTaskActivitiesState(activitiesToUpdate) {
3535
recentActivities.set(
3636
$recentActivities.map((a) => {
3737
const updatedActivity = activitiesToUpdate.find((u) => u.id === a.id);
3838
return updatedActivity ?? a;
3939
})
4040
);
41-
const openedTaskCollectionLogToUpdate = activitiesToUpdate.find(
42-
(u) => u.id === openedTaskCollectionLogId
41+
const openedTaskActivityLogToUpdate = activitiesToUpdate.find(
42+
(u) => u.id === openedTaskActivityLogId
4343
)?.log;
44-
if (openedTaskCollectionLogToUpdate) {
45-
await taskGroupActivitiesLogsModal?.updateLog(openedTaskCollectionLogToUpdate);
44+
if (openedTaskActivityLogToUpdate) {
45+
await taskGroupActivitiesLogsModal?.updateLog(openedTaskActivityLogToUpdate);
4646
}
4747
}
4848
4949
/**
5050
* @param {number} taskGroupActivityId
5151
*/
5252
async function openTaskGroupActivityLogsModal(taskGroupActivityId) {
53-
openedTaskCollectionLogId = taskGroupActivityId;
53+
openedTaskActivityLogId = taskGroupActivityId;
5454
await taskGroupActivitiesLogsModal?.open(taskGroupActivityId);
5555
}
5656
57-
async function updateTasksCollectionInBackground() {
57+
async function updateTasksActivitiesInBackground() {
5858
const activitiesToUpdate = await getTaskGroupActivitiesToUpdate($recentActivities, false);
5959
if (activitiesToUpdate.length > 0) {
60-
await updateTaskCollectionsState(activitiesToUpdate);
60+
await updateTaskActivitiesState(activitiesToUpdate);
6161
const newOkTasks = $recentActivities.filter(
6262
(a) => activitiesToUpdate.map((u) => u.id).includes(a.id) && a.status === 'OK'
6363
).length;
6464
if (newOkTasks > 0) {
6565
await reloadTaskGroupsList();
6666
}
6767
}
68-
clearTimeout(updateTasksCollectionTimeout);
69-
updateTasksCollectionTimeout = setTimeout(
70-
updateTasksCollectionInBackground,
71-
updateTasksCollectionInterval
68+
clearTimeout(updateTasksActivitiesTimeout);
69+
updateTasksActivitiesTimeout = setTimeout(
70+
updateTasksActivitiesInBackground,
71+
updateTasksActivitiesInterval
7272
);
7373
}
7474
75-
async function loadRecentTaskCollections() {
75+
async function loadRecentTaskActivities() {
7676
const date = new Date();
7777
date.setTime(date.getTime() - 24 * 3600 * 1000); // yesterday
7878
const response = await fetch(
79-
`/api/v2/task-group/activity?timestamp_started_min=${date.toISOString()}&action=collect`,
79+
`/api/v2/task-group/activity?timestamp_started_min=${date.toISOString()}`,
8080
{
8181
method: 'GET',
8282
credentials: 'include'
@@ -86,25 +86,25 @@
8686
if (response.ok) {
8787
return result;
8888
}
89-
console.error('Unable to load recent task collections', result);
89+
console.error('Unable to load recent task activities', result);
9090
return [];
9191
}
9292
93-
const updateTasksCollectionInterval = env.PUBLIC_UPDATE_JOBS_INTERVAL
93+
const updateTasksActivitiesInterval = env.PUBLIC_UPDATE_JOBS_INTERVAL
9494
? parseInt(env.PUBLIC_UPDATE_JOBS_INTERVAL)
9595
: 3000;
96-
let updateTasksCollectionTimeout = undefined;
96+
let updateTasksActivitiesTimeout = undefined;
9797
9898
onMount(async () => {
99-
recentActivities.set(await loadRecentTaskCollections());
100-
updateTasksCollectionTimeout = setTimeout(
101-
updateTasksCollectionInBackground,
102-
updateTasksCollectionInterval
99+
recentActivities.set(await loadRecentTaskActivities());
100+
updateTasksActivitiesTimeout = setTimeout(
101+
updateTasksActivitiesInBackground,
102+
updateTasksActivitiesInterval
103103
);
104104
});
105105
106106
onDestroy(() => {
107-
clearTimeout(updateTasksCollectionTimeout);
107+
clearTimeout(updateTasksActivitiesTimeout);
108108
});
109109
</script>
110110
@@ -114,7 +114,7 @@
114114
Show all activities
115115
</a>
116116
{/if}
117-
<h4 class="fw-light mt-3">Task collections</h4>
117+
<h4 class="fw-light mt-3">Recent task activities</h4>
118118
{#if $recentActivities.length === 0}
119119
<p class="mb-5">
120120
No recent activities

src/routes/v2/tasks/management/+page.svelte

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import CustomEnvTask from '$lib/components/v2/tasks/CustomEnvTask.svelte';
77
import TaskGroupsTable from '$lib/components/v2/tasks/TaskGroupsTable.svelte';
88
import PixiTask from '$lib/components/v2/tasks/PixiTask.svelte';
9-
import TaskCollectionTable from '$lib/components/v2/tasks/TaskCollectionTable.svelte';
9+
import TaskActivitiesTable from '$lib/components/v2/tasks/TaskActivitiesTable.svelte';
1010
1111
const user = $derived(page.data.user);
1212
@@ -114,9 +114,7 @@
114114
{/if}
115115
</div>
116116

117-
{#if packageType === 'pypi' || packageType === 'local' || packageType === 'pixi'}
118-
<TaskCollectionTable {reloadTaskGroupsList} />
119-
{/if}
117+
<TaskActivitiesTable {reloadTaskGroupsList} />
120118

121119
<div class="row mt-4">
122120
<h3 class="fw-light">Task List</h3>

tests/v2/collect_mock_tasks.setup.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ test('Collect mock tasks [v2]', async ({ page, request }) => {
4848

4949
await page.getByRole('button', { name: 'Collect', exact: true }).click();
5050

51-
// Wait for Task collections table
51+
// Wait for Task activities table
5252
await page.waitForFunction(
5353
(expectedCount) => document.querySelectorAll('table').length === expectedCount,
5454
2
5555
);
5656
await expect(page.getByRole('row', { name: /pending|ongoing/ })).toBeVisible();
5757
});
5858

59-
await test.step('Wait tasks collection', async () => {
59+
await test.step('Wait tasks activities', async () => {
6060
await expect(page.getByRole('row', { name: /pending|ongoing/ })).not.toBeVisible({
6161
timeout: 30000
6262
});

tests/v2/pixi.setup.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ test('Pixi task collection', async ({ page, request }) => {
5858

5959
await page.getByRole('button', { name: 'Collect', exact: true }).click();
6060

61-
// Wait for Task collections table
61+
// Wait for Task activities table
6262
await page.waitForFunction(
6363
(expectedCount) => document.querySelectorAll('table').length === expectedCount,
6464
2
6565
);
6666
await expect(page.getByRole('row', { name: /pending|ongoing/ })).toBeVisible();
6767
});
6868

69-
await test.step('Wait tasks collection', async () => {
69+
await test.step('Wait tasks activities', async () => {
7070
await expect(page.getByRole('row', { name: /pending|ongoing/ })).not.toBeVisible({
7171
timeout: 30000
7272
});

0 commit comments

Comments
 (0)