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
No related branches found
No related tags found
1 merge request!9Implement new json exports
...@@ -48,6 +48,9 @@ ...@@ -48,6 +48,9 @@
<li> <li>
<a (click)="appAddJsonVersion.show()" >{{ 'APPS_MANAGEMENT.ADD_NEW_VERSION_BUTTON' | translate }} (JSON)</a> <a (click)="appAddJsonVersion.show()" >{{ 'APPS_MANAGEMENT.ADD_NEW_VERSION_BUTTON' | translate }} (JSON)</a>
</li> </li>
<li>
<a (click)="getApplicationInfoJSONWithBase(app?.id)"> {{'APPS_MANAGEMENT.EXPORT_JSON' | translate}}</a>
</li>
<li> <li>
<a [routerLink]="['/admin/apps/edit', app?.id]">{{ 'APPS_MANAGEMENT.EDIT_BUTTON' | translate }}</a> <a [routerLink]="['/admin/apps/edit', app?.id]">{{ 'APPS_MANAGEMENT.EDIT_BUTTON' | translate }}</a>
</li> </li>
...@@ -78,7 +81,7 @@ ...@@ -78,7 +81,7 @@
<a (click)="showModal($event, app, version)" *ngIf="getStateAsString(version?.state) !== 'DELETED'">{{ 'APPS_MANAGEMENT.CHANGE_STATE_BUTTON' | translate }}</a> <a (click)="showModal($event, app, version)" *ngIf="getStateAsString(version?.state) !== 'DELETED'">{{ 'APPS_MANAGEMENT.CHANGE_STATE_BUTTON' | translate }}</a>
</li> </li>
<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>
<li> <li>
<a [routerLink]="['/admin/apps/edit/version', version?.appVersionId]">{{ 'APPS_MANAGEMENT.EDIT_BUTTON' | translate }}</a> <a [routerLink]="['/admin/apps/edit/version', version?.appVersionId]">{{ 'APPS_MANAGEMENT.EDIT_BUTTON' | translate }}</a>
......
...@@ -130,9 +130,27 @@ export class AppManagementListComponent implements OnInit { ...@@ -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 => { this.appsService.getApplicationDTO(id).subscribe( appDTO => {
appDTO = this.deleteIDsFields(appDTO); appDTO = this.deleteIDsFields(appDTO);
// delete appDTO.applicationBase;
console.log(appDTO);
let blob = new Blob([JSON.stringify(appDTO, null, 4)], {type: 'application/json'}) let blob = new Blob([JSON.stringify(appDTO, null, 4)], {type: 'application/json'})
this.blobUrl = window.URL.createObjectURL(blob); this.blobUrl = window.URL.createObjectURL(blob);
let a = document.createElement('a'); let a = document.createElement('a');
......
...@@ -10,3 +10,14 @@ export class ApplicationDTO { ...@@ -10,3 +10,14 @@ export class ApplicationDTO {
this.application = new Application() 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'; ...@@ -9,7 +9,7 @@ import {catchError, debounceTime} from 'rxjs/operators';
import {AppStateChange} from '../model/appstatechange'; import {AppStateChange} from '../model/appstatechange';
import {ApplicationBase} from '../model/application-base'; import {ApplicationBase} from '../model/application-base';
import {Application} from '../model/application'; import {Application} from '../model/application';
import {ApplicationDTO} from '../model/application-dto'; import {ApplicationDTO, ApplicationVersionList} from '../model/application-dto';
import {ApplicationVersion} from '../model/application-version'; import {ApplicationVersion} from '../model/application-version';
@Injectable({ @Injectable({
...@@ -50,6 +50,11 @@ export class AppsService extends GenericDataService { ...@@ -50,6 +50,11 @@ export class AppsService extends GenericDataService {
public hasRunningInstances(id: number): Observable<boolean> { public hasRunningInstances(id: number): Observable<boolean> {
return this.http.get<boolean>(this.appConfig.getApiUrl() + '/apps/instances/running/app/' + id); 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 // application version
public getApplicationVersions(id: number): Observable<ApplicationVersion[]> { public getApplicationVersions(id: number): Observable<ApplicationVersion[]> {
return this.get<ApplicationVersion[]>(this.appConfig.getApiUrl() + `/apps/versions/${id}`) 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