diff --git a/web2/src/components/TaskLogView.vue b/web2/src/components/TaskLogView.vue index 1a56e55ec..677a0d885 100644 --- a/web2/src/components/TaskLogView.vue +++ b/web2/src/components/TaskLogView.vue @@ -106,7 +106,7 @@ export default { }, }, async created() { - socket.addListener((data) => this.onDataReceive(data)); + socket.addListener((data) => this.onWebsocketDataReceived(data)); await this.loadData(); }, @@ -117,7 +117,7 @@ export default { this.user = {}; }, - onDataReceive(data) { + onWebsocketDataReceived(data) { if (data.project_id !== this.projectId || data.task_id !== this.itemId) { return; } diff --git a/web2/src/views/project/History.vue b/web2/src/views/project/History.vue index e1d7f5e55..3cfd32f8e 100644 --- a/web2/src/views/project/History.vue +++ b/web2/src/views/project/History.vue @@ -46,6 +46,7 @@ import ItemListPageBase from '@/components/ItemListPageBase'; import EventBus from '@/event-bus'; import TaskStatus from '@/components/TaskStatus.vue'; +import socket from '@/socket'; export default { mixins: [ItemListPageBase], @@ -58,6 +59,10 @@ export default { }, }, + created() { + socket.addListener((data) => this.onWebsocketDataReceived(data)); + }, + methods: { showTaskLog(taskId) { EventBus.$emit('i-show-task', { @@ -65,6 +70,23 @@ export default { }); }, + async onWebsocketDataReceived(data) { + if (data.project_id !== this.projectId || data.type !== 'update') { + return; + } + + if (!this.items.some((item) => item.id === data.task_id)) { + await this.loadItems(); + } + + const task = this.items.find((item) => item.id === data.task_id); + + Object.assign(task, { + ...data, + type: undefined, + }); + }, + getHeaders() { return [ {