From 2258c12b56e379b7a692fc5d3ae64fdb75ebcd53 Mon Sep 17 00:00:00 2001 From: Zak Timson Date: Thu, 28 Jun 2018 19:53:50 -0400 Subject: [PATCH] Added grid refresh --- README.md | 4 + projects/ng-datatable/package.json | 2 +- .../src/lib/ng-datatable.component.ts | 80 +++++++++---------- 3 files changed, 45 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 8700fde..d80da2b 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,10 @@ Clear filters being applied to. Update can be set to false to prevent instant fi Clear all selected rows. +#### refresh() + +Refreshes the grid + ##### selectAll() Select all rows. Ignores pagination but not filtering. diff --git a/projects/ng-datatable/package.json b/projects/ng-datatable/package.json index e0329c1..2f766b6 100644 --- a/projects/ng-datatable/package.json +++ b/projects/ng-datatable/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/ng-datatable", - "version": "1.7.5", + "version": "1.8.5", "homepage": "https://github.com/ztimson/ng-datatable", "license": "Apache-2.0", "author": { diff --git a/projects/ng-datatable/src/lib/ng-datatable.component.ts b/projects/ng-datatable/src/lib/ng-datatable.component.ts index 43048b5..373b093 100644 --- a/projects/ng-datatable/src/lib/ng-datatable.component.ts +++ b/projects/ng-datatable/src/lib/ng-datatable.component.ts @@ -43,7 +43,7 @@ export class NgDatatableComponent implements OnInit { get data(): any[] { return this.processedData; } // Return the processed data @Input() set data(data: any[]) { this._data = data; - this._process(); + this.refresh(); } // =================================================================================================================== @@ -60,7 +60,44 @@ export class NgDatatableComponent implements OnInit { } // Helpers =========================================================================================================== - private _process() { + _convertWidth(width) { + if(typeof width == 'number') return `${width}px`; + return width; + } + + _dotNotation(obj: object, prop: string) { + return prop.split('.').reduce((obj, prop) => obj[prop], obj); + } + + addFilter(...filters: ((row?: any, index?: number, arr?: any[]) => boolean)[]) { + this.filters = this.filters.concat(filters); + this.refresh(); + this.filterChanged.emit(this.filters); + } + + changePage(page: number) { + if(!this.paginate || page < 1 || page > this.pages.length) return; + this.page = page; + this.refresh(); + this.pageChanged.emit(this.page); + } + + clearFilters(update=true) { + this.filters = []; + if(update) this.refresh(); + this.filterChanged.emit(this.filters); + } + + clearSelected() { + let emit = this.selectedRows.size > 0; + this.selectedRows.clear(); + if(emit) this.selectionChanged.emit([]); + } + + @HostListener('window:resize', ['$event']) + onResize(event) { this.width = event.target.innerWidth; } + + refresh() { this.processing.emit(this.processedData); this.clearSelected(); this.processedData = this._data; @@ -88,43 +125,6 @@ export class NgDatatableComponent implements OnInit { this.finished.emit(this.processedData); } - _convertWidth(width) { - if(typeof width == 'number') return `${width}px`; - return width; - } - - _dotNotation(obj: object, prop: string) { - return prop.split('.').reduce((obj, prop) => obj[prop], obj); - } - - addFilter(...filters: ((row?: any, index?: number, arr?: any[]) => boolean)[]) { - this.filters = this.filters.concat(filters); - this._process(); - this.filterChanged.emit(this.filters); - } - - changePage(page: number) { - if(!this.paginate || page < 1 || page > this.pages.length) return; - this.page = page; - this._process(); - this.pageChanged.emit(this.page); - } - - clearFilters(update=true) { - this.filters = []; - if(update) this._process(); - this.filterChanged.emit(this.filters); - } - - clearSelected() { - let emit = this.selectedRows.size > 0; - this.selectedRows.clear(); - if(emit) this.selectionChanged.emit([]); - } - - @HostListener('window:resize', ['$event']) - onResize(event) { this.width = event.target.innerWidth; } - selectAll() { this.processedData.forEach((ignore, i) => this.selectedRows.add(i)); this.selectionChanged.emit(this.processedData); @@ -143,7 +143,7 @@ export class NgDatatableComponent implements OnInit { this.sortedDesc = desc; // Preform sort - this._process(); + this.refresh(); } updateSelected(index: number) {