@noatgnu/cupcake-vanilla 1.2.21 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, signal, computed, EventEmitter, inject, Output, Input, Component, effect, ViewChild } from '@angular/core';
|
|
3
3
|
import * as i3 from '@noatgnu/cupcake-core';
|
|
4
|
-
import { BaseApiService, WebSocketService, NotificationService as NotificationService$1, LabGroupService, ToastService, ResourceVisibility } from '@noatgnu/cupcake-core';
|
|
4
|
+
import { BaseApiService, WebSocketService, NotificationService as NotificationService$1, LabGroupService, ToastService, TaskStatus, TaskType, ResourceVisibility } from '@noatgnu/cupcake-core';
|
|
5
5
|
import { switchMap, map, tap, takeUntil, filter as filter$1 } from 'rxjs/operators';
|
|
6
6
|
import { from, Observable, throwError, NEVER, debounceTime, distinctUntilChanged, filter, switchMap as switchMap$1, map as map$1, catchError, of, tap as tap$1, Subject, BehaviorSubject, firstValueFrom, takeUntil as takeUntil$1 } from 'rxjs';
|
|
7
7
|
import jsSHA from 'jssha';
|
|
@@ -502,35 +502,6 @@ function isSdrfColumnRequired(name) {
|
|
|
502
502
|
return column?.isRequired === true;
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
-
// Helper constants
|
|
506
|
-
const TASK_TYPE_LABELS = {
|
|
507
|
-
'EXPORT_EXCEL': 'Export Excel Template',
|
|
508
|
-
'EXPORT_SDRF': 'Export SDRF File',
|
|
509
|
-
'IMPORT_SDRF': 'Import SDRF File',
|
|
510
|
-
'IMPORT_EXCEL': 'Import Excel File',
|
|
511
|
-
'EXPORT_MULTIPLE_SDRF': 'Export Multiple SDRF Files',
|
|
512
|
-
'EXPORT_MULTIPLE_EXCEL': 'Export Multiple Excel Templates',
|
|
513
|
-
'VALIDATE_TABLE': 'Validate Metadata Table',
|
|
514
|
-
'REORDER_TABLE_COLUMNS': 'Reorder Table Columns',
|
|
515
|
-
'REORDER_TEMPLATE_COLUMNS': 'Reorder Template Columns',
|
|
516
|
-
'TRANSCRIBE_AUDIO': 'Transcribe Audio',
|
|
517
|
-
'TRANSCRIBE_VIDEO': 'Transcribe Video',
|
|
518
|
-
};
|
|
519
|
-
const TASK_STATUS_LABELS = {
|
|
520
|
-
'QUEUED': 'Queued',
|
|
521
|
-
'STARTED': 'In Progress',
|
|
522
|
-
'SUCCESS': 'Completed',
|
|
523
|
-
'FAILURE': 'Failed',
|
|
524
|
-
'CANCELLED': 'Cancelled',
|
|
525
|
-
};
|
|
526
|
-
const TASK_STATUS_COLORS = {
|
|
527
|
-
'QUEUED': 'secondary',
|
|
528
|
-
'STARTED': 'primary',
|
|
529
|
-
'SUCCESS': 'success',
|
|
530
|
-
'FAILURE': 'danger',
|
|
531
|
-
'CANCELLED': 'warning',
|
|
532
|
-
};
|
|
533
|
-
|
|
534
505
|
class MetadataTableService extends BaseApiService {
|
|
535
506
|
/**
|
|
536
507
|
* Get all metadata tables with optional filtering
|
|
@@ -1247,8 +1218,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
|
|
|
1247
1218
|
class Websocket extends WebSocketService {
|
|
1248
1219
|
constructor(authService) {
|
|
1249
1220
|
super(authService);
|
|
1250
|
-
this.endpoint = '
|
|
1251
|
-
this.config.endpoint = '
|
|
1221
|
+
this.endpoint = 'notifications';
|
|
1222
|
+
this.config.endpoint = 'notifications';
|
|
1252
1223
|
this.config.url = this.getWebSocketUrl();
|
|
1253
1224
|
}
|
|
1254
1225
|
getMetadataTableUpdates() {
|
|
@@ -1514,6 +1485,12 @@ class NotificationService extends NotificationService$1 {
|
|
|
1514
1485
|
case 'REORDER_TEMPLATE_COLUMNS':
|
|
1515
1486
|
operation = 'Template Column Reordering';
|
|
1516
1487
|
break;
|
|
1488
|
+
case 'TRANSCRIBE_AUDIO':
|
|
1489
|
+
operation = 'Audio Transcription';
|
|
1490
|
+
break;
|
|
1491
|
+
case 'TRANSCRIBE_VIDEO':
|
|
1492
|
+
operation = 'Video Transcription';
|
|
1493
|
+
break;
|
|
1517
1494
|
}
|
|
1518
1495
|
switch (status) {
|
|
1519
1496
|
case 'QUEUED':
|
|
@@ -3919,33 +3896,37 @@ class AsyncTaskUIService {
|
|
|
3919
3896
|
tasks$ = this.tasksSubject.asObservable();
|
|
3920
3897
|
activeTasks$ = this.tasks$.pipe(map(tasks => {
|
|
3921
3898
|
const taskArray = Array.isArray(tasks) ? tasks : [];
|
|
3922
|
-
return taskArray.filter(task => task.status ===
|
|
3899
|
+
return taskArray.filter(task => task.status === TaskStatus.QUEUED || task.status === TaskStatus.STARTED);
|
|
3923
3900
|
}));
|
|
3924
3901
|
metadataTableRefresh$ = this.metadataTableRefreshSubject.asObservable();
|
|
3925
3902
|
taskCompleted$ = this.taskCompletedSubject.asObservable();
|
|
3926
3903
|
exportTaskCompleted$ = this.exportTaskCompletedSubject.asObservable();
|
|
3927
3904
|
constructor() {
|
|
3928
|
-
this.initializeService();
|
|
3929
3905
|
}
|
|
3930
3906
|
ngOnDestroy() {
|
|
3931
3907
|
this.destroy$.next();
|
|
3932
3908
|
this.destroy$.complete();
|
|
3933
3909
|
}
|
|
3934
|
-
initializeService() {
|
|
3935
|
-
this.startRealtimeUpdates();
|
|
3936
|
-
}
|
|
3937
3910
|
startRealtimeUpdates() {
|
|
3938
3911
|
if (this.isSubscribed) {
|
|
3912
|
+
console.log('AsyncTaskUIService: Already subscribed to real-time updates');
|
|
3939
3913
|
return;
|
|
3940
3914
|
}
|
|
3915
|
+
console.log('AsyncTaskUIService: Starting real-time updates');
|
|
3941
3916
|
this.isSubscribed = true;
|
|
3942
3917
|
if (!this.websocket.connectionState$() || this.websocket.connectionState$() === 'disconnected') {
|
|
3918
|
+
console.log('AsyncTaskUIService: WebSocket not connected, connecting now...');
|
|
3943
3919
|
this.websocket.connect();
|
|
3944
3920
|
}
|
|
3921
|
+
else {
|
|
3922
|
+
console.log('AsyncTaskUIService: WebSocket already connected');
|
|
3923
|
+
}
|
|
3945
3924
|
this.websocket.isConnected$.pipe(takeUntil(this.destroy$), filter$1(connected => connected)).subscribe(() => {
|
|
3925
|
+
console.log('AsyncTaskUIService: WebSocket connected, subscribing to async_task_updates');
|
|
3946
3926
|
this.websocket.subscribe('async_task_updates');
|
|
3947
3927
|
});
|
|
3948
3928
|
this.websocket.filterMessages('async_task.update').pipe(takeUntil(this.destroy$)).subscribe((message) => {
|
|
3929
|
+
console.log('AsyncTaskUIService: Received async_task.update message:', message);
|
|
3949
3930
|
this.handleTaskUpdate(message);
|
|
3950
3931
|
});
|
|
3951
3932
|
this.getTasks().subscribe({
|
|
@@ -3959,6 +3940,7 @@ class AsyncTaskUIService {
|
|
|
3959
3940
|
});
|
|
3960
3941
|
}
|
|
3961
3942
|
stopRealtimeUpdates() {
|
|
3943
|
+
console.log('AsyncTaskUIService: Stopping real-time updates');
|
|
3962
3944
|
this.isSubscribed = false;
|
|
3963
3945
|
this.destroy$.next();
|
|
3964
3946
|
}
|
|
@@ -4050,7 +4032,7 @@ class AsyncTaskUIService {
|
|
|
4050
4032
|
const existingTaskIndex = currentTasks.findIndex(t => t.id === taskId);
|
|
4051
4033
|
if (existingTaskIndex >= 0) {
|
|
4052
4034
|
const existingTask = currentTasks[existingTaskIndex];
|
|
4053
|
-
const wasRunning = existingTask.status ===
|
|
4035
|
+
const wasRunning = existingTask.status === TaskStatus.QUEUED || existingTask.status === TaskStatus.STARTED;
|
|
4054
4036
|
const updatedTask = {
|
|
4055
4037
|
...existingTask,
|
|
4056
4038
|
status: message.status,
|
|
@@ -4062,14 +4044,14 @@ class AsyncTaskUIService {
|
|
|
4062
4044
|
const updatedTasks = [...currentTasks];
|
|
4063
4045
|
updatedTasks[existingTaskIndex] = updatedTask;
|
|
4064
4046
|
this.tasksSubject.next(updatedTasks);
|
|
4065
|
-
if (message.status ===
|
|
4047
|
+
if (message.status === TaskStatus.STARTED) {
|
|
4066
4048
|
this.showTaskProgressNotification(updatedTask, existingTask);
|
|
4067
4049
|
}
|
|
4068
|
-
if (wasRunning && (message.status ===
|
|
4050
|
+
if (wasRunning && (message.status === TaskStatus.SUCCESS || message.status === TaskStatus.FAILURE || message.status === TaskStatus.CANCELLED)) {
|
|
4069
4051
|
this.showTaskCompletionNotification(updatedTask);
|
|
4070
4052
|
const isTaskFromThisTab = this.isTaskInitiatedByThisTab(updatedTask.id);
|
|
4071
4053
|
this.taskCompletedSubject.next(updatedTask);
|
|
4072
|
-
if (message.status ===
|
|
4054
|
+
if (message.status === TaskStatus.SUCCESS) {
|
|
4073
4055
|
if (this.isImportTask(updatedTask.taskType) && updatedTask.metadataTable) {
|
|
4074
4056
|
this.metadataTableRefreshSubject.next(updatedTask.metadataTable);
|
|
4075
4057
|
}
|
|
@@ -4077,10 +4059,10 @@ class AsyncTaskUIService {
|
|
|
4077
4059
|
this.exportTaskCompletedSubject.next(updatedTask);
|
|
4078
4060
|
this.handleExportTaskCompletion(updatedTask);
|
|
4079
4061
|
}
|
|
4080
|
-
if (updatedTask.taskType ===
|
|
4062
|
+
if (updatedTask.taskType === TaskType.VALIDATE_TABLE && updatedTask.metadataTable) {
|
|
4081
4063
|
this.metadataTableRefreshSubject.next(updatedTask.metadataTable);
|
|
4082
4064
|
}
|
|
4083
|
-
if ((updatedTask.taskType ===
|
|
4065
|
+
if ((updatedTask.taskType === TaskType.REORDER_TABLE_COLUMNS) && updatedTask.metadataTable) {
|
|
4084
4066
|
this.metadataTableRefreshSubject.next(updatedTask.metadataTable);
|
|
4085
4067
|
}
|
|
4086
4068
|
}
|
|
@@ -4094,11 +4076,11 @@ class AsyncTaskUIService {
|
|
|
4094
4076
|
const taskArray = Array.isArray(tasks) ? tasks : [];
|
|
4095
4077
|
this.tasksSubject.next(taskArray);
|
|
4096
4078
|
const refreshedTask = taskArray.find(t => t.id === taskId);
|
|
4097
|
-
if (refreshedTask && (message.status ===
|
|
4079
|
+
if (refreshedTask && (message.status === TaskStatus.SUCCESS || message.status === TaskStatus.FAILURE || message.status === TaskStatus.CANCELLED)) {
|
|
4098
4080
|
this.showTaskCompletionNotification(refreshedTask);
|
|
4099
4081
|
const isTaskFromThisTab = this.isTaskInitiatedByThisTab(refreshedTask.id);
|
|
4100
4082
|
this.taskCompletedSubject.next(refreshedTask);
|
|
4101
|
-
if (message.status ===
|
|
4083
|
+
if (message.status === TaskStatus.SUCCESS) {
|
|
4102
4084
|
if (this.isImportTask(refreshedTask.taskType) && refreshedTask.metadataTable) {
|
|
4103
4085
|
this.metadataTableRefreshSubject.next(refreshedTask.metadataTable);
|
|
4104
4086
|
}
|
|
@@ -4106,10 +4088,10 @@ class AsyncTaskUIService {
|
|
|
4106
4088
|
this.exportTaskCompletedSubject.next(refreshedTask);
|
|
4107
4089
|
this.handleExportTaskCompletion(refreshedTask);
|
|
4108
4090
|
}
|
|
4109
|
-
if (refreshedTask.taskType ===
|
|
4091
|
+
if (refreshedTask.taskType === TaskType.VALIDATE_TABLE && refreshedTask.metadataTable) {
|
|
4110
4092
|
this.metadataTableRefreshSubject.next(refreshedTask.metadataTable);
|
|
4111
4093
|
}
|
|
4112
|
-
if ((refreshedTask.taskType ===
|
|
4094
|
+
if ((refreshedTask.taskType === TaskType.REORDER_TABLE_COLUMNS) && refreshedTask.metadataTable) {
|
|
4113
4095
|
this.metadataTableRefreshSubject.next(refreshedTask.metadataTable);
|
|
4114
4096
|
}
|
|
4115
4097
|
}
|
|
@@ -4139,53 +4121,55 @@ class AsyncTaskUIService {
|
|
|
4139
4121
|
showTaskCompletionNotification(task) {
|
|
4140
4122
|
const taskName = this.getTaskDisplayName(task.taskType);
|
|
4141
4123
|
const tableName = task.metadataTableName ? ` for "${task.metadataTableName}"` : '';
|
|
4142
|
-
if (task.taskType ===
|
|
4124
|
+
if (task.taskType === TaskType.VALIDATE_TABLE) {
|
|
4143
4125
|
this.handleValidationTaskCompletion(task);
|
|
4144
4126
|
return;
|
|
4145
4127
|
}
|
|
4146
|
-
if (task.taskType ===
|
|
4128
|
+
if (task.taskType === TaskType.IMPORT_SDRF || task.taskType === TaskType.IMPORT_EXCEL) {
|
|
4147
4129
|
this.handleImportTaskCompletion(task);
|
|
4148
4130
|
return;
|
|
4149
4131
|
}
|
|
4150
|
-
if (task.taskType ===
|
|
4132
|
+
if (task.taskType === TaskType.REORDER_TABLE_COLUMNS || task.taskType === TaskType.REORDER_TEMPLATE_COLUMNS) {
|
|
4151
4133
|
this.handleReorderTaskCompletion(task);
|
|
4152
4134
|
return;
|
|
4153
4135
|
}
|
|
4154
4136
|
const progressInfo = task.progressPercentage && task.progressPercentage > 0 ? ` (${task.progressPercentage}%)` : '';
|
|
4155
4137
|
const progressDesc = task.progressDescription ? `: ${task.progressDescription}` : '';
|
|
4156
4138
|
switch (task.status) {
|
|
4157
|
-
case
|
|
4139
|
+
case TaskStatus.SUCCESS:
|
|
4158
4140
|
this.toastService.success(`Task Completed: ${taskName}${tableName}${progressInfo} completed successfully${progressDesc}`);
|
|
4159
4141
|
break;
|
|
4160
|
-
case
|
|
4142
|
+
case TaskStatus.FAILURE:
|
|
4161
4143
|
this.toastService.error(`Task Failed: ${taskName}${tableName}${progressInfo} failed: ${task.errorMessage || 'Unknown error'}${progressDesc}`);
|
|
4162
4144
|
break;
|
|
4163
|
-
case
|
|
4145
|
+
case TaskStatus.CANCELLED:
|
|
4164
4146
|
this.toastService.warning(`Task Cancelled: ${taskName}${tableName}${progressInfo} was cancelled${progressDesc}`);
|
|
4165
4147
|
break;
|
|
4166
4148
|
}
|
|
4167
4149
|
}
|
|
4168
4150
|
getTaskDisplayName(taskType) {
|
|
4169
4151
|
const typeMap = {
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4152
|
+
[TaskType.EXPORT_EXCEL]: 'Excel export',
|
|
4153
|
+
[TaskType.EXPORT_SDRF]: 'SDRF export',
|
|
4154
|
+
[TaskType.IMPORT_SDRF]: 'SDRF import',
|
|
4155
|
+
[TaskType.IMPORT_EXCEL]: 'Excel import',
|
|
4156
|
+
[TaskType.EXPORT_MULTIPLE_SDRF]: 'Bulk SDRF export',
|
|
4157
|
+
[TaskType.EXPORT_MULTIPLE_EXCEL]: 'Bulk Excel export',
|
|
4158
|
+
[TaskType.VALIDATE_TABLE]: 'Table validation',
|
|
4159
|
+
[TaskType.REORDER_TABLE_COLUMNS]: 'Column reordering',
|
|
4160
|
+
[TaskType.REORDER_TEMPLATE_COLUMNS]: 'Template column reordering',
|
|
4161
|
+
[TaskType.TRANSCRIBE_AUDIO]: 'Audio transcription',
|
|
4162
|
+
[TaskType.TRANSCRIBE_VIDEO]: 'Video transcription',
|
|
4179
4163
|
};
|
|
4180
4164
|
return typeMap[taskType] || taskType;
|
|
4181
4165
|
}
|
|
4182
4166
|
getTaskStatusClass(status) {
|
|
4183
4167
|
const statusMap = {
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4168
|
+
[TaskStatus.QUEUED]: 'badge-secondary',
|
|
4169
|
+
[TaskStatus.STARTED]: 'badge-primary',
|
|
4170
|
+
[TaskStatus.SUCCESS]: 'badge-success',
|
|
4171
|
+
[TaskStatus.FAILURE]: 'badge-danger',
|
|
4172
|
+
[TaskStatus.CANCELLED]: 'badge-warning',
|
|
4189
4173
|
};
|
|
4190
4174
|
return statusMap[status] || 'badge-secondary';
|
|
4191
4175
|
}
|
|
@@ -4206,24 +4190,24 @@ class AsyncTaskUIService {
|
|
|
4206
4190
|
}
|
|
4207
4191
|
}
|
|
4208
4192
|
canCancelTask(status) {
|
|
4209
|
-
return status ===
|
|
4193
|
+
return status === TaskStatus.QUEUED || status === TaskStatus.STARTED;
|
|
4210
4194
|
}
|
|
4211
4195
|
canDownloadResult(task) {
|
|
4212
|
-
return task.status ===
|
|
4213
|
-
(task.taskType ===
|
|
4214
|
-
task.taskType ===
|
|
4196
|
+
return task.status === TaskStatus.SUCCESS &&
|
|
4197
|
+
(task.taskType === TaskType.EXPORT_EXCEL || task.taskType === TaskType.EXPORT_SDRF ||
|
|
4198
|
+
task.taskType === TaskType.EXPORT_MULTIPLE_SDRF || task.taskType === TaskType.EXPORT_MULTIPLE_EXCEL);
|
|
4215
4199
|
}
|
|
4216
4200
|
isImportTask(taskType) {
|
|
4217
|
-
return taskType ===
|
|
4201
|
+
return taskType === TaskType.IMPORT_SDRF || taskType === TaskType.IMPORT_EXCEL;
|
|
4218
4202
|
}
|
|
4219
4203
|
isExportTask(taskType) {
|
|
4220
|
-
return taskType ===
|
|
4221
|
-
taskType ===
|
|
4204
|
+
return taskType === TaskType.EXPORT_SDRF || taskType === TaskType.EXPORT_EXCEL ||
|
|
4205
|
+
taskType === TaskType.EXPORT_MULTIPLE_SDRF || taskType === TaskType.EXPORT_MULTIPLE_EXCEL;
|
|
4222
4206
|
}
|
|
4223
4207
|
handleExportTaskCompletion(task) {
|
|
4224
4208
|
const taskName = this.getTaskDisplayName(task.taskType);
|
|
4225
4209
|
const tableName = task.metadataTableName ? ` for "${task.metadataTableName}"` : '';
|
|
4226
|
-
if (task.taskType ===
|
|
4210
|
+
if (task.taskType === TaskType.EXPORT_SDRF || task.taskType === TaskType.EXPORT_EXCEL) {
|
|
4227
4211
|
setTimeout(() => {
|
|
4228
4212
|
this.downloadTaskResult(task.id);
|
|
4229
4213
|
}, 1500);
|
|
@@ -4239,7 +4223,7 @@ class AsyncTaskUIService {
|
|
|
4239
4223
|
const progressInfo = task.progressPercentage && task.progressPercentage > 0 ? ` (${task.progressPercentage}%)` : '';
|
|
4240
4224
|
const progressDesc = task.progressDescription ? `: ${task.progressDescription}` : '';
|
|
4241
4225
|
switch (task.status) {
|
|
4242
|
-
case
|
|
4226
|
+
case TaskStatus.SUCCESS:
|
|
4243
4227
|
const result = task.result;
|
|
4244
4228
|
if (result && result.success === false) {
|
|
4245
4229
|
const errorCount = result.errors?.length || 0;
|
|
@@ -4254,10 +4238,10 @@ class AsyncTaskUIService {
|
|
|
4254
4238
|
}
|
|
4255
4239
|
}
|
|
4256
4240
|
break;
|
|
4257
|
-
case
|
|
4241
|
+
case TaskStatus.FAILURE:
|
|
4258
4242
|
this.toastService.error(`Validation Error: ${taskName}${tableName} failed: ${task.errorMessage || 'Unknown error'}`);
|
|
4259
4243
|
break;
|
|
4260
|
-
case
|
|
4244
|
+
case TaskStatus.CANCELLED:
|
|
4261
4245
|
this.toastService.warning(`Validation Cancelled: ${taskName}${tableName} was cancelled`);
|
|
4262
4246
|
break;
|
|
4263
4247
|
}
|
|
@@ -4283,7 +4267,7 @@ class AsyncTaskUIService {
|
|
|
4283
4267
|
const progressInfo = task.progressPercentage && task.progressPercentage > 0 ? ` (${task.progressPercentage}%)` : '';
|
|
4284
4268
|
const progressDesc = task.progressDescription ? `: ${task.progressDescription}` : '';
|
|
4285
4269
|
switch (task.status) {
|
|
4286
|
-
case
|
|
4270
|
+
case TaskStatus.SUCCESS:
|
|
4287
4271
|
const result = task.result;
|
|
4288
4272
|
let message = `${taskName}${tableName} completed successfully!`;
|
|
4289
4273
|
if (result) {
|
|
@@ -4306,10 +4290,10 @@ class AsyncTaskUIService {
|
|
|
4306
4290
|
}
|
|
4307
4291
|
this.toastService.success(message, 6000);
|
|
4308
4292
|
break;
|
|
4309
|
-
case
|
|
4293
|
+
case TaskStatus.FAILURE:
|
|
4310
4294
|
this.toastService.error(`${taskName} Failed${progressInfo}: ${task.errorMessage || 'Import failed due to an unknown error'}${progressDesc}`);
|
|
4311
4295
|
break;
|
|
4312
|
-
case
|
|
4296
|
+
case TaskStatus.CANCELLED:
|
|
4313
4297
|
this.toastService.warning(`${taskName} Cancelled${progressInfo}: Import was cancelled${progressDesc}`);
|
|
4314
4298
|
break;
|
|
4315
4299
|
}
|
|
@@ -4320,7 +4304,7 @@ class AsyncTaskUIService {
|
|
|
4320
4304
|
const progressInfo = task.progressPercentage && task.progressPercentage > 0 ? ` (${task.progressPercentage}%)` : '';
|
|
4321
4305
|
const progressDesc = task.progressDescription ? `: ${task.progressDescription}` : '';
|
|
4322
4306
|
switch (task.status) {
|
|
4323
|
-
case
|
|
4307
|
+
case TaskStatus.SUCCESS:
|
|
4324
4308
|
const result = task.result;
|
|
4325
4309
|
let message = `${taskName}${tableName} completed successfully!`;
|
|
4326
4310
|
if (result) {
|
|
@@ -4340,10 +4324,10 @@ class AsyncTaskUIService {
|
|
|
4340
4324
|
}
|
|
4341
4325
|
this.toastService.success(message, 5000);
|
|
4342
4326
|
break;
|
|
4343
|
-
case
|
|
4327
|
+
case TaskStatus.FAILURE:
|
|
4344
4328
|
this.toastService.error(`${taskName} Failed: ${task.errorMessage || 'Unknown error'}${progressInfo}${progressDesc}`);
|
|
4345
4329
|
break;
|
|
4346
|
-
case
|
|
4330
|
+
case TaskStatus.CANCELLED:
|
|
4347
4331
|
this.toastService.warning(`${taskName} Cancelled: ${taskName}${tableName} was cancelled`);
|
|
4348
4332
|
break;
|
|
4349
4333
|
}
|
|
@@ -9901,5 +9885,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
|
|
|
9901
9885
|
* Generated bundle index. Do not edit.
|
|
9902
9886
|
*/
|
|
9903
9887
|
|
|
9904
|
-
export { AdminWebSocketService, AsyncExportService, AsyncImportService, AsyncTaskService, AsyncTaskUIService, AsyncValidationService, COLUMN_TYPE_CONFIGS, ChunkedImportService, ChunkedUploadService, ColumnEditModal, ColumnTemplateEditModal, ColumnTemplates, ColumnType, CupcakeVanilla, ElectronService, ExcelExportModalComponent, FavoriteManagement, FavouriteMetadataOptionService, MSTermType, MetadataColumnAutofillModal, MetadataColumnHistoryModal, MetadataColumnService, MetadataColumnTemplateService, MetadataColumnTemplateShareService, MetadataManagementService, MetadataTableDetails, MetadataTableEditModal, MetadataTableService, MetadataTableTemplateEditModal, MetadataTableTemplateService, MetadataTableTemplates, MetadataValidationModal, MetadataValueEditModal, NotificationService, NotificationType, OFFICIAL_SDRF_COLUMNS, ONTOLOGY_TYPE_CONFIGS, OntologySearchService, OntologyType, OntologyTypeLabels, OntologyUtils, SDRFDefaultsService, SamplePoolCreateModal, SamplePoolDetailsModal, SamplePoolEditModal, SamplePoolService, SchemaSelectionModal, SchemaService, SdrfAgeInput, SdrfCleavageInput, SdrfColumnCategory, SdrfModificationInput, SdrfSpikedCompoundInput, SdrfSyntaxService, SearchReplaceModal,
|
|
9888
|
+
export { AdminWebSocketService, AsyncExportService, AsyncImportService, AsyncTaskService, AsyncTaskUIService, AsyncValidationService, COLUMN_TYPE_CONFIGS, ChunkedImportService, ChunkedUploadService, ColumnEditModal, ColumnTemplateEditModal, ColumnTemplates, ColumnType, CupcakeVanilla, ElectronService, ExcelExportModalComponent, FavoriteManagement, FavouriteMetadataOptionService, MSTermType, MetadataColumnAutofillModal, MetadataColumnHistoryModal, MetadataColumnService, MetadataColumnTemplateService, MetadataColumnTemplateShareService, MetadataManagementService, MetadataTableDetails, MetadataTableEditModal, MetadataTableService, MetadataTableTemplateEditModal, MetadataTableTemplateService, MetadataTableTemplates, MetadataValidationModal, MetadataValueEditModal, NotificationService, NotificationType, OFFICIAL_SDRF_COLUMNS, ONTOLOGY_TYPE_CONFIGS, OntologySearchService, OntologyType, OntologyTypeLabels, OntologyUtils, SDRFDefaultsService, SamplePoolCreateModal, SamplePoolDetailsModal, SamplePoolEditModal, SamplePoolService, SchemaSelectionModal, SchemaService, SdrfAgeInput, SdrfCleavageInput, SdrfColumnCategory, SdrfModificationInput, SdrfSpikedCompoundInput, SdrfSyntaxService, SearchReplaceModal, TableCreationModalComponent, TemplatePermissionLabels, TemplatePermissionLevel, TemplateSchemaSelectionModal, ValidationResultsModal, Websocket, getRequiredSdrfColumns, getSdrfColumnByName, getSdrfColumnsByCategory, isSdrfColumnRequired, isUnimodFullData };
|
|
9905
9889
|
//# sourceMappingURL=noatgnu-cupcake-vanilla.mjs.map
|