diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts')
-rw-r--r-- | src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts new file mode 100644 index 000000000..4faf69164 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/iops.directive.ts @@ -0,0 +1,31 @@ +import { Directive, EventEmitter, HostListener, Input, OnInit } from '@angular/core'; +import { NgControl } from '@angular/forms'; + +import { FormatterService } from '../services/formatter.service'; + +@Directive({ + selector: '[cdIops]' +}) +export class IopsDirective implements OnInit { + @Input() + ngDataReady: EventEmitter<any>; + + constructor(private formatter: FormatterService, private ngControl: NgControl) {} + + setValue(value: string): void { + const iops = this.formatter.toIops(value); + this.ngControl.control.setValue(`${iops} IOPS`); + } + + ngOnInit(): void { + this.setValue(this.ngControl.value); + if (this.ngDataReady) { + this.ngDataReady.subscribe(() => this.setValue(this.ngControl.value)); + } + } + + @HostListener('blur', ['$event.target.value']) + onUpdate(value: string) { + this.setValue(value); + } +} |