]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Datatable catches select events from other datatables
authorVolker Theile <vtheile@suse.com>
Wed, 12 Aug 2020 14:25:05 +0000 (16:25 +0200)
committerTiago Melo <tmelo@suse.com>
Thu, 22 Oct 2020 13:58:41 +0000 (13:58 +0000)
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 <vtheile@suse.com>
(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.

src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts

index 548d4749590debd60c4f00fcdf6b5991c314f959..d85593c937c0a2de3721609a63855618d8d8f09d 100644 (file)
@@ -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) {