/
tisit
/
FUXA_SCADA
Обзор
Документация
Войти
/
tisit
/
FUXA_SCADA
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
client/src/app/resources/lib-widgets/lib-widgets.component.ts
64 строки
2 KB
unocelli
feat: remove widget from library
16 апр 2025, 23:51
16 апр 2025, 23:51
b6c11ad
Код
Авторство
О чём код?
import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core'; import { Observable, Subject, takeUntil } from 'rxjs'; import { ResourceGroup, ResourceItem } from '../../_models/resources'; import { LibWidgetsService } from './lib-widgets.service'; import { RcgiService } from '../../_services/rcgi/rcgi.service'; import { MatMenuTrigger } from '@angular/material/menu'; import { ToastNotifierService } from '../../_services/toast-notifier.service'; @Component({ selector: 'app-lib-widgets', templateUrl: './lib-widgets.component.html', styleUrls: ['./lib-widgets.component.scss'] }) export class LibWidgetsComponent implements OnInit, OnDestroy { resourceWidgets$: Observable<ResourceGroup[]>; selectedWidgetPath: string; private destroy$ = new Subject<void>(); rootPath = ''; contextMenuWidget: any = null; expandedGroups: { [groupName: string]: boolean } = {}; @ViewChild('menuTriggerButton') menuTrigger!: MatMenuTrigger; @ViewChild('menuTriggerEl', { read: ElementRef }) triggerButtonRef!: ElementRef; constructor( private libWidgetService: LibWidgetsService, private toastNotifier: ToastNotifierService, private rcgiService: RcgiService) { this.rootPath = this.rcgiService.rcgi.endPointConfig; } ngOnInit() { this.resourceWidgets$ = this.libWidgetService.resourceWidgets$; this.libWidgetService.clearSelection$.pipe( takeUntil(this.destroy$) ).subscribe(() => { this.clearSelection(); }); } ngOnDestroy() { this.destroy$.next(null); this.destroy$.complete(); } onSelect(widgetPath: string) { this.selectedWidgetPath = widgetPath; this.libWidgetService.widgetSelected(`${this.rootPath}/${widgetPath}`); } clearSelection() { this.selectedWidgetPath = null; } onRemoveWidget(widget: ResourceItem) { this.libWidgetService.removeWidget(widget).subscribe(() => { this.libWidgetService.refreshResources(); }, err => { console.error('Remove failed:', err); this.toastNotifier.notifyError('msg.file-download-failed', err.message || err); }); } }