blob: d834ca2cecfee3fb39177ef2139edd649bfec7d6 [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You 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.
~
-->
<div fxLayout="column" class="page-container page-container-max-height">
<div fxLayout="row" style="padding: 0px" class="sp-tab-bg">
<div fxFlex="100" class="page-container-nav">
<div fxFlex="100" fxLayout="row">
<div fxFlex fxLayoutAlign="start center">
<mat-tab-group color="accent">
<mat-tab label="My Notifications"></mat-tab>
</mat-tab-group>
</div>
<div fxFlex fxLayoutAlign="end center" class="mr-20"></div>
</div>
</div>
</div>
<div
class="container-fluid marketplace-container"
*ngIf="notificationsLoading"
fxFlex="100"
fxLayoutAlign="center center"
fxLayout="column"
>
<mat-spinner [mode]="'indeterminate'" [diameter]="20"></mat-spinner>
<h4>Loading notifications...</h4>
</div>
<div
class="fixed-height page-container-padding-inner"
*ngIf="!notificationsLoading && !pipelinesWithNotificationsPresent"
fxFlex="100"
fxLayoutAlign="center center"
fxLayout="row"
>
<h4>
No notifications available. Create a new pipeline using the
Notification Sink to create your first notification!
</h4>
</div>
<div
class="fixed-height page-container-padding-inner"
fxLayout="row"
fxFlex="100"
*ngIf="!notificationsLoading && pipelinesWithNotificationsPresent"
>
<div fxFlex="30" class="notifications-overview scrolling-auto">
<mat-list>
<mat-list-item
*ngFor="let existingNotification of existingNotifications"
(click)="selectNotification(existingNotification)"
class="list-item"
[ngClass]="{
'selected-notification':
existingNotification.notificationId ===
currentlySelectedNotificationId
}"
>
<div
matListItemAvatar
class="notification-avatar sp-primary-bg"
style="background: var(--color-primary)"
>
{{
elementIconText.getElementIconText(
existingNotification.pipelineName
)
}}
</div>
<h4 matListItemTitle>
{{ existingNotification.pipelineName }}
</h4>
<p matListItemLine>
{{ existingNotification.notificationTitle }}
</p>
<div class="new-notification-info-panel">
<div
class="new-notification-info"
*ngIf="
currentlySelectedNotificationId !==
existingNotification.notificationId &&
newNotificationInfo[
existingNotification.notificationId
]
"
></div>
</div>
</mat-list-item>
</mat-list>
</div>
<div fxFlex="70" class="notifications-details">
<div class="notification-details-wrapper">
<div
class="notification-header"
fxLayout="column"
fxLayoutAlign="center start"
>
<div class="notification-header-pipeline-name">
{{ currentlySelectedNotification.pipelineName }}
</div>
<div class="notification-header-notification-name">
{{ currentlySelectedNotification.notificationTitle }}
</div>
<hr class="header-divider" />
</div>
<div
#notificationPane
class="notification-pane"
(scroll)="onScroll()"
*ngIf="currentlySelectedNotificationId"
>
<sp-notification-item
[notification]="notification"
*ngFor="
let notification of allNotifications.get(
currentlySelectedNotificationId
)
"
></sp-notification-item>
</div>
</div>
</div>
</div>
</div>