mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACA-3870] Fix Version Compatibility Initialization (#6288)
This commit is contained in:
@@ -37,10 +37,12 @@ export class VersionCompatibilityDirective {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private validateAcsVersion(requiredVersion: string) {
|
private validateAcsVersion(requiredVersion: string) {
|
||||||
|
this.versionCompatibilityService.acsVersionInitialized$.subscribe(() => {
|
||||||
if (requiredVersion && this.versionCompatibilityService.isVersionSupported(requiredVersion)) {
|
if (requiredVersion && this.versionCompatibilityService.isVersionSupported(requiredVersion)) {
|
||||||
this.viewContainer.createEmbeddedView(this.templateRef);
|
this.viewContainer.createEmbeddedView(this.templateRef);
|
||||||
} else {
|
} else {
|
||||||
this.viewContainer.clear();
|
this.viewContainer.clear();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -73,4 +73,11 @@ describe('VersionCompatibilityService', () => {
|
|||||||
expect(versionCompatibilityService.isVersionSupported('7.0.0')).toBe(true);
|
expect(versionCompatibilityService.isVersionSupported('7.0.0')).toBe(true);
|
||||||
expect(versionCompatibilityService.isVersionSupported('6.0.0')).toBe(true);
|
expect(versionCompatibilityService.isVersionSupported('6.0.0')).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should emit versionCompatibilityInitialized after retrieving acs version', (done) => {
|
||||||
|
versionCompatibilityService.acsVersionInitialized$.subscribe(() => {
|
||||||
|
expect(versionCompatibilityService.getAcsVersion()).toEqual({ display: '7.0.1', major: '7', minor: '0', patch: '1' } as any);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -19,6 +19,7 @@ import { Injectable } from '@angular/core';
|
|||||||
import { DiscoveryApiService } from './discovery-api.service';
|
import { DiscoveryApiService } from './discovery-api.service';
|
||||||
import { VersionModel, EcmProductVersionModel } from '../models/product-version.model';
|
import { VersionModel, EcmProductVersionModel } from '../models/product-version.model';
|
||||||
import { filter } from 'rxjs/operators';
|
import { filter } from 'rxjs/operators';
|
||||||
|
import { ReplaySubject } from 'rxjs';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -26,10 +27,17 @@ import { filter } from 'rxjs/operators';
|
|||||||
export class VersionCompatibilityService {
|
export class VersionCompatibilityService {
|
||||||
private acsVersion: VersionModel;
|
private acsVersion: VersionModel;
|
||||||
|
|
||||||
|
acsVersionInitialized$ = new ReplaySubject();
|
||||||
|
|
||||||
constructor(private discoveryApiService: DiscoveryApiService) {
|
constructor(private discoveryApiService: DiscoveryApiService) {
|
||||||
this.discoveryApiService.ecmProductInfo$
|
this.discoveryApiService.ecmProductInfo$
|
||||||
.pipe(filter(acsInfo => !!acsInfo))
|
.pipe(filter(acsInfo => !!acsInfo))
|
||||||
.subscribe((acsInfo: EcmProductVersionModel) => this.acsVersion = acsInfo.version);
|
.subscribe((acsInfo: EcmProductVersionModel) => this.initializeAcsVersion(acsInfo.version));
|
||||||
|
}
|
||||||
|
|
||||||
|
private initializeAcsVersion(acsVersion: VersionModel) {
|
||||||
|
this.acsVersion = acsVersion;
|
||||||
|
this.acsVersionInitialized$.next();
|
||||||
}
|
}
|
||||||
|
|
||||||
getAcsVersion(): VersionModel {
|
getAcsVersion(): VersionModel {
|
||||||
|
Reference in New Issue
Block a user