alarms/alarms.component.ts
<c8y-title>{{ TITLE | translate }}</c8y-title>
<c8y-help
  src="/docs/device-management-application/monitoring-and-controlling-devices/#working-with-alarms"
></c8y-help>

<c8y-action-bar-item
  [placement]="'left'"
  itemClass="navbar-form min-width-fit"
>
  <c8y-alarms-filter
    class="d-block fit-w"
    [contextSourceId]="contextSourceId"
    (onFilterApplied)="applyFormFilters($event)"
  ></c8y-alarms-filter>
</c8y-action-bar-item>

<c8y-action-bar-item
  [placement]="'left'"
  itemClass="navbar-form min-width-fit"
>
  <c8y-alarms-date-filter (dateFilterChange)="applyFormFilters($event)"></c8y-alarms-date-filter>
</c8y-action-bar-item>

<c8y-action-bar-item
  [placement]="'left'"
  itemClass="navbar-form"
>
  <c8y-alarms-type-filter
    class="d-block fit-w"
    [alarms]="alarms$ | async"
    (onFilterChanged)="applyTypeFilters($event)"
  ></c8y-alarms-type-filter>
</c8y-action-bar-item>

<c8y-action-bar-item
  [placement]="'right'"
  [priority]="0"
>
  <button
    class="btn btn-link"
    [title]="'Clear all alarms' | translate"
    type="button"
    (click)="clearAll()"
    data-cy="c8y-alarms-view--clear-all-button"
  >
    <i c8yIcon="c8y-alert-idle"></i>
    {{ 'Clear all`alarms`' | translate }}
  </button>
</c8y-action-bar-item>

<c8y-sv [resizableConfig]="{ trackId: 'alarms-split-view', collapsible: false }">
  <c8y-alarms-list
    [isInitialLoading]="isLoading$ | async"
    [alarms]="alarms$ | async"
    [typeFilters]="typeFilters"
    (onScrollingStateChange)="changeInterval(!$event); isListScrolled.set($event)"
    (onSelectedAlarm)="changeInterval(false)"
    [hasPermissions]="!isDisabled"
  >
    @if (isIntervalRefresh) {
      <c8y-alarms-interval-refresh
        [alarmsListLoading$]="isLoading$"
        [isIntervalToggleEnabled]="shouldShowIntervalToggle$ | async"
        (onCountdownEnded)="refresh()"
        [isDisabled]="isDisabled"
      ></c8y-alarms-interval-refresh>
    } @else {
      <div class="input-group-btn">
        <button
          class="btn btn-default btn-sm"
          [attr.aria-label]="'Refresh' | translate"
          [tooltip]="
            (isRealtimeActive | async)
              ? (NEW_REALTIME_ALARM_MESSAGE | translate)
              : (REFRESH_LABEL | translate)
          "
          placement="left"
          container="body"
          type="button"
          [adaptivePosition]="false"
          [delay]="500"
          [disabled]="isLoading$ | async"
          (click)="refresh()"
        >
          @if (isRealtimeActive | async) {
            <span class="tag tag--info m-r-8">
              {{ 'New alarms' | translate }}
            </span>
          }
          <i
            c8yIcon="refresh"
            [ngClass]="{ 'icon-spin': isLoading$ | async }"
          ></i>
        </button>
        <button
          class="c8y-realtime btn btn-default btn-sm"
          [attr.aria-label]="realtimeIconTitle"
          [tooltip]="realtimeIconTitle"
          placement="bottom"
          type="button"
          data-cy="c8y-alarms--realtime-button"
          [container]="'body'"
          (click)="toggleRealtimeState()"
        >
          <span
            class="c8y-pulse m-0"
            [ngClass]="{
              active: isRealtimeToggleOn,
              inactive: !isRealtimeToggleOn
            }"
          ></span>
        </button>
      </div>
    }
  </c8y-alarms-list>

  <c8y-sv-details
    emptyStateIcon="alarm"
    [emptyStateTitle]="'No alarm selected' | translate"
    [emptyStateSubtitle]="'Select an alarm from the list to view its details.' | translate"
    (backClick)="handleBackClick()"
  >
    <router-outlet></router-outlet>
  </c8y-sv-details>
</c8y-sv>

results matching ""

    No results matching ""