10 changed files with 132 additions and 91 deletions
@ -0,0 +1,73 @@ |
|||
///
|
|||
/// Copyright © 2016-2023 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 { Component } from '@angular/core'; |
|||
import { |
|||
RequestNotificationDialogData, |
|||
SentNotificationDialogComponent |
|||
} from '@home/pages/notification/sent/sent-notification-dialog.componet'; |
|||
import { NotificationTemplate } from '@shared/models/notification.models'; |
|||
import { MatDialog } from '@angular/material/dialog'; |
|||
import { ActiveComponentService } from '@core/services/active-component.service'; |
|||
import { EntitiesTableComponent } from '@home/components/entity/entities-table.component'; |
|||
import { EntityType } from '@shared/models/entity-type.models'; |
|||
import { Store } from '@ngrx/store'; |
|||
import { AppState } from '@core/core.state'; |
|||
import { getCurrentAuthUser } from '@core/auth/auth.selectors'; |
|||
import { Authority } from '@shared/models/authority.enum'; |
|||
|
|||
@Component({ |
|||
selector: 'tb-send-notification-button', |
|||
templateUrl: './send-notification-button.component.html', |
|||
}) |
|||
export class SendNotificationButtonComponent { |
|||
|
|||
authUser = getCurrentAuthUser(this.store); |
|||
|
|||
constructor(private dialog: MatDialog, |
|||
private store: Store<AppState>, |
|||
private activeComponentService: ActiveComponentService) { |
|||
} |
|||
|
|||
sendNotification($event: Event) { |
|||
if ($event) { |
|||
$event.stopPropagation(); |
|||
} |
|||
this.dialog.open<SentNotificationDialogComponent, RequestNotificationDialogData, |
|||
NotificationTemplate>(SentNotificationDialogComponent, { |
|||
disableClose: true, |
|||
panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], |
|||
data: { |
|||
isAdd: true |
|||
} |
|||
}).afterClosed().subscribe((res) => { |
|||
if (res) { |
|||
const comp = this.activeComponentService.getCurrentActiveComponent(); |
|||
if (comp instanceof EntitiesTableComponent) { |
|||
const entitiesTableComponent = comp as EntitiesTableComponent; |
|||
if (entitiesTableComponent.entitiesTableConfig.entityType === EntityType.NOTIFICATION_REQUEST) { |
|||
entitiesTableComponent.entitiesTableConfig.updateData(); |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
} |
|||
|
|||
public show(): boolean { |
|||
return this.authUser.authority !== Authority.CUSTOMER_USER; |
|||
} |
|||
|
|||
} |
|||
@ -1,18 +0,0 @@ |
|||
/** |
|||
* Copyright © 2016-2023 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. |
|||
*/ |
|||
:host{ |
|||
width: 10000px; |
|||
} |
|||
@ -1,39 +0,0 @@ |
|||
///
|
|||
/// Copyright © 2016-2023 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 { Component } from '@angular/core'; |
|||
import { EntityTableHeaderComponent } from '@home/components/entity/entity-table-header.component'; |
|||
import { Store } from '@ngrx/store'; |
|||
import { AppState } from '@core/core.state'; |
|||
import { NotificationRequest, NotificationRequestInfo } from '@shared/models/notification.models'; |
|||
import { PageLink } from '@shared/models/page/page-link'; |
|||
|
|||
@Component({ |
|||
selector: 'tb-sent-table-header', |
|||
templateUrl: './sent-table-header.component.html', |
|||
styleUrls: ['sent-table-header.component.scss'] |
|||
}) |
|||
export class SentTableHeaderComponent extends EntityTableHeaderComponent<NotificationRequest, PageLink, NotificationRequestInfo> { |
|||
|
|||
constructor(protected store: Store<AppState>) { |
|||
super(store); |
|||
} |
|||
|
|||
sendNotification($event: Event) { |
|||
this.entitiesTableConfig.onEntityAction({event: $event, action: 'add', entity: null}); |
|||
} |
|||
|
|||
} |
|||
Loading…
Reference in new issue