]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: frontend: move ellipsis to before progress in task execution description 30376/head
authorRicardo Dias <rdias@suse.com>
Wed, 17 Jul 2019 11:37:53 +0000 (12:37 +0100)
committerStephan Müller <smueller@suse.com>
Fri, 13 Sep 2019 10:45:17 +0000 (12:45 +0200)
Signed-off-by: Ricardo Dias <rdias@suse.com>
(cherry picked from commit 0d735159b4e5df3dd87af5e1484978a1f531d5bb)

src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-trash-list/rbd-trash-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-list/nfs-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.html
src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-list.service.ts
src/pybind/mgr/dashboard/frontend/src/testing/unit-test-helper.ts

index 2f93c86a63ea2bb5f3ca8220939a1eec3ae958e3..452332b83142a97903c423e4cf54cdb54e70418b 100644 (file)
@@ -10,6 +10,7 @@ import { BehaviorSubject, of } from 'rxjs';
 
 import {
   configureTestBed,
+  expectItemTasks,
   i18nProviders,
   PermissionHelper
 } from '../../../../testing/unit-test-helper';
@@ -136,10 +137,6 @@ describe('IscsiTargetListComponent', () => {
       summaryService.addRunningTask(task);
     };
 
-    const expectTargetTasks = (target: any, executing: string) => {
-      expect(target.cdExecuting).toEqual(executing);
-    };
-
     beforeEach(() => {
       targets = [];
       addTarget('iqn.a');
@@ -160,16 +157,16 @@ describe('IscsiTargetListComponent', () => {
     it('should add a new target from a task', () => {
       addTask('iscsi/target/create', 'iqn.d');
       expect(component.targets.length).toBe(4);
-      expectTargetTasks(component.targets[0], undefined);
-      expectTargetTasks(component.targets[1], undefined);
-      expectTargetTasks(component.targets[2], undefined);
-      expectTargetTasks(component.targets[3], 'Creating');
+      expectItemTasks(component.targets[0], undefined);
+      expectItemTasks(component.targets[1], undefined);
+      expectItemTasks(component.targets[2], undefined);
+      expectItemTasks(component.targets[3], 'Creating');
     });
 
     it('should show when an existing target is being modified', () => {
       addTask('iscsi/target/delete', 'iqn.b');
       expect(component.targets.length).toBe(3);
-      expectTargetTasks(component.targets[1], 'Deleting');
+      expectItemTasks(component.targets[1], 'Deleting');
     });
   });
 
index 1a418fe83ec4cf01ed3f359d6733195b2f8d3092..9244b91cba7ac9dd22bf931be49eb04f6c133172 100644 (file)
@@ -13,6 +13,7 @@ import { BehaviorSubject, of } from 'rxjs';
 
 import {
   configureTestBed,
+  expectItemTasks,
   i18nProviders,
   PermissionHelper
 } from '../../../../testing/unit-test-helper';
@@ -137,10 +138,6 @@ describe('RbdListComponent', () => {
       summaryService.addRunningTask(task);
     };
 
-    const expectImageTasks = (image: RbdModel, executing: string) => {
-      expect(image.cdExecuting).toEqual(executing);
-    };
-
     beforeEach(() => {
       images = [];
       addImage('a');
@@ -162,28 +159,28 @@ describe('RbdListComponent', () => {
     it('should add a new image from a task', () => {
       addTask('rbd/create', 'd');
       expect(component.images.length).toBe(4);
-      expectImageTasks(component.images[0], undefined);
-      expectImageTasks(component.images[1], undefined);
-      expectImageTasks(component.images[2], undefined);
-      expectImageTasks(component.images[3], 'Creating');
+      expectItemTasks(component.images[0], undefined);
+      expectItemTasks(component.images[1], undefined);
+      expectItemTasks(component.images[2], undefined);
+      expectItemTasks(component.images[3], 'Creating');
     });
 
     it('should show when a image is being cloned', () => {
       addTask('rbd/clone', 'd');
       expect(component.images.length).toBe(4);
-      expectImageTasks(component.images[0], undefined);
-      expectImageTasks(component.images[1], undefined);
-      expectImageTasks(component.images[2], undefined);
-      expectImageTasks(component.images[3], 'Cloning');
+      expectItemTasks(component.images[0], undefined);
+      expectItemTasks(component.images[1], undefined);
+      expectItemTasks(component.images[2], undefined);
+      expectItemTasks(component.images[3], 'Cloning');
     });
 
     it('should show when a image is being copied', () => {
       addTask('rbd/copy', 'd');
       expect(component.images.length).toBe(4);
-      expectImageTasks(component.images[0], undefined);
-      expectImageTasks(component.images[1], undefined);
-      expectImageTasks(component.images[2], undefined);
-      expectImageTasks(component.images[3], 'Copying');
+      expectItemTasks(component.images[0], undefined);
+      expectItemTasks(component.images[1], undefined);
+      expectItemTasks(component.images[2], undefined);
+      expectItemTasks(component.images[3], 'Copying');
     });
 
     it('should show when an existing image is being modified', () => {
@@ -191,9 +188,9 @@ describe('RbdListComponent', () => {
       addTask('rbd/delete', 'b');
       addTask('rbd/flatten', 'c');
       expect(component.images.length).toBe(3);
-      expectImageTasks(component.images[0], 'Updating');
-      expectImageTasks(component.images[1], 'Deleting');
-      expectImageTasks(component.images[2], 'Flattening');
+      expectItemTasks(component.images[0], 'Updating');
+      expectItemTasks(component.images[1], 'Deleting');
+      expectItemTasks(component.images[2], 'Flattening');
     });
   });
 
index 414ba70acffe5c745340c462d2538015fdeeb0ac..6f17b84b8fcff07db30717a0b1e9d7b5e54fd791 100644 (file)
@@ -10,6 +10,7 @@ import { Subject, throwError as observableThrowError } from 'rxjs';
 
 import {
   configureTestBed,
+  expectItemTasks,
   i18nProviders,
   PermissionHelper
 } from '../../../../testing/unit-test-helper';
@@ -134,10 +135,6 @@ describe('RbdSnapshotListComponent', () => {
       summaryService.addRunningTask(task);
     };
 
-    const expectImageTasks = (snapshot: RbdSnapshotModel, executing: string) => {
-      expect(snapshot.cdExecuting).toEqual(executing);
-    };
-
     const refresh = (data) => {
       summaryService['summaryDataSource'].next(data);
     };
@@ -164,10 +161,10 @@ describe('RbdSnapshotListComponent', () => {
     it('should add a new image from a task', () => {
       addTask('rbd/snap/create', 'd');
       expect(component.snapshots.length).toBe(4);
-      expectImageTasks(component.snapshots[0], undefined);
-      expectImageTasks(component.snapshots[1], undefined);
-      expectImageTasks(component.snapshots[2], undefined);
-      expectImageTasks(component.snapshots[3], 'Creating');
+      expectItemTasks(component.snapshots[0], undefined);
+      expectItemTasks(component.snapshots[1], undefined);
+      expectItemTasks(component.snapshots[2], undefined);
+      expectItemTasks(component.snapshots[3], 'Creating');
     });
 
     it('should show when an existing image is being modified', () => {
@@ -175,9 +172,9 @@ describe('RbdSnapshotListComponent', () => {
       addTask('rbd/snap/delete', 'b');
       addTask('rbd/snap/rollback', 'c');
       expect(component.snapshots.length).toBe(3);
-      expectImageTasks(component.snapshots[0], 'Updating');
-      expectImageTasks(component.snapshots[1], 'Deleting');
-      expectImageTasks(component.snapshots[2], 'Rolling back');
+      expectItemTasks(component.snapshots[0], 'Updating');
+      expectItemTasks(component.snapshots[1], 'Deleting');
+      expectItemTasks(component.snapshots[2], 'Rolling back');
     });
   });
 
index 403341c8a42143d1e034bebf37e66e0df0510bf5..dc84eaffdc5ac5b768bfc2f6c3703063ee66c670 100644 (file)
@@ -6,7 +6,11 @@ import { ToastrModule } from 'ngx-toastr';
 import { of } from 'rxjs';
 
 import { By } from '@angular/platform-browser';
-import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import {
+  configureTestBed,
+  expectItemTasks,
+  i18nProviders
+} from '../../../../testing/unit-test-helper';
 import { RbdService } from '../../../shared/api/rbd.service';
 import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { ExecutingTask } from '../../../shared/models/executing-task';
@@ -74,10 +78,6 @@ describe('RbdTrashListComponent', () => {
       summaryService.addRunningTask(task);
     };
 
-    const expectImageTasks = (image: any, executing: string) => {
-      expect(image.cdExecuting).toEqual(executing);
-    };
-
     beforeEach(() => {
       images = [];
       addImage('1');
@@ -99,8 +99,8 @@ describe('RbdTrashListComponent', () => {
       addTask('rbd/trash/remove', '1');
       addTask('rbd/trash/restore', '2');
       expect(component.images.length).toBe(2);
-      expectImageTasks(component.images[0], 'Deleting');
-      expectImageTasks(component.images[1], 'Restoring');
+      expectItemTasks(component.images[0], 'Deleting');
+      expectItemTasks(component.images[1], 'Restoring');
     });
   });
 
index bb1b882ba53b90e4f86c10b2d6d25a940ff4a541..1754bdbf252d9a504ce49b79f6f63eb47361368f 100644 (file)
@@ -9,6 +9,7 @@ import { BehaviorSubject, of } from 'rxjs';
 
 import {
   configureTestBed,
+  expectItemTasks,
   i18nProviders,
   PermissionHelper
 } from '../../../../testing/unit-test-helper';
@@ -127,10 +128,6 @@ describe('NfsListComponent', () => {
       summaryService.addRunningTask(task);
     };
 
-    const expectExportTasks = (expo: any, executing: string) => {
-      expect(expo.cdExecuting).toEqual(executing);
-    };
-
     beforeEach(() => {
       exports = [];
       addExport('a');
@@ -154,18 +151,18 @@ describe('NfsListComponent', () => {
       addTask('nfs/create', 'd');
       tick();
       expect(component.exports.length).toBe(4);
-      expectExportTasks(component.exports[0], undefined);
-      expectExportTasks(component.exports[1], undefined);
-      expectExportTasks(component.exports[2], undefined);
-      expectExportTasks(component.exports[3], 'Creating');
+      expectItemTasks(component.exports[0], undefined);
+      expectItemTasks(component.exports[1], undefined);
+      expectItemTasks(component.exports[2], undefined);
+      expectItemTasks(component.exports[3], 'Creating');
     }));
 
     it('should show when an existing export is being modified', () => {
       addTask('nfs/edit', 'a');
       addTask('nfs/delete', 'b');
       expect(component.exports.length).toBe(3);
-      expectExportTasks(component.exports[0], 'Updating');
-      expectExportTasks(component.exports[1], 'Deleting');
+      expectItemTasks(component.exports[0], 'Updating');
+      expectItemTasks(component.exports[1], 'Deleting');
     });
   });
 
index 13689174a4c8e0d79928376dca03b5a906646148..9097d9dae93b83d834a220513113962d22d9d5b4 100644 (file)
@@ -8,7 +8,11 @@ import { TabsModule } from 'ngx-bootstrap/tabs';
 import { ToastrModule } from 'ngx-toastr';
 import { of } from 'rxjs';
 
-import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import {
+  configureTestBed,
+  expectItemTasks,
+  i18nProviders
+} from '../../../../testing/unit-test-helper';
 import { ConfigurationService } from '../../../shared/api/configuration.service';
 import { PoolService } from '../../../shared/api/pool.service';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
@@ -195,13 +199,13 @@ describe('PoolListComponent', () => {
     it('gets a pool from a task during creation', () => {
       addTask('pool/create', 'd');
       expect(component.pools.length).toBe(4);
-      expect(component.pools[3].cdExecuting).toBe('Creating');
+      expectItemTasks(component.pools[3], 'Creating');
     });
 
     it('gets all pools with one executing pools', () => {
       addTask('pool/create', 'a');
       expect(component.pools.length).toBe(3);
-      expect(component.pools[0].cdExecuting).toBe('Creating');
+      expectItemTasks(component.pools[0], 'Creating');
       expect(component.pools[1].cdExecuting).toBeFalsy();
       expect(component.pools[2].cdExecuting).toBeFalsy();
     });
@@ -214,9 +218,9 @@ describe('PoolListComponent', () => {
       addTask('pool/delete', 'b');
       addTask('pool/delete', 'c');
       expect(component.pools.length).toBe(3);
-      expect(component.pools[0].cdExecuting).toBe('Creating, Updating, Deleting');
-      expect(component.pools[1].cdExecuting).toBe('Updating, Deleting');
-      expect(component.pools[2].cdExecuting).toBe('Deleting');
+      expectItemTasks(component.pools[0], 'Creating..., Updating..., Deleting');
+      expectItemTasks(component.pools[1], 'Updating..., Deleting');
+      expectItemTasks(component.pools[2], 'Deleting');
     });
 
     it('gets all pools with multiple executing tasks (not only pool tasks)', () => {
@@ -227,8 +231,8 @@ describe('PoolListComponent', () => {
       addTask('rbd/delete', 'b');
       addTask('rbd/delete', 'c');
       expect(component.pools.length).toBe(3);
-      expect(component.pools[0].cdExecuting).toBe('Deleting');
-      expect(component.pools[1].cdExecuting).toBe('Updating');
+      expectItemTasks(component.pools[0], 'Deleting');
+      expectItemTasks(component.pools[1], 'Updating');
       expect(component.pools[2].cdExecuting).toBeFalsy();
     });
   });
@@ -364,12 +368,12 @@ describe('PoolListComponent', () => {
           pg_num_target: 16,
           pg_placement_num: 32,
           pg_placement_num_target: 16,
-          cdExecuting: 'Updating 50%'
+          cdExecuting: 'Updating... 50%'
         })
       ];
       expect(component.transformPoolsData(pools)).toEqual(
         getPoolData({
-          cdExecuting: 'Updating 50%',
+          cdExecuting: 'Updating... 50%',
           pg_num: 32,
           pg_num_target: 16,
           pg_placement_num: 32,
index 13ee5a7786ed9d7c097117ad0c9a9d14649103ad..2998a686ed6d6ffadb6a90e208dc0714917649af 100644 (file)
      *ngIf="row.cdExecuting"></i>
   {{ value }}
   <span *ngIf="row.cdExecuting"
-        class="text-muted italic">({{ row.cdExecuting }}... )</span>
+        class="text-muted italic">({{ row.cdExecuting }})</span>
 </ng-template>
 
 <ng-template #classAddingTpl
index b984b31fabc65f3f5657e1f00d81786750b7e48e..0abee40c9dbc1dec1dcd2737b485564a3737b236 100644 (file)
@@ -4,7 +4,11 @@ import { RouterTestingModule } from '@angular/router/testing';
 
 import { of } from 'rxjs';
 
-import { configureTestBed, i18nProviders } from '../../../testing/unit-test-helper';
+import {
+  configureTestBed,
+  expectItemTasks,
+  i18nProviders
+} from '../../../testing/unit-test-helper';
 import { ExecutingTask } from '../models/executing-task';
 import { SummaryService } from './summary.service';
 import { TaskListService } from './task-list.service';
@@ -71,10 +75,6 @@ describe('TaskListService', () => {
     summaryService.addRunningTask(task);
   };
 
-  const expectItemTasks = (item: any, executing: string) => {
-    expect(item.cdExecuting).toBe(executing);
-  };
-
   it('gets all items without any executing items', () => {
     expect(list.length).toBe(3);
     expect(list.every((item) => !item.cdExecuting)).toBeTruthy();
@@ -90,7 +90,7 @@ describe('TaskListService', () => {
     addTask('test/edit', 'd', 97);
     addTask('test/edit', 'e', 0);
     expect(list.length).toBe(5);
-    expectItemTasks(list[3], 'Updating 97%');
+    expectItemTasks(list[3], 'Updating', 97);
     expectItemTasks(list[4], 'Updating');
   });
 
@@ -110,8 +110,8 @@ describe('TaskListService', () => {
     addTask('test/delete', 'b');
     addTask('test/delete', 'c');
     expect(list.length).toBe(3);
-    expectItemTasks(list[0], 'Creating, Updating, Deleting');
-    expectItemTasks(list[1], 'Updating, Deleting');
+    expectItemTasks(list[0], 'Creating..., Updating..., Deleting');
+    expectItemTasks(list[1], 'Updating..., Deleting');
     expectItemTasks(list[2], 'Deleting');
   });
 
index 5db78347652574acdfeac50b76c0764cfaefa241..28024827507eac51c5ef386d1789f78c74138c54 100644 (file)
@@ -93,7 +93,7 @@ export class TaskListService implements OnDestroy {
     return tasks
       .map((task) => {
         const progress = task.progress ? ` ${task.progress}%` : '';
-        return this.taskMessageService.getRunningText(task) + progress;
+        return this.taskMessageService.getRunningText(task) + '...' + progress;
       })
       .join(', ');
   }
index 6f625003380f59d5317e5ccf1cba1df1e5756a23..eba591c56e6b8a0c374b658f2fb09a96d939489d 100644 (file)
@@ -312,3 +312,13 @@ const i18nProviders = [
 ];
 
 export { i18nProviders };
+
+export function expectItemTasks(item: any, executing: string, percentage?: number) {
+  if (executing) {
+    executing = executing + '...';
+    if (percentage) {
+      executing = `${executing} ${percentage}%`;
+    }
+  }
+  expect(item.cdExecuting).toBe(executing);
+}