mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-4122] Add sticky header feature to datatable and refactor styles (#4370)
* [ADF-4122] Add sticky header config to datatable and refactor styles * [ADF-4122] Fix core unit tests * [ADF-4122] Commit requested changes * [ADF-4122] Fix e2e tests * Update docs/core/datatable.component.md Co-Authored-By: davidcanonieto <david.cano@alfresco.com>
This commit is contained in:
committed by
Eugenio Romano
parent
a7d058fd2e
commit
7da9bd89cb
@@ -2,28 +2,37 @@
|
||||
<input id="adf-datatable-filter-input" matInput placeholder="Name filter" [(ngModel)]="data.filterValue">
|
||||
</mat-form-field>
|
||||
|
||||
<adf-datatable
|
||||
#dataTable
|
||||
[data]="data"
|
||||
[selectionMode]="selectionMode"
|
||||
[multiselect]="multiselect"
|
||||
[actions]="true"
|
||||
rowStyleClass="custom-row-style"
|
||||
(showRowActionsMenu)="onShowRowActionsMenu($event)"
|
||||
(executeRowAction)="onExecuteRowAction($event)"
|
||||
(row-click)="onRowClick($event)"
|
||||
(row-dblclick)="onRowDblClick($event)">
|
||||
<!-- HTML column definition demo -->
|
||||
<!--
|
||||
<data-columns>
|
||||
<data-column type="image" key="icon" [sortable]="false"></data-column>
|
||||
<data-column key="id" title="Id"></data-column>
|
||||
<data-column key="createdOn" title="Created"></data-column>
|
||||
<data-column key="name" title="Name" class="adf-full-width name-column"></data-column>
|
||||
<data-column key="createdBy.name" title="Created By"></data-column>
|
||||
</data-columns>
|
||||
-->
|
||||
</adf-datatable>
|
||||
<mat-slide-toggle
|
||||
id="adf-toggle-sticky-header"
|
||||
[color]="'primary'"
|
||||
(change)="toggleStickyHeader()"
|
||||
[checked]="stickyHeader">
|
||||
Sticky header
|
||||
</mat-slide-toggle>
|
||||
|
||||
<div style="height: 300px; overflow-y: auto;">
|
||||
<adf-datatable
|
||||
#dataTable
|
||||
[data]="data"
|
||||
[stickyHeader]="stickyHeader"
|
||||
[selectionMode]="selectionMode"
|
||||
[multiselect]="multiselect"
|
||||
[actions]="true"
|
||||
rowStyleClass="custom-row-style"
|
||||
(showRowActionsMenu)="onShowRowActionsMenu($event)" (executeRowAction)="onExecuteRowAction($event)"
|
||||
(row-click)="onRowClick($event)" (row-dblclick)="onRowDblClick($event)">
|
||||
<!-- HTML column definition demo -->
|
||||
<!--
|
||||
<data-columns>
|
||||
<data-column type="image" key="icon" [sortable]="false"></data-column>
|
||||
<data-column key="id" title="Id"></data-column>
|
||||
<data-column key="createdOn" title="Created"></data-column>
|
||||
<data-column key="name" title="Name" class="adf-full-width name-column"></data-column>
|
||||
<data-column key="createdBy.name" title="Created By"></data-column>
|
||||
</data-columns>
|
||||
-->
|
||||
</adf-datatable>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Selected items: {{ dataTable.selection?.length }}
|
||||
@@ -47,4 +56,4 @@
|
||||
<button mat-raised-button (click)="addRow()">{{ 'DATATABLE.ADD_ROW'| translate }}</button>
|
||||
<button mat-raised-button (click)="replaceRows()">{{ 'DATATABLE.REPLACE_ROWS'| translate }}</button>
|
||||
<button mat-raised-button (click)="replaceColumns()">{{ 'DATATABLE.REPLACE_COLUMNS'| translate }}</button>
|
||||
</div>
|
||||
</div>
|
@@ -54,6 +54,7 @@ export class DataTableComponent {
|
||||
|
||||
multiselect = false;
|
||||
data: FilteredDataAdapter;
|
||||
stickyHeader = false;
|
||||
|
||||
@Input()
|
||||
selectionMode = 'single';
|
||||
@@ -100,18 +101,18 @@ export class DataTableComponent {
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: 'Image 1',
|
||||
name: 'Image 8',
|
||||
createdOn: new Date(2016, 6, 2, 15, 8, 4),
|
||||
createdBy: this._createdBy,
|
||||
icon: this._imageUrl
|
||||
icon: 'material-icons://alarm'
|
||||
}
|
||||
],
|
||||
[
|
||||
{ type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail' },
|
||||
{ type: 'text', key: 'id', title: 'Id', sortable: true , cssClass: 'adf-desktop-only'},
|
||||
{ type: 'text', key: 'createdOn', title: 'Created On', sortable: true },
|
||||
{ type: 'text', key: 'name', title: 'Name', cssClass: 'adf-full-width adf-name-column', sortable: true },
|
||||
{ type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true, cssClass: 'adf-desktop-only'}
|
||||
{ type: 'text', key: 'id', title: 'Id', sortable: true , cssClass: 'adf-ellipsis-cell' },
|
||||
{ type: 'text', key: 'createdOn', title: 'Created On', sortable: true, cssClass: 'adf-ellipsis-cell adf-expand-cell-5' },
|
||||
{ type: 'text', key: 'name', title: 'Name', cssClass: '', sortable: true },
|
||||
{ type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true, cssClass: ''}
|
||||
]
|
||||
);
|
||||
|
||||
@@ -199,4 +200,8 @@ export class DataTableComponent {
|
||||
onRowDblClick(event) {
|
||||
this.logService.log(event);
|
||||
}
|
||||
|
||||
toggleStickyHeader() {
|
||||
this.stickyHeader = !this.stickyHeader;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user