[ACA-1552] extensibility support for document lists (#714)

* dynamic column component

* dynamic columns for files

* support conditional rendering

* libraries preset

* shared files preset

* recent files preset

* favorites preset

* trashcan preset

* load presets from the extension config

* code fixes
This commit is contained in:
Denys Vuika
2018-10-14 08:21:58 +01:00
committed by Cilibiu Bogdan
parent 933f426759
commit 9dcdacce40
19 changed files with 785 additions and 239 deletions

View File

@@ -38,30 +38,37 @@
</empty-folder-content>
<data-columns>
<data-column
key="$thumbnail"
type="image"
[sortable]="false"
class="image-table-cell">
</data-column>
<ng-container *ngFor="let column of columns">
<data-column
class="adf-data-table-cell--ellipsis__name"
key="title"
title="APP.DOCUMENT_LIST.COLUMNS.TITLE">
<ng-container *ngIf="column.template && !(column.desktopOnly && isSmallScreen)">
<data-column
[key]="column.key"
[title]="column.title"
[type]="column.type"
[format]="column.format"
[class]="column.class"
[sortable]="column.sortable">
<ng-template let-context>
<app-library-name-column [context]="context"></app-library-name-column>
<app-dynamic-column
[id]="column.template"
[context]="context">
</app-dynamic-column>
</ng-template>
</data-column>
</data-column>
</ng-container>
<data-column
*ngIf="!isSmallScreen"
key="visibility"
title="APP.DOCUMENT_LIST.COLUMNS.STATUS">
<ng-template let-context>
<app-library-status-column [context]="context"></app-library-status-column>
</ng-template>
</data-column>
<ng-container *ngIf="!column.template && !(column.desktopOnly && isSmallScreen)">
<data-column
[key]="column.key"
[title]="column.title"
[type]="column.type"
[format]="column.format"
[class]="column.class"
[sortable]="column.sortable">
</data-column>
</ng-container>
</ng-container>
</data-columns>
</adf-document-list>

View File

@@ -39,6 +39,8 @@ import { NavigateLibraryAction } from 'src/app/store/actions';
export class LibrariesComponent extends PageComponent implements OnInit {
isSmallScreen = false;
columns: any[] = [];
constructor(
content: ContentManagementService,
store: Store<AppStore>,
@@ -60,6 +62,8 @@ export class LibrariesComponent extends PageComponent implements OnInit {
this.isSmallScreen = result.matches;
})
);
this.columns = this.extensions.documentListPresets.libraries || [];
}
navigateTo(node: SiteEntry) {