mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
[ACS-4537] Make aca-about secondary entry of aca-content (#3170)
* break dependency on core module * convert about to secondary entry * Fixes after rebase --------- Co-authored-by: Denys Vuika <denys.vuika@gmail.com>
This commit is contained in:
45
projects/aca-content/about/assets/about.plugin.json
Normal file
45
projects/aca-content/about/assets/about.plugin.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "14157f82-6489-4187-9b68-1a5e38fadeca",
|
||||
"$name": "About Plugin",
|
||||
"$version": "0.0.1",
|
||||
"$vendor": "Hyland Software, Inc. and its affiliates",
|
||||
"$license": "LGPL-3.0",
|
||||
|
||||
"actions": [
|
||||
{
|
||||
"id": "app.actions.about",
|
||||
"type": "NAVIGATE_URL",
|
||||
"payload": "/about"
|
||||
}
|
||||
],
|
||||
|
||||
"routes": [
|
||||
{
|
||||
"id": "app.about",
|
||||
"path": "about",
|
||||
"layout": "app.layout.main",
|
||||
"component": "app.about.component"
|
||||
}
|
||||
],
|
||||
|
||||
"features": {
|
||||
"header": [
|
||||
{
|
||||
"id": "app.header.more",
|
||||
"children": [
|
||||
{
|
||||
"id": "app.header.about",
|
||||
"order": 100,
|
||||
"title": "APP.BROWSE.ABOUT.TITLE",
|
||||
"description": "APP.BROWSE.ABOUT.TITLE",
|
||||
"icon": "info",
|
||||
"actions": {
|
||||
"click": "app.actions.about"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
5
projects/aca-content/about/ng-package.json
Normal file
5
projects/aca-content/about/ng-package.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"lib": {
|
||||
"entryFile": "src/public-api.ts"
|
||||
}
|
||||
}
|
36
projects/aca-content/about/src/about.component.html
Normal file
36
projects/aca-content/about/src/about.component.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<aca-page-layout>
|
||||
<aca-page-layout-header>
|
||||
<button mat-icon-button [routerLink]="landingPage">
|
||||
<mat-icon class="app-profile-icon">arrow_back</mat-icon>
|
||||
</button>
|
||||
<h1>{{ 'APP.BROWSE.ABOUT.TITLE' | translate }}</h1>
|
||||
</aca-page-layout-header>
|
||||
|
||||
<aca-page-layout-content [scrollable]="true">
|
||||
<adf-about>
|
||||
<adf-about-panel *ngIf="dev" [label]="'ABOUT.SERVER_SETTINGS.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-server-settings></adf-about-server-settings>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel [label]="'ABOUT.REPOSITORY' | translate" *ngIf="repository">
|
||||
<ng-template>
|
||||
<adf-about-repository-info [data]="repository"></adf-about-repository-info>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel *ngIf="dev" [label]="'ABOUT.PACKAGES.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-package-list [dependencies]="packageJson?.dependencies"></adf-about-package-list>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
|
||||
<adf-about-panel *ngIf="extensions$ | async as extensions" [label]="'ABOUT.PLUGINS.TITLE' | translate">
|
||||
<ng-template>
|
||||
<adf-about-extension-list [data]="extensions"></adf-about-extension-list>
|
||||
</ng-template>
|
||||
</adf-about-panel>
|
||||
</adf-about>
|
||||
</aca-page-layout-content>
|
||||
</aca-page-layout>
|
4
projects/aca-content/about/src/about.component.scss
Normal file
4
projects/aca-content/about/src/about.component.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
adf-about {
|
||||
padding: 10px;
|
||||
width: 100%;
|
||||
}
|
77
projects/aca-content/about/src/about.component.ts
Normal file
77
projects/aca-content/about/src/about.component.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Component, Inject, OnInit, Optional } from '@angular/core';
|
||||
import { DEV_MODE_TOKEN } from './dev-mode.tokens';
|
||||
import { Observable } from 'rxjs';
|
||||
import { AppExtensionService, ExtensionRef } from '@alfresco/adf-extensions';
|
||||
import { AppConfigService, AuthenticationService, RepositoryInfo } from '@alfresco/adf-core';
|
||||
import { DiscoveryApiService } from '@alfresco/adf-content-services';
|
||||
import { PACKAGE_JSON } from './package-json.token';
|
||||
|
||||
@Component({
|
||||
selector: 'app-about-page',
|
||||
templateUrl: './about.component.html',
|
||||
styles: [
|
||||
`
|
||||
adf-about {
|
||||
width: 100%;
|
||||
}
|
||||
`
|
||||
]
|
||||
})
|
||||
export class AboutComponent implements OnInit {
|
||||
pkg: any;
|
||||
dev = false;
|
||||
extensions$: Observable<ExtensionRef[]>;
|
||||
repository: RepositoryInfo = null;
|
||||
landingPage: string;
|
||||
|
||||
constructor(
|
||||
@Inject(DEV_MODE_TOKEN) devMode,
|
||||
@Optional()
|
||||
@Inject(PACKAGE_JSON)
|
||||
public packageJson,
|
||||
private authService: AuthenticationService,
|
||||
private appExtensions: AppExtensionService,
|
||||
private discovery: DiscoveryApiService,
|
||||
appConfigService: AppConfigService
|
||||
) {
|
||||
this.dev = !devMode;
|
||||
this.extensions$ = this.appExtensions.references$;
|
||||
this.landingPage = appConfigService.get('landingPage', '/personal-files');
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
if (this.authService.isEcmLoggedIn()) {
|
||||
this.setECMInfo();
|
||||
}
|
||||
}
|
||||
|
||||
setECMInfo() {
|
||||
this.discovery.getEcmProductInfo().subscribe((repository) => {
|
||||
this.repository = repository as RepositoryInfo;
|
||||
});
|
||||
}
|
||||
}
|
64
projects/aca-content/about/src/aca-about.module.ts
Normal file
64
projects/aca-content/about/src/aca-about.module.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { ModuleWithProviders, NgModule, Provider } from '@angular/core';
|
||||
import { AboutComponent } from './about.component';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { SharedModule, PageLayoutModule } from '@alfresco/aca-shared';
|
||||
|
||||
import { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';
|
||||
import { DEV_MODE_TOKEN } from './dev-mode.tokens';
|
||||
import { PACKAGE_JSON } from './package-json.token';
|
||||
import { AboutModule } from '@alfresco/adf-core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { RouterModule } from '@angular/router';
|
||||
|
||||
@NgModule({
|
||||
imports: [CommonModule, RouterModule, TranslateModule, SharedModule, PageLayoutModule, AboutModule],
|
||||
declarations: [AboutComponent],
|
||||
providers: [provideExtensionConfig(['about.plugin.json'])]
|
||||
})
|
||||
export class AcaAboutModule {
|
||||
constructor(extensions: ExtensionService) {
|
||||
extensions.setComponents({
|
||||
'app.about.component': AboutComponent
|
||||
});
|
||||
}
|
||||
|
||||
public static forRoot(devMode: any, packageJson?: any): ModuleWithProviders<AcaAboutModule> {
|
||||
const providers: Provider[] = [{ provide: DEV_MODE_TOKEN, useValue: devMode }];
|
||||
|
||||
if (packageJson) {
|
||||
providers.push({
|
||||
provide: PACKAGE_JSON,
|
||||
useValue: packageJson
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
ngModule: AcaAboutModule,
|
||||
providers
|
||||
};
|
||||
}
|
||||
}
|
27
projects/aca-content/about/src/dev-mode.tokens.ts
Normal file
27
projects/aca-content/about/src/dev-mode.tokens.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { InjectionToken } from '@angular/core';
|
||||
|
||||
export const DEV_MODE_TOKEN = new InjectionToken<any>('devMode');
|
27
projects/aca-content/about/src/package-json.token.ts
Normal file
27
projects/aca-content/about/src/package-json.token.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { InjectionToken } from '@angular/core';
|
||||
|
||||
export const PACKAGE_JSON = new InjectionToken<any>('PACKAGE_JSON');
|
28
projects/aca-content/about/src/public-api.ts
Normal file
28
projects/aca-content/about/src/public-api.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export * from './about.component';
|
||||
export * from './aca-about.module';
|
||||
export * from './dev-mode.tokens';
|
||||
export * from './package-json.token';
|
Reference in New Issue
Block a user