Skip to content

Commit 8760235

Browse files
authored
Merge pull request #180 from CertifaiAI/amal_exportstatus
Split export api to export trigger and export status
2 parents 7abeb24 + dd827e7 commit 8760235

File tree

10 files changed

+70
-27
lines changed

10 files changed

+70
-27
lines changed

dist/classifai/2-es2015.f246d1e840d9bd78fc90.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/classifai/2-es2015.f420bb8d29402e3094ef.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/classifai/2-es5.f246d1e840d9bd78fc90.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/classifai/2-es5.f420bb8d29402e3094ef.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/classifai/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
<link rel="stylesheet" href="styles.28b18ae68b134e4bd5ff.css"></head>
1313
<body>
1414
<app-root></app-root>
15-
<script src="runtime-es2015.a8980a847c0035b44f9d.js" type="module"></script><script src="runtime-es5.a8980a847c0035b44f9d.js" nomodule defer></script><script src="polyfills-es5.967163391b02608d5ea8.js" nomodule defer></script><script src="polyfills-es2015.59f4ceb238cc6d4419d6.js" type="module"></script><script src="main-es2015.81aa37678a16b20e8ad5.js" type="module"></script><script src="main-es5.81aa37678a16b20e8ad5.js" nomodule defer></script></body>
15+
<script src="runtime-es2015.71a30def11a5d7ac608b.js" type="module"></script><script src="runtime-es5.71a30def11a5d7ac608b.js" nomodule defer></script><script src="polyfills-es5.967163391b02608d5ea8.js" nomodule defer></script><script src="polyfills-es2015.59f4ceb238cc6d4419d6.js" type="module"></script><script src="main-es2015.81aa37678a16b20e8ad5.js" type="module"></script><script src="main-es5.81aa37678a16b20e8ad5.js" nomodule defer></script></body>
1616
</html>

dist/classifai/runtime-es2015.a8980a847c0035b44f9d.js renamed to dist/classifai/runtime-es2015.71a30def11a5d7ac608b.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/classifai/runtime-es5.a8980a847c0035b44f9d.js renamed to dist/classifai/runtime-es5.71a30def11a5d7ac608b.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/image-labelling/image-labelling-api.service.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { ImageLabellingModeService } from './image-labelling-mode.service';
1111
import { Injectable } from '@angular/core';
1212
import {
1313
ExportResponse,
14+
ExportStatus,
1415
Message,
1516
MessageBase64Img,
1617
MessageProjectProgress,
@@ -76,6 +77,10 @@ export class ImageLabellingApiService {
7677
);
7778
};
7879

80+
exportProjectStatus() {
81+
return this.http.get<ExportStatus>(`${this.hostPort}v2/${this.imageLabellingMode}/projects/exportstatus`);
82+
}
83+
7984
reloadProject = (projectName: string): Observable<Message> => {
8085
return this.http.put<Message>(`${this.hostPort}v2/${this.imageLabellingMode}/projects/${projectName}/reload`, {
8186
newprojectid: projectName,

src/layouts/image-labelling-layout/image-labelling-layout.component.ts

Lines changed: 52 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import {
3434
SelectedLabelProps,
3535
TabsProps,
3636
} from 'src/components/image-labelling/image-labelling.model';
37-
import { Message } from 'src/shared/types/message/message.model';
37+
import { ExportStatus, Message } from 'src/shared/types/message/message.model';
3838
import { ModalBodyStyle } from 'src/components/modal/modal.model';
3939
import { ProjectSchema } from '../data-set-layout/data-set-layout.model';
4040

@@ -393,27 +393,57 @@ export class ImageLabellingLayoutComponent implements OnInit, OnDestroy {
393393
exportType === 'cfgdata' && this.processingNum++;
394394
const projectName = this.selectedProjectName;
395395
const exportProject$ = this._imgLblApiService.exportProject(projectName, exportType);
396-
exportProject$.pipe(first()).subscribe(({ message, project_config_path }) => {
397-
exportType === 'cfgdata' && this.processingNum--;
398-
if (message === 1) {
399-
console.log(this._languageService._translate.get('exportSuccess').subscribe());
400-
this._languageService._translate.get('exportSuccess').subscribe((translated) => {
401-
// alert(projectName + translated);
402-
this.toggleExportProjectModalMessage(true);
403-
this.modalSpanMessage = projectName + translated;
404-
this.modalSpanLocationPath = project_config_path;
405-
this.processIsSuccess(true);
406-
});
407-
} else {
408-
this._languageService._translate.get('exportFailed').subscribe((translated) => {
409-
// alert(translated + projectName);
410-
this.toggleExportProjectModalMessage(true);
411-
this.modalSpanMessage = translated + projectName;
412-
this.processIsSuccess(false);
413-
});
414-
}
415-
});
416-
this.closeExportProjectModal();
396+
const exportProjectStatus$ = this._imgLblApiService.exportProjectStatus();
397+
398+
const returnResponse = ({ message }: Message): Observable<ExportStatus> => {
399+
return message === 1
400+
? interval(500).pipe(
401+
mergeMap(() => exportProjectStatus$),
402+
first(({ export_status }) => {
403+
this.isOverlayOn = export_status === 1 ? true : false;
404+
this.isLoading = export_status === 1 ? true : false;
405+
const isValidResponse: boolean =
406+
export_status === 0 || export_status === 2 || export_status === 3;
407+
return isValidResponse;
408+
}),
409+
)
410+
: throwError((error: any) => {
411+
console.error(error);
412+
return error;
413+
});
414+
};
415+
this.subjectSubscription = this.subject$
416+
.pipe(
417+
first(),
418+
mergeMap(() => exportProject$),
419+
mergeMap((message) => returnResponse(message)),
420+
)
421+
.subscribe(
422+
({ export_status, project_config_path }) => {
423+
exportType === 'cfgdata' && this.processingNum--;
424+
if (export_status === 2) {
425+
this._languageService._translate.get('exportSuccess').subscribe((translated) => {
426+
this.toggleExportProjectModalMessage(true);
427+
this.modalSpanMessage = projectName + translated;
428+
this.modalSpanLocationPath = project_config_path;
429+
this.processIsSuccess(true);
430+
});
431+
} else {
432+
this._languageService._translate.get('exportFailed').subscribe((translated) => {
433+
this.toggleExportProjectModalMessage(true);
434+
this.modalSpanMessage = translated + projectName;
435+
this.processIsSuccess(false);
436+
});
437+
}
438+
},
439+
(error: Error) => {},
440+
() => {
441+
this.closeExportProjectModal();
442+
},
443+
);
444+
445+
// make initial call
446+
this.subject$.next();
417447
};
418448

419449
toggleExportProjectModalMessage = (open: boolean): void => {

src/shared/types/message/message.model.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ export type Message = {
2626

2727
export type ExportResponse = {
2828
message: message;
29+
error_code: error_code;
30+
error_message: errormessage;
31+
};
32+
33+
export type ExportStatus = {
34+
message: message;
35+
export_status: error_code;
36+
export_status_message: errormessage;
2937
project_config_path: project_config_path;
3038
};
3139

0 commit comments

Comments
 (0)