[ACA-4382 ] About Page refactoring to use it across all the platform (#7365)

* about page refactor for global usage

* Development About

* add storybook

* fix build

* fix

* fix

* fix imports

* fix

* fix lint

* fix

* fix

* fix

* fix
This commit is contained in:
Eugenio Romano
2021-11-23 10:30:10 +00:00
committed by GitHub
parent dcb966f391
commit c8688bf0bf
56 changed files with 1079 additions and 777 deletions

View File

@@ -17,10 +17,11 @@
import { Injectable } from '@angular/core';
import { from, Observable, throwError, Subject } from 'rxjs';
import { BpmProductVersionModel, EcmProductVersionModel } from '../models/product-version.model';
import { AlfrescoApiService } from './alfresco-api.service';
import { catchError, map, switchMap, filter, take } from 'rxjs/operators';
import { AboutApi, DiscoveryApi, SystemPropertiesApi, SystemPropertiesRepresentation } from '@alfresco/js-api';
import { AboutApi, DiscoveryApi, RepositoryInfo, SystemPropertiesApi, SystemPropertiesRepresentation } from '@alfresco/js-api';
import { BpmProductVersionModel } from '../models/product-version.model';
import { AlfrescoApiService } from './alfresco-api.service';
import { AuthenticationService } from './authentication.service';
@Injectable({
@@ -31,7 +32,7 @@ export class DiscoveryApiService {
/**
* Gets product information for Content Services.
*/
ecmProductInfo$ = new Subject<EcmProductVersionModel>();
ecmProductInfo$ = new Subject<RepositoryInfo>();
constructor(
private apiService: AlfrescoApiService,
@@ -50,12 +51,12 @@ export class DiscoveryApiService {
* Gets product information for Content Services.
* @returns ProductVersionModel containing product details
*/
public getEcmProductInfo(): Observable<EcmProductVersionModel> {
public getEcmProductInfo(): Observable<RepositoryInfo> {
const discoveryApi = new DiscoveryApi(this.apiService.getInstance());
return from(discoveryApi.getRepositoryInformation())
.pipe(
map((res) => new EcmProductVersionModel(res)),
map((res) => res.entry.repository),
catchError((err) => throwError(err))
);
}

View File

@@ -16,7 +16,11 @@
*/
import { fakeAsync, TestBed } from '@angular/core/testing';
import { setupTestBed, AlfrescoApiService, IdentityGroupService, IdentityGroupSearchParam } from '@alfresco/adf-core';
import { setupTestBed } from '../testing/setup-test-bed';
import { AlfrescoApiService } from './alfresco-api.service';
import { IdentityGroupService } from './identity-group.service';
import { IdentityGroupSearchParam } from '../models/identity-group.model';
import { HttpErrorResponse } from '@angular/common/http';
import { throwError, of } from 'rxjs';
import {

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { setupTestBed } from '@alfresco/adf-core';
import { setupTestBed } from '../testing/setup-test-bed';
import { HttpClientModule, HttpErrorResponse, HttpResponse } from '@angular/common/http';
import { TestBed } from '@angular/core/testing';
import { of, throwError } from 'rxjs';

View File

@@ -24,11 +24,10 @@ import { AppConfigService } from '../app-config/app-config.service';
import { setupTestBed } from '../testing/setup-test-bed';
import { CoreTestingModule } from '../testing/core.testing.module';
import { AssocChildBody, AssociationBody } from '@alfresco/js-api';
import { AssocChildBody, AssociationBody, RepositoryInfo } from '@alfresco/js-api';
import { TranslateModule } from '@ngx-translate/core';
import { DiscoveryApiService } from './discovery-api.service';
import { BehaviorSubject } from 'rxjs';
import { EcmProductVersionModel } from '../models';
declare let jasmine: any;
@@ -37,7 +36,7 @@ describe('UploadService', () => {
let appConfigService: AppConfigService;
let uploadFileSpy: jasmine.Spy;
const mockProductInfo = new BehaviorSubject<EcmProductVersionModel>(null);
const mockProductInfo = new BehaviorSubject<RepositoryInfo>(null);
setupTestBed({
imports: [
@@ -82,7 +81,7 @@ describe('UploadService', () => {
uploadFileSpy = spyOn(service.uploadApi, 'uploadFile').and.callThrough();
jasmine.Ajax.install();
mockProductInfo.next({ status: { isThumbnailGenerationEnabled: true } } as EcmProductVersionModel);
mockProductInfo.next({ status: { isThumbnailGenerationEnabled: true } } as RepositoryInfo);
});
afterEach(() => {
@@ -539,7 +538,7 @@ describe('UploadService', () => {
});
it('Should not pass rendition if it is disabled', () => {
mockProductInfo.next({ status: { isThumbnailGenerationEnabled: false } } as EcmProductVersionModel);
mockProductInfo.next({ status: { isThumbnailGenerationEnabled: false } } as RepositoryInfo);
const filesFake = new FileModel(
<File> { name: 'fake-name', size: 10 },

View File

@@ -22,12 +22,12 @@ import { CoreTestingModule } from '../testing/core.testing.module';
import { VersionCompatibilityService } from './version-compatibility.service';
import { BehaviorSubject } from 'rxjs';
import { TranslateModule } from '@ngx-translate/core';
import { EcmProductVersionModel } from './../models/product-version.model';
import { RepositoryInfo } from '@alfresco/js-api';
describe('VersionCompatibilityService', () => {
let versionCompatibilityService: VersionCompatibilityService;
let discoveryApiService: DiscoveryApiService;
const mockProductInfo = new BehaviorSubject<EcmProductVersionModel>(null);
const mockProductInfo = new BehaviorSubject<RepositoryInfo>(null);
const acsResponceMock = {
version: {
@@ -56,7 +56,7 @@ describe('VersionCompatibilityService', () => {
beforeEach(async () => {
discoveryApiService = TestBed.inject(DiscoveryApiService);
versionCompatibilityService = TestBed.inject(VersionCompatibilityService);
mockProductInfo.next(acsResponceMock as EcmProductVersionModel);
mockProductInfo.next(acsResponceMock as RepositoryInfo);
versionCompatibilityService = new VersionCompatibilityService(discoveryApiService);
});

View File

@@ -16,31 +16,31 @@
*/
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';
import { VersionInfo, RepositoryInfo } from '@alfresco/js-api';
import { DiscoveryApiService } from './discovery-api.service';
@Injectable({
providedIn: 'root'
})
export class VersionCompatibilityService {
private acsVersion: VersionModel;
private acsVersion: VersionInfo;
acsVersionInitialized$ = new ReplaySubject();
constructor(private discoveryApiService: DiscoveryApiService) {
this.discoveryApiService.ecmProductInfo$
.pipe(filter(acsInfo => !!acsInfo))
.subscribe((acsInfo: EcmProductVersionModel) => this.initializeAcsVersion(acsInfo.version));
.subscribe((acsInfo: RepositoryInfo) => this.initializeAcsVersion(acsInfo.version));
}
private initializeAcsVersion(acsVersion: VersionModel) {
private initializeAcsVersion(acsVersion: VersionInfo) {
this.acsVersion = acsVersion;
this.acsVersionInitialized$.next();
}
getAcsVersion(): VersionModel {
getAcsVersion(): VersionInfo {
return this.acsVersion;
}
@@ -66,7 +66,7 @@ export class VersionCompatibilityService {
return versionSupported;
}
private parseVersion(version: string): VersionModel {
private parseVersion(version: string): VersionInfo {
const major = version.split('.')[0];
const minor = version.split('.')[1] || '0';
const patch = version.split('.')[2] || '0';
@@ -75,6 +75,6 @@ export class VersionCompatibilityService {
major: major,
minor: minor,
patch: patch
} as VersionModel;
} as VersionInfo;
}
}