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) {
|
||||
this.versionCompatibilityService.acsVersionInitialized$.subscribe(() => {
|
||||
if (requiredVersion && this.versionCompatibilityService.isVersionSupported(requiredVersion)) {
|
||||
this.viewContainer.createEmbeddedView(this.templateRef);
|
||||
} else {
|
||||
this.viewContainer.clear();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -73,4 +73,11 @@ describe('VersionCompatibilityService', () => {
|
||||
expect(versionCompatibilityService.isVersionSupported('7.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 { VersionModel, EcmProductVersionModel } from '../models/product-version.model';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { ReplaySubject } from 'rxjs';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -26,10 +27,17 @@ import { filter } from 'rxjs/operators';
|
||||
export class VersionCompatibilityService {
|
||||
private acsVersion: VersionModel;
|
||||
|
||||
acsVersionInitialized$ = new ReplaySubject();
|
||||
|
||||
constructor(private discoveryApiService: DiscoveryApiService) {
|
||||
this.discoveryApiService.ecmProductInfo$
|
||||
.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 {
|
||||
|
Reference in New Issue
Block a user