]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: update carbon-components-angular 60626/head
authorIvo Almeida <ialmeida@redhat.com>
Tue, 5 Nov 2024 16:19:09 +0000 (16:19 +0000)
committerIvo Almeida <ialmeida@redhat.com>
Thu, 7 Nov 2024 19:21:58 +0000 (19:21 +0000)
* update carbon-components-angular pkg to v5.48.0
* fixed change detection errors on unit tests
* fixed pagination page length when limit is 0 and data is empty

Fixes: https://tracker.ceph.com/issues/68837
Signed-off-by: Ivo Almeida <ialmeida@redhat.com>
src/pybind/mgr/dashboard/frontend/package-lock.json
src/pybind/mgr/dashboard/frontend/package.json
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/bootstrap-create-modal/bootstrap-create-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-auth-modal/cephfs-auth-modal.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-key-value/table-key-value.component.html
src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts

index f2d4bbf06fac617ce50ff08928ceaa014d9752fe..e03e5945916639c33241bab411af49ac4bed23d6 100644 (file)
@@ -30,7 +30,7 @@
         "@types/file-saver": "2.0.1",
         "async-mutex": "0.2.4",
         "bootstrap": "5.2.3",
-        "carbon-components-angular": "5.25.1",
+        "carbon-components-angular": "5.48.0",
         "chart.js": "4.4.0",
         "chartjs-adapter-moment": "1.0.1",
         "detect-browser": "5.2.0",
       ]
     },
     "node_modules/carbon-components-angular": {
-      "version": "5.25.1",
-      "resolved": "https://registry.npmjs.org/carbon-components-angular/-/carbon-components-angular-5.25.1.tgz",
-      "integrity": "sha512-v49djZmcHs47G7wzaS+SQUTqp+vErlHDc4ohbsx29Q+Jq1m6IJSaTUCN9GuQG/lLa7W1se0vS23TOToKwjIbcw==",
+      "version": "5.48.0",
+      "resolved": "https://registry.npmjs.org/carbon-components-angular/-/carbon-components-angular-5.48.0.tgz",
+      "integrity": "sha512-NZwpKBKgkgaR51S0Pm16MvashO4g8B+dzGeNE8l/RYRWXpVDLShR6YnBc80t2iMtTolxGiPwHmzpyMieVtIGLg==",
       "hasInstallScript": true,
       "dependencies": {
         "@carbon/icon-helpers": "10.37.0",
         "@floating-ui/dom": "1.6.3",
         "@ibm/telemetry-js": "^1.5.0",
         "flatpickr": "4.6.13",
+        "lodash-es": "4.17.21",
         "tslib": "2.3.0"
       },
       "peerDependencies": {
index 7443f42ea6a9b8eaa18b573aaea157cc23b1631d..b95a84df2b11ea4a79716df40b248aca52587974 100644 (file)
@@ -64,7 +64,7 @@
     "@types/file-saver": "2.0.1",
     "async-mutex": "0.2.4",
     "bootstrap": "5.2.3",
-    "carbon-components-angular": "5.25.1",
+    "carbon-components-angular": "5.48.0",
     "chart.js": "4.4.0",
     "chartjs-adapter-moment": "1.0.1",
     "detect-browser": "5.2.0",
index ddd0a5dfecdb79e1a38e3e8e26945345b047df8d..e5b55258d419badc8d4bc09767e2ab3a488d1a01 100644 (file)
@@ -1,4 +1,12 @@
-import { Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';
+import {
+  AfterViewInit,
+  ChangeDetectorRef,
+  Component,
+  Inject,
+  OnDestroy,
+  OnInit,
+  Optional
+} from '@angular/core';
 import { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from '@angular/forms';
 
 import { BaseModal } from 'carbon-components-angular';
@@ -17,7 +25,9 @@ import { TaskWrapperService } from '~/app/shared/services/task-wrapper.service';
   templateUrl: './bootstrap-create-modal.component.html',
   styleUrls: ['./bootstrap-create-modal.component.scss']
 })
-export class BootstrapCreateModalComponent extends BaseModal implements OnDestroy, OnInit {
+export class BootstrapCreateModalComponent
+  extends BaseModal
+  implements OnDestroy, OnInit, AfterViewInit {
   pools: any[] = [];
   token: string;
 
@@ -28,6 +38,7 @@ export class BootstrapCreateModalComponent extends BaseModal implements OnDestro
   constructor(
     private rbdMirroringService: RbdMirroringService,
     private taskWrapper: TaskWrapperService,
+    private changeDetectorRef: ChangeDetectorRef,
 
     @Inject('siteName') @Optional() public siteName?: string
   ) {
@@ -35,6 +46,10 @@ export class BootstrapCreateModalComponent extends BaseModal implements OnDestro
     this.createForm();
   }
 
+  ngAfterViewInit(): void {
+    this.changeDetectorRef.detectChanges();
+  }
+
   createForm() {
     this.createBootstrapForm = new CdFormGroup({
       siteName: new UntypedFormControl('', {
index 8af55cd2dec34616d3a2163110fd6ef364e0057e..435cdb9644fdfd83fa68e65be9932d3a5ec75ce0 100644 (file)
@@ -1,4 +1,11 @@
-import { Component, Inject, OnInit, Optional } from '@angular/core';
+import {
+  AfterViewInit,
+  ChangeDetectorRef,
+  Component,
+  Inject,
+  OnInit,
+  Optional
+} from '@angular/core';
 import { FormControl, Validators } from '@angular/forms';
 import { OperatorFunction, Observable, of } from 'rxjs';
 import { debounceTime, distinctUntilChanged, switchMap, catchError } from 'rxjs/operators';
@@ -19,7 +26,7 @@ const DEBOUNCE_TIMER = 300;
   templateUrl: './cephfs-auth-modal.component.html',
   styleUrls: ['./cephfs-auth-modal.component.scss']
 })
-export class CephfsAuthModalComponent extends CdForm implements OnInit {
+export class CephfsAuthModalComponent extends CdForm implements OnInit, AfterViewInit {
   subvolumeGroup: string;
   subvolume: string;
   isDefaultSubvolumeGroup = false;
@@ -58,6 +65,7 @@ export class CephfsAuthModalComponent extends CdForm implements OnInit {
     private cephfsService: CephfsService,
     private taskWrapper: TaskWrapperService,
     private modalService: ModalCdsService,
+    private changeDetectorRef: ChangeDetectorRef,
 
     @Optional() @Inject('fsName') public fsName: string,
     @Optional() @Inject('id') public id: number
@@ -67,6 +75,10 @@ export class CephfsAuthModalComponent extends CdForm implements OnInit {
     this.resource = $localize`access`;
   }
 
+  ngAfterViewInit(): void {
+    this.changeDetectorRef.detectChanges();
+  }
+
   ngOnInit() {
     this.directoryStore.loadDirectories(this.id, '/', 3);
     this.createForm();
index 1cdbcccd647ced39351307d31071412eb41d604d..ff5e20c6d5d95f01a8f29768507c75306ee1b97c 100644 (file)
@@ -167,7 +167,7 @@ export class PoolFormComponent extends CdForm implements OnInit {
             CdValidators.custom(
               'required',
               (rule: CrushRule) =>
-                this.isReplicated && this.info.crush_rules_replicated.length > 0 && !rule
+                this.isReplicated && this.info?.crush_rules_replicated?.length > 0 && !rule
             )
           ]
         }),
index b022f1551e88ff66ff82d63b4021e7a60552494b..72ca4e47990ec285cb7affdf4fa61006e162de79 100644 (file)
@@ -1,6 +1,6 @@
 <div class="table-scroller">
   <cd-table #table
-            [data]="tableData"
+            [data]="tableData || []"
             [columns]="columns"
             columnMode="flex"
             [toolHeader]="false"
index c8aa3f47e2fe153b6fbd08caf5b14e1f76400d52..6ca4378b126c3fa8c27e0d42f2fe12ebba8fc82e 100644 (file)
@@ -897,7 +897,7 @@ export class TableComponent implements AfterViewInit, OnInit, OnChanges, OnDestr
 
     if (this.limit === 0) {
       this.model.currentPage = 1;
-      this.model.pageLength = filteredData.length;
+      this.model.pageLength = filteredData.length || 1;
       this._dataset.next(filteredData);
       return;
     }