diff options
Diffstat (limited to 'src/pybind/mgr/dashboard/frontend/src/app/shared/services')
4 files changed, 92 insertions, 2 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/formatter.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/formatter.service.ts index b5e0b9475..c1ad14b47 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/formatter.service.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/formatter.service.ts @@ -40,7 +40,7 @@ export class FormatterService { */ formatNumberFromTo( n: any, - units: any, + units: string = '', targetedUnits: string = '', conversionFactor: number, unitsArray: string[], @@ -52,6 +52,9 @@ export class FormatterService { if (!_.isNumber(n)) { return '-'; } + if (!unitsArray) { + return '-'; + } const unitsArrayLowerCase = unitsArray.map((str) => str.toLowerCase()); if ( !unitsArrayLowerCase.includes(units.toLowerCase()) || diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-message.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-message.service.ts index f6969c2e8..9aa9f02af 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-message.service.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/task-message.service.ts @@ -69,7 +69,17 @@ export class TaskMessageService { delete: new TaskMessageOperation($localize`Deleting`, $localize`delete`, $localize`Deleted`), add: new TaskMessageOperation($localize`Adding`, $localize`add`, $localize`Added`), remove: new TaskMessageOperation($localize`Removing`, $localize`remove`, $localize`Removed`), - import: new TaskMessageOperation($localize`Importing`, $localize`import`, $localize`Imported`) + import: new TaskMessageOperation($localize`Importing`, $localize`import`, $localize`Imported`), + activate: new TaskMessageOperation( + $localize`Importing`, + $localize`activate`, + $localize`Activated` + ), + deactivate: new TaskMessageOperation( + $localize`Importing`, + $localize`deactivate`, + $localize`Deactivated` + ) }; rbd = { @@ -359,6 +369,9 @@ export class TaskMessageService { 'cephfs/edit': this.newTaskMessage(this.commonOperations.update, (metadata) => this.volume(metadata) ), + 'cephfs/auth': this.newTaskMessage(this.commonOperations.update, (metadata) => + this.auth(metadata) + ), 'cephfs/remove': this.newTaskMessage(this.commonOperations.remove, (metadata) => this.volume(metadata) ), @@ -379,6 +392,32 @@ export class TaskMessageService { ), 'cephfs/subvolume/group/remove': this.newTaskMessage(this.commonOperations.remove, (metadata) => this.subvolumegroup(metadata) + ), + 'cephfs/subvolume/snapshot/create': this.newTaskMessage( + this.commonOperations.create, + (metadata) => this.snapshot(metadata) + ), + 'cephfs/subvolume/snapshot/delete': this.newTaskMessage( + this.commonOperations.delete, + (metadata) => this.snapshot(metadata) + ), + 'cephfs/snapshot/schedule/create': this.newTaskMessage(this.commonOperations.add, (metadata) => + this.snapshotSchedule(metadata) + ), + 'cephfs/snapshot/schedule/edit': this.newTaskMessage(this.commonOperations.update, (metadata) => + this.snapshotSchedule(metadata) + ), + 'cephfs/snapshot/schedule/delete': this.newTaskMessage( + this.commonOperations.delete, + (metadata) => this.snapshotSchedule(metadata) + ), + 'cephfs/snapshot/schedule/activate': this.newTaskMessage( + this.commonOperations.activate, + (metadata) => this.snapshotSchedule(metadata) + ), + 'cephfs/snapshot/schedule/deactivate': this.newTaskMessage( + this.commonOperations.deactivate, + (metadata) => this.snapshotSchedule(metadata) ) }; @@ -439,6 +478,10 @@ export class TaskMessageService { return $localize`'${metadata.volumeName}'`; } + auth(metadata: any) { + return $localize`client.${metadata.clientId} authorization successfully`; + } + subvolume(metadata: any) { return $localize`subvolume '${metadata.subVolumeName}'`; } @@ -447,6 +490,13 @@ export class TaskMessageService { return $localize`subvolume group '${metadata.subvolumegroupName}'`; } + snapshot(metadata: any) { + return $localize`snapshot '${metadata.snapshotName}'`; + } + + snapshotSchedule(metadata: any) { + return $localize`snapshot schedule for path '${metadata?.path}'`; + } crudMessageId(id: string) { return $localize`${id}`; } diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-area-json-formatter.service.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-area-json-formatter.service.spec.ts new file mode 100644 index 000000000..fc428f984 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-area-json-formatter.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TextAreaJsonFormatterService } from './text-area-json-formatter.service'; + +describe('TextAreaJsonFormatterService', () => { + let service: TextAreaJsonFormatterService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TextAreaJsonFormatterService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-area-json-formatter.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-area-json-formatter.service.ts new file mode 100644 index 000000000..0e696022a --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-area-json-formatter.service.ts @@ -0,0 +1,21 @@ +import { ElementRef, Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class TextAreaJsonFormatterService { + constructor() {} + + format(textArea: ElementRef<any>): void { + const value = textArea.nativeElement.value; + try { + const formatted = JSON.stringify(JSON.parse(value), null, 2); + textArea.nativeElement.value = formatted; + textArea.nativeElement.style.height = 'auto'; + const lineNumber = formatted.split('\n').length; + const pixelPerLine = 20; + const pixels = lineNumber * pixelPerLine; + textArea.nativeElement.style.height = pixels + 'px'; + } catch (e) {} + } +} |