Skip to content
Snippets Groups Projects
Commit 03d81e98 authored by Lukasz Lopatowski's avatar Lukasz Lopatowski
Browse files

Merge branch '210-adding-a-new-app-version-via-json-enhancement' into 'develop'

Implement new json exports

See merge request !9
parents 02acab26 b52ad9d7
Tags
1 merge request!9Implement new json exports
......@@ -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>
......
......@@ -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');
......
......@@ -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
......@@ -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}`)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment