From: Volker Theile Date: Wed, 12 Aug 2020 14:25:05 +0000 (+0200) Subject: mgr/dashboard: Datatable catches select events from other datatables X-Git-Tag: v14.2.17~28^2~24^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ddb59419ba34e96353973eae55fe6df642856413;p=ceph.git mgr/dashboard: Datatable catches select events from other datatables Ensure we do not process DOM 'select' events, see https://github.com/swimlane/ngx-datatable/issues/899. Fixes: https://tracker.ceph.com/issues/46903 Signed-off-by: Volker Theile (cherry picked from commit 31e9bbb9b308277d2f89390d5ff62f13457d69cb) Conflicts: src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts conflict caused by new methods that don't exist in nautilus, fixed by removing them from being cherry-picked. --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts index 548d4749590d..d85593c937c0 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts @@ -454,9 +454,13 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O this.onSelect(); } - onSelect() { - this.selection.update(); - this.updateSelection.emit(_.clone(this.selection)); + onSelect($event: any) { + // Ensure we do not process DOM 'select' events. + // https://github.com/swimlane/ngx-datatable/issues/899 + if (_.has($event, 'selected')) { + this.selection.selected = $event['selected']; + this.updateSelection.emit(_.clone(this.selection)); + } } toggleColumn($event: any) {