mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
about component (#3337)
This commit is contained in:
parent
0ebd4c62e3
commit
9772b2308a
demo-shell/src/app/components/about
docs/core
lib/core
@ -1,49 +1 @@
|
||||
<div class="about-container">
|
||||
<h3>Server settings</h3>
|
||||
<mat-list>
|
||||
<small>The values below are taken from the AppConfigService </small>
|
||||
<mat-list-item>
|
||||
<h4 matLine> Alfresco Process Services URL: {{ bpmHost }}</h4>
|
||||
</mat-list-item>
|
||||
<mat-divider></mat-divider>
|
||||
<mat-list-item>
|
||||
<h4 matLine>Alfresco Content Services URL: {{ ecmHost }}</h4>
|
||||
</mat-list-item>
|
||||
</mat-list>
|
||||
|
||||
<h3>Product Versions</h3>
|
||||
<div *ngIf="bpmVersion">
|
||||
<h3>BPM</h3>
|
||||
<label> Edition </label> {{ bpmVersion.edition }}
|
||||
<p></p>
|
||||
<label> Version </label> {{ bpmVersion.majorVersion }}.{{ bpmVersion.minorVersion }}.{{ bpmVersion.revisionVersion }}
|
||||
</div>
|
||||
<div *ngIf="ecmVersion">
|
||||
<h3>ECM</h3>
|
||||
<label> Edition </label> {{ ecmVersion.edition }}
|
||||
<p></p>
|
||||
<label> Version </label> {{ ecmVersion.version.display }}
|
||||
<p></p>
|
||||
<h4>License</h4>
|
||||
<adf-datatable [data]="license"></adf-datatable>
|
||||
|
||||
<h4> Status</h4>
|
||||
<adf-datatable [data]="status"></adf-datatable>
|
||||
|
||||
<h4>Modules</h4>
|
||||
|
||||
<adf-datatable [data]="modules"></adf-datatable>
|
||||
</div>
|
||||
|
||||
<div *ngIf="githubUrlCommitAlpha">
|
||||
<h3>Source code</h3>
|
||||
<small>You are running the project based on the following commit:</small>
|
||||
<div>
|
||||
<a [href]="githubUrlCommitAlpha">{{githubUrlCommitAlpha}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Packages</h3>
|
||||
<small>Current project is using the following ADF libraries:</small>
|
||||
<adf-datatable [data]="data"></adf-datatable>
|
||||
</div>
|
||||
<adf-about></adf-about>
|
||||
|
@ -15,123 +15,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Http } from '@angular/http';
|
||||
import {
|
||||
AuthenticationService,
|
||||
AppConfigService,
|
||||
BpmProductVersionModel,
|
||||
DiscoveryApiService,
|
||||
EcmProductVersionModel,
|
||||
ObjectDataTableAdapter
|
||||
} from '@alfresco/adf-core';
|
||||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-about-page',
|
||||
templateUrl: './about.component.html',
|
||||
styleUrls: ['./about.component.css']
|
||||
templateUrl: './about.component.html'
|
||||
})
|
||||
export class AboutComponent implements OnInit {
|
||||
export class AboutComponent {
|
||||
|
||||
data: ObjectDataTableAdapter;
|
||||
status: ObjectDataTableAdapter;
|
||||
license: ObjectDataTableAdapter;
|
||||
modules: ObjectDataTableAdapter;
|
||||
githubUrlCommitAlpha = 'https://github.com/Alfresco/alfresco-ng2-components/commits/';
|
||||
|
||||
ecmHost = '';
|
||||
bpmHost = '';
|
||||
|
||||
ecmVersion: EcmProductVersionModel = null;
|
||||
bpmVersion: BpmProductVersionModel = null;
|
||||
|
||||
constructor(private http: Http,
|
||||
private appConfig: AppConfigService,
|
||||
private authService: AuthenticationService,
|
||||
private discovery: DiscoveryApiService) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
if (this.authService.isEcmLoggedIn()) {
|
||||
this.discovery.getEcmProductInfo().subscribe((ecmVers) => {
|
||||
this.ecmVersion = ecmVers;
|
||||
|
||||
this.modules = new ObjectDataTableAdapter(this.ecmVersion.modules, [
|
||||
{ type: 'text', key: 'id', title: 'ID', sortable: true },
|
||||
{ type: 'text', key: 'title', title: 'Title', sortable: true },
|
||||
{ type: 'text', key: 'version', title: 'Description', sortable: true },
|
||||
{ type: 'text', key: 'installDate', title: 'Install Date', sortable: true },
|
||||
{ type: 'text', key: 'installState', title: 'Install State', sortable: true },
|
||||
{ type: 'text', key: 'versionMin', title: 'Version Minor', sortable: true },
|
||||
{ type: 'text', key: 'versionMax', title: 'Version Max', sortable: true }
|
||||
]);
|
||||
|
||||
this.status = new ObjectDataTableAdapter([this.ecmVersion.status], [
|
||||
{ type: 'text', key: 'isReadOnly', title: 'ReadOnly', sortable: true },
|
||||
{ type: 'text', key: 'isAuditEnabled', title: 'Is Audit Enable', sortable: true },
|
||||
{ type: 'text', key: 'isQuickShareEnabled', title: 'Is quick shared enable', sortable: true },
|
||||
{ type: 'text', key: 'isThumbnailGenerationEnabled', title: 'Thumbnail Generation', sortable: true }
|
||||
]);
|
||||
|
||||
this.license = new ObjectDataTableAdapter([this.ecmVersion.license], [
|
||||
{ type: 'text', key: 'issuedAt', title: 'Issued At', sortable: true },
|
||||
{ type: 'text', key: 'expiresAt', title: 'Expires At', sortable: true },
|
||||
{ type: 'text', key: 'remainingDays', title: 'Remaining Days', sortable: true },
|
||||
{ type: 'text', key: 'holder', title: 'Holder', sortable: true },
|
||||
{ type: 'text', key: 'mode', title: 'Mode', sortable: true },
|
||||
{ type: 'text', key: 'isClusterEnabled', title: 'Is Cluster Enabled', sortable: true },
|
||||
{ type: 'text', key: 'isCryptodocEnabled', title: 'Is Cryptodoc Enable', sortable: true }
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
if (this.authService.isBpmLoggedIn()) {
|
||||
this.discovery.getBpmProductInfo().subscribe((bpmVers) => {
|
||||
this.bpmVersion = bpmVers;
|
||||
});
|
||||
}
|
||||
|
||||
this.http.get('/versions.json?' + new Date()).subscribe(response => {
|
||||
const regexp = new RegExp('^(@alfresco)');
|
||||
|
||||
const alfrescoPackages = Object.keys(response.json().dependencies).filter((val) => {
|
||||
return regexp.test(val);
|
||||
});
|
||||
|
||||
const alfrescoPackagesTableRepresentation = [];
|
||||
alfrescoPackages.forEach((val) => {
|
||||
alfrescoPackagesTableRepresentation.push({
|
||||
name: val,
|
||||
version: response.json().dependencies[val].version
|
||||
});
|
||||
});
|
||||
|
||||
this.gitHubLinkCreation(alfrescoPackagesTableRepresentation);
|
||||
|
||||
this.data = new ObjectDataTableAdapter(alfrescoPackagesTableRepresentation, [
|
||||
{ type: 'text', key: 'name', title: 'Name', sortable: true },
|
||||
{ type: 'text', key: 'version', title: 'Version', sortable: true }
|
||||
]);
|
||||
|
||||
});
|
||||
|
||||
this.ecmHost = this.appConfig.get<string>('ecmHost');
|
||||
this.bpmHost = this.appConfig.get<string>('bpmHost');
|
||||
}
|
||||
|
||||
private gitHubLinkCreation(alfrescoPackagesTableRepresentation): void {
|
||||
const corePackage = alfrescoPackagesTableRepresentation.find((packageUp) => {
|
||||
return packageUp.name === '@alfresco/adf-core';
|
||||
});
|
||||
|
||||
if (corePackage) {
|
||||
const commitIsh = corePackage.version.split('-');
|
||||
if (commitIsh.length > 1) {
|
||||
this.githubUrlCommitAlpha = this.githubUrlCommitAlpha + commitIsh[1];
|
||||
} else {
|
||||
this.githubUrlCommitAlpha = this.githubUrlCommitAlpha + corePackage.version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
20
docs/core/about.component.md
Normal file
20
docs/core/about.component.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
Added: v2.4.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2018-05-16
|
||||
---
|
||||
|
||||
# About Component
|
||||
|
||||
This component allow you to have a general overview of the version of ADF installed and the status of the Content service and Process service
|
||||
Note at the moment this component is mostly for internal use and it require:
|
||||
|
||||
- create a version file : npm list --depth=0 --json=true --prod=true > versions.json
|
||||
- provide this version file in the dist folder
|
||||
|
||||
### Basic Usage
|
||||
|
||||
```html
|
||||
<adf-about></adf-about>
|
||||
```
|
||||
|
49
lib/core/about/about.component.html
Normal file
49
lib/core/about/about.component.html
Normal file
@ -0,0 +1,49 @@
|
||||
<div class="about-container">
|
||||
<h3>Server settings</h3>
|
||||
<mat-list>
|
||||
<small>The values below are taken from the AppConfigService </small>
|
||||
<mat-list-item>
|
||||
<h4 matLine> Alfresco Process Services URL: {{ bpmHost }}</h4>
|
||||
</mat-list-item>
|
||||
<mat-divider></mat-divider>
|
||||
<mat-list-item>
|
||||
<h4 matLine>Alfresco Content Services URL: {{ ecmHost }}</h4>
|
||||
</mat-list-item>
|
||||
</mat-list>
|
||||
|
||||
<h3>Product Versions</h3>
|
||||
<div *ngIf="bpmVersion">
|
||||
<h3>BPM</h3>
|
||||
<label> Edition </label> {{ bpmVersion.edition }}
|
||||
<p></p>
|
||||
<label> Version </label> {{ bpmVersion.majorVersion }}.{{ bpmVersion.minorVersion }}.{{ bpmVersion.revisionVersion }}
|
||||
</div>
|
||||
<div *ngIf="ecmVersion">
|
||||
<h3>ECM</h3>
|
||||
<label> Edition </label> {{ ecmVersion.edition }}
|
||||
<p></p>
|
||||
<label> Version </label> {{ ecmVersion.version.display }}
|
||||
<p></p>
|
||||
<h4>License</h4>
|
||||
<adf-datatable [data]="license"></adf-datatable>
|
||||
|
||||
<h4> Status</h4>
|
||||
<adf-datatable [data]="status"></adf-datatable>
|
||||
|
||||
<h4>Modules</h4>
|
||||
|
||||
<adf-datatable [data]="modules"></adf-datatable>
|
||||
</div>
|
||||
|
||||
<div *ngIf="githubUrlCommitAlpha">
|
||||
<h3>Source code</h3>
|
||||
<small>You are running the project based on the following commit:</small>
|
||||
<div>
|
||||
<a [href]="githubUrlCommitAlpha">{{githubUrlCommitAlpha}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Packages</h3>
|
||||
<small>Current project is using the following ADF libraries:</small>
|
||||
<adf-datatable [data]="data"></adf-datatable>
|
||||
</div>
|
135
lib/core/about/about.component.ts
Normal file
135
lib/core/about/about.component.ts
Normal file
@ -0,0 +1,135 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
|
||||
import { Http } from '@angular/http';
|
||||
import { AuthenticationService } from '../services/authentication.service';
|
||||
import { AppConfigService } from '../app-config/app-config.service';
|
||||
import { BpmProductVersionModel, EcmProductVersionModel } from '../models/product-version.model';
|
||||
import { DiscoveryApiService } from '../services/discovery-api.service';
|
||||
import { ObjectDataTableAdapter } from '../datatable/data/object-datatable-adapter';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-about',
|
||||
templateUrl: './about.component.html',
|
||||
styleUrls: ['./about.component.scss'],
|
||||
encapsulation: ViewEncapsulation.None
|
||||
})
|
||||
export class AboutComponent implements OnInit {
|
||||
|
||||
data: ObjectDataTableAdapter;
|
||||
status: ObjectDataTableAdapter;
|
||||
license: ObjectDataTableAdapter;
|
||||
modules: ObjectDataTableAdapter;
|
||||
githubUrlCommitAlpha = 'https://github.com/Alfresco/alfresco-ng2-components/commits/';
|
||||
|
||||
ecmHost = '';
|
||||
bpmHost = '';
|
||||
|
||||
ecmVersion: EcmProductVersionModel = null;
|
||||
bpmVersion: BpmProductVersionModel = null;
|
||||
|
||||
constructor(private http: Http,
|
||||
private appConfig: AppConfigService,
|
||||
private authService: AuthenticationService,
|
||||
private discovery: DiscoveryApiService) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
if (this.authService.isEcmLoggedIn()) {
|
||||
this.discovery.getEcmProductInfo().subscribe((ecmVers) => {
|
||||
this.ecmVersion = ecmVers;
|
||||
|
||||
this.modules = new ObjectDataTableAdapter(this.ecmVersion.modules, [
|
||||
{ type: 'text', key: 'id', title: 'ID', sortable: true },
|
||||
{ type: 'text', key: 'title', title: 'Title', sortable: true },
|
||||
{ type: 'text', key: 'version', title: 'Description', sortable: true },
|
||||
{ type: 'text', key: 'installDate', title: 'Install Date', sortable: true },
|
||||
{ type: 'text', key: 'installState', title: 'Install State', sortable: true },
|
||||
{ type: 'text', key: 'versionMin', title: 'Version Minor', sortable: true },
|
||||
{ type: 'text', key: 'versionMax', title: 'Version Max', sortable: true }
|
||||
]);
|
||||
|
||||
this.status = new ObjectDataTableAdapter([this.ecmVersion.status], [
|
||||
{ type: 'text', key: 'isReadOnly', title: 'ReadOnly', sortable: true },
|
||||
{ type: 'text', key: 'isAuditEnabled', title: 'Is Audit Enable', sortable: true },
|
||||
{ type: 'text', key: 'isQuickShareEnabled', title: 'Is quick shared enable', sortable: true },
|
||||
{ type: 'text', key: 'isThumbnailGenerationEnabled', title: 'Thumbnail Generation', sortable: true }
|
||||
]);
|
||||
|
||||
this.license = new ObjectDataTableAdapter([this.ecmVersion.license], [
|
||||
{ type: 'text', key: 'issuedAt', title: 'Issued At', sortable: true },
|
||||
{ type: 'text', key: 'expiresAt', title: 'Expires At', sortable: true },
|
||||
{ type: 'text', key: 'remainingDays', title: 'Remaining Days', sortable: true },
|
||||
{ type: 'text', key: 'holder', title: 'Holder', sortable: true },
|
||||
{ type: 'text', key: 'mode', title: 'Mode', sortable: true },
|
||||
{ type: 'text', key: 'isClusterEnabled', title: 'Is Cluster Enabled', sortable: true },
|
||||
{ type: 'text', key: 'isCryptodocEnabled', title: 'Is Cryptodoc Enable', sortable: true }
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
if (this.authService.isBpmLoggedIn()) {
|
||||
this.discovery.getBpmProductInfo().subscribe((bpmVers) => {
|
||||
this.bpmVersion = bpmVers;
|
||||
});
|
||||
}
|
||||
|
||||
this.http.get('/versions.json?' + new Date()).subscribe(response => {
|
||||
const regexp = new RegExp('^(@alfresco)');
|
||||
|
||||
const alfrescoPackages = Object.keys(response.json().dependencies).filter((val) => {
|
||||
return regexp.test(val);
|
||||
});
|
||||
|
||||
const alfrescoPackagesTableRepresentation = [];
|
||||
alfrescoPackages.forEach((val) => {
|
||||
alfrescoPackagesTableRepresentation.push({
|
||||
name: val,
|
||||
version: response.json().dependencies[val].version
|
||||
});
|
||||
});
|
||||
|
||||
this.gitHubLinkCreation(alfrescoPackagesTableRepresentation);
|
||||
|
||||
this.data = new ObjectDataTableAdapter(alfrescoPackagesTableRepresentation, [
|
||||
{ type: 'text', key: 'name', title: 'Name', sortable: true },
|
||||
{ type: 'text', key: 'version', title: 'Version', sortable: true }
|
||||
]);
|
||||
|
||||
});
|
||||
|
||||
this.ecmHost = this.appConfig.get<string>('ecmHost');
|
||||
this.bpmHost = this.appConfig.get<string>('bpmHost');
|
||||
}
|
||||
|
||||
private gitHubLinkCreation(alfrescoPackagesTableRepresentation): void {
|
||||
const corePackage = alfrescoPackagesTableRepresentation.find((packageUp) => {
|
||||
return packageUp.name === '@alfresco/adf-core';
|
||||
});
|
||||
|
||||
if (corePackage) {
|
||||
const commitIsh = corePackage.version.split('-');
|
||||
if (commitIsh.length > 1) {
|
||||
this.githubUrlCommitAlpha = this.githubUrlCommitAlpha + commitIsh[1];
|
||||
} else {
|
||||
this.githubUrlCommitAlpha = this.githubUrlCommitAlpha + corePackage.version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
41
lib/core/about/about.module.ts
Normal file
41
lib/core/about/about.module.ts
Normal file
@ -0,0 +1,41 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { NgModule } from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { MaterialModule } from '../material.module';
|
||||
import { AboutComponent } from './about.component';
|
||||
import { DataTableModule } from '../datatable/datatable.module';
|
||||
import { DataColumnModule } from '../data-column/data-column.module';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
MaterialModule,
|
||||
TranslateModule,
|
||||
DataTableModule,
|
||||
DataColumnModule
|
||||
],
|
||||
declarations: [
|
||||
AboutComponent
|
||||
],
|
||||
exports: [
|
||||
AboutComponent
|
||||
]
|
||||
})
|
||||
export class AboutModule {}
|
18
lib/core/about/index.ts
Normal file
18
lib/core/about/index.ts
Normal file
@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './public-api';
|
20
lib/core/about/public-api.ts
Normal file
20
lib/core/about/public-api.ts
Normal file
@ -0,0 +1,20 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './about.component';
|
||||
|
||||
export * from './about.module';
|
@ -22,6 +22,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
||||
|
||||
import { MaterialModule } from './material.module';
|
||||
import { AboutModule } from './about/about.module';
|
||||
import { AppConfigModule } from './app-config/app-config.module';
|
||||
import { CardViewModule } from './card-view/card-view.module';
|
||||
import { CollapsableModule } from './collapsable/collapsable.module';
|
||||
@ -127,6 +128,7 @@ export function providers() {
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
AboutModule,
|
||||
ViewerModule,
|
||||
SidenavLayoutModule,
|
||||
PipeModule,
|
||||
@ -161,6 +163,7 @@ export function providers() {
|
||||
})
|
||||
],
|
||||
exports: [
|
||||
AboutModule,
|
||||
ViewerModule,
|
||||
SidenavLayoutModule,
|
||||
PipeModule,
|
||||
@ -194,6 +197,7 @@ export class CoreModuleLazy {
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
AboutModule,
|
||||
ViewerModule,
|
||||
SidenavLayoutModule,
|
||||
PipeModule,
|
||||
@ -231,6 +235,7 @@ export class CoreModuleLazy {
|
||||
EmptyContentComponent
|
||||
],
|
||||
exports: [
|
||||
AboutModule,
|
||||
ViewerModule,
|
||||
SidenavLayoutModule,
|
||||
PipeModule,
|
||||
|
@ -15,6 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './about/index';
|
||||
export * from './viewer/index';
|
||||
export * from './userinfo/index';
|
||||
export * from './toolbar/index';
|
||||
|
Loading…
x
Reference in New Issue
Block a user