From b52ad9d7862628f87687320b4be70b5af62e310f Mon Sep 17 00:00:00 2001 From: kbeyro <121854496+kbeyro@users.noreply.github.com> Date: Thu, 20 Jun 2024 14:14:27 +0200 Subject: [PATCH] Implement new json exports --- .../appmanagementlist.component.html | 5 ++++- .../appmanagementlist.component.ts | 20 ++++++++++++++++++- src/app/model/application-dto.ts | 11 ++++++++++ src/app/service/apps.service.ts | 7 ++++++- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html index 139fac8a..19fca710 100644 --- a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html +++ b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.html @@ -48,6 +48,9 @@ <li> <a (click)="appAddJsonVersion.show()" >{{ 'APPS_MANAGEMENT.ADD_NEW_VERSION_BUTTON' | translate }} (JSON)</a> </li> + <li> + <a (click)="getApplicationInfoJSONWithBase(app?.id)"> {{'APPS_MANAGEMENT.EXPORT_JSON' | translate}}</a> + </li> <li> <a [routerLink]="['/admin/apps/edit', app?.id]">{{ 'APPS_MANAGEMENT.EDIT_BUTTON' | translate }}</a> </li> @@ -78,7 +81,7 @@ <a (click)="showModal($event, app, version)" *ngIf="getStateAsString(version?.state) !== 'DELETED'">{{ 'APPS_MANAGEMENT.CHANGE_STATE_BUTTON' | translate }}</a> </li> <li> - <a (click)="getApplicationInfoJSON(version?.appVersionId)">{{'APPS_MANAGEMENT.EXPORT_JSON' | translate}}</a> + <a (click)="getApplicationInfoJSONWithoutBase(version?.appVersionId)">{{'APPS_MANAGEMENT.EXPORT_JSON' | translate}}</a> </li> <li> <a [routerLink]="['/admin/apps/edit/version', version?.appVersionId]">{{ 'APPS_MANAGEMENT.EDIT_BUTTON' | translate }}</a> diff --git a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts index c4c0cd82..698eaf0d 100644 --- a/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts +++ b/src/app/appmarket/appmanagement/app-management-list/appmanagementlist.component.ts @@ -130,9 +130,27 @@ export class AppManagementListComponent implements OnInit { }) } - public getApplicationInfoJSON(id: number) { + public getApplicationInfoJSONWithBase(id: number) { + this.appsService.getApplicationBaseWithVersion(id).subscribe( appDTO => { + // appDTO = this.deleteIDsFields(appDTO); + let blob = new Blob([JSON.stringify(appDTO, null, 4)], {type: 'application/json'}) + this.blobUrl = window.URL.createObjectURL(blob); + let a = document.createElement('a'); + document.body.appendChild(a); + a.setAttribute('style', 'display: none'); + a.href = this.blobUrl; + a.download = `${appDTO.applicationBase.name}.json` + a.click(); + window.URL.revokeObjectURL(this.blobUrl); + a.remove(); + }) + } + + public getApplicationInfoJSONWithoutBase(id: number) { this.appsService.getApplicationDTO(id).subscribe( appDTO => { appDTO = this.deleteIDsFields(appDTO); + // delete appDTO.applicationBase; + console.log(appDTO); let blob = new Blob([JSON.stringify(appDTO, null, 4)], {type: 'application/json'}) this.blobUrl = window.URL.createObjectURL(blob); let a = document.createElement('a'); diff --git a/src/app/model/application-dto.ts b/src/app/model/application-dto.ts index 03e171da..9678f698 100644 --- a/src/app/model/application-dto.ts +++ b/src/app/model/application-dto.ts @@ -10,3 +10,14 @@ export class ApplicationDTO { this.application = new Application() } } + + +export class ApplicationVersionList { + public applicationBase: ApplicationBase = undefined; + public applications: Application[] = [] + + constructor() { + this.applicationBase = new ApplicationBase(); + this.applications = [] + } +} \ No newline at end of file diff --git a/src/app/service/apps.service.ts b/src/app/service/apps.service.ts index 944f5db9..708b9132 100644 --- a/src/app/service/apps.service.ts +++ b/src/app/service/apps.service.ts @@ -9,7 +9,7 @@ import {catchError, debounceTime} from 'rxjs/operators'; import {AppStateChange} from '../model/appstatechange'; import {ApplicationBase} from '../model/application-base'; import {Application} from '../model/application'; -import {ApplicationDTO} from '../model/application-dto'; +import {ApplicationDTO, ApplicationVersionList} from '../model/application-dto'; import {ApplicationVersion} from '../model/application-version'; @Injectable({ @@ -50,6 +50,11 @@ export class AppsService extends GenericDataService { public hasRunningInstances(id: number): Observable<boolean> { return this.http.get<boolean>(this.appConfig.getApiUrl() + '/apps/instances/running/app/' + id); } + // getAllVersionWithBase + public getApplicationBaseWithVersion(id: number): Observable<ApplicationVersionList> { + return this.get<ApplicationVersionList>(this.appConfig.getApiUrl() + '/apps/base/allversions/' + id); + } + // application version public getApplicationVersions(id: number): Observable<ApplicationVersion[]> { return this.get<ApplicationVersion[]>(this.appConfig.getApiUrl() + `/apps/versions/${id}`) -- GitLab