about component (#3337)

This commit is contained in:
Eugenio Romano
2018-05-17 09:58:22 +01:00
committed by GitHub
parent 0ebd4c62e3
commit 9772b2308a
11 changed files with 293 additions and 163 deletions

View 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>

View File

@@ -0,0 +1,10 @@
.about-container {
padding: 10px;
}
.adf-table-version {
width: 60%;
border: 0;
border-spacing: 0;
text-align: center;
}

View 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;
}
}
}
}

View 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
View 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';

View 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';

View File

@@ -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,

View File

@@ -15,6 +15,7 @@
* limitations under the License.
*/
export * from './about/index';
export * from './viewer/index';
export * from './userinfo/index';
export * from './toolbar/index';