+
debug-config.label
+
+
+ @if (debugLimitsConfiguration) {
+ {{ 'debug-config.hint.main-limited' | translate: { msg: maxMessagesCount, sec: maxTimeFrameSec } }}
+ } @else {
+ {{ 'debug-config.hint.main' | translate }}
+ }
+
+
+
+
+
+ {{ 'debug-config.on-failure' | translate }}
+
+
+
+
+
+ {{ 'debug-config.all-messages' | translate: { time: (isDebugAllActive$ | async) && !allEnabled ? (allEnabledUntil | durationLeft) : ('debug-config.min' | translate: { number: maxDebugModeDurationMinutes }) } }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/debug-settings/debug-settings-panel.component.ts b/ui-ngx/src/app/modules/home/components/debug-settings/debug-settings-panel.component.ts
new file mode 100644
index 0000000000..a9e237245c
--- /dev/null
+++ b/ui-ngx/src/app/modules/home/components/debug-settings/debug-settings-panel.component.ts
@@ -0,0 +1,134 @@
+///
+/// Copyright © 2016-2024 The Thingsboard Authors
+///
+/// Licensed under the Apache License, Version 2.0 (the "License");
+/// you may not use this file except in compliance with the License.
+/// You may obtain a copy of the License at
+///
+/// http://www.apache.org/licenses/LICENSE-2.0
+///
+/// Unless required by applicable law or agreed to in writing, software
+/// distributed under the License is distributed on an "AS IS" BASIS,
+/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+/// See the License for the specific language governing permissions and
+/// limitations under the License.
+///
+
+import {
+ booleanAttribute,
+ ChangeDetectionStrategy,
+ ChangeDetectorRef,
+ Component,
+ EventEmitter,
+ Input,
+ OnInit
+} from '@angular/core';
+import { PageComponent } from '@shared/components/page.component';
+import { TbPopoverComponent } from '@shared/components/popover.component';
+import { FormBuilder } from '@angular/forms';
+import { CommonModule } from '@angular/common';
+import { SharedModule } from '@shared/shared.module';
+import { SECOND } from '@shared/models/time/time.models';
+import { DurationLeftPipe } from '@shared/pipe/duration-left.pipe';
+import { of, shareReplay, timer } from 'rxjs';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
+import { DebugSettings } from '@shared/models/entity.models';
+import { distinctUntilChanged, map, startWith, switchMap, takeWhile } from 'rxjs/operators';
+
+@Component({
+ selector: 'tb-debug-settings-panel',
+ templateUrl: './debug-settings-panel.component.html',
+ standalone: true,
+ imports: [
+ SharedModule,
+ CommonModule,
+ DurationLeftPipe
+ ],
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class DebugSettingsPanelComponent extends PageComponent implements OnInit {
+
+ @Input() popover: TbPopoverComponent