/*! * @license * Alfresco Example Content Application * * Copyright (C) 2005 - 2020 Alfresco Software Limited * * This file is part of the Alfresco Example Content Application. * If the software was purchased under a paid Alfresco license, the terms of * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: * * The Alfresco Example Content Application is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The Alfresco Example Content Application is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . */ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { Location } from '@angular/common'; import { FolderRulesService } from '../services/folder-rules.service'; import { Observable } from 'rxjs'; import { Rule } from '../model/rule.model'; import { ActivatedRoute } from '@angular/router'; import { NodeInfo } from '@alfresco/aca-shared/store'; import { tap } from 'rxjs/operators'; import { EditRuleDialogSmartComponent } from '../rule-details/edit-rule-dialog.smart-component'; import { MatDialog } from '@angular/material/dialog'; @Component({ selector: 'aca-manage-rules', templateUrl: 'manage-rules.smart-component.html', styleUrls: ['manage-rules.smart-component.scss'], encapsulation: ViewEncapsulation.None, host: { class: 'aca-manage-rules' } }) export class ManageRulesSmartComponent implements OnInit { rules$: Observable; isLoading$: Observable; folderInfo$: Observable; selectedRule: Rule = null; nodeId: string = null; constructor( private location: Location, private folderRulesService: FolderRulesService, private route: ActivatedRoute, private matDialogService: MatDialog ) {} ngOnInit(): void { this.rules$ = this.folderRulesService.rulesListing$.pipe( tap((rules) => { if (!rules.includes(this.selectedRule)) { this.selectedRule = rules[0]; } }) ); this.isLoading$ = this.folderRulesService.loading$; this.folderInfo$ = this.folderRulesService.folderInfo$; this.route.params.subscribe((params) => { this.nodeId = params.nodeId; if (this.nodeId) { this.folderRulesService.loadRules(this.nodeId); } }); } goBack(): void { this.location.back(); } onRuleSelected(rule: Rule): void { this.selectedRule = rule; } openNewRuleDialog() { this.matDialogService.open(EditRuleDialogSmartComponent, { width: '90%', panelClass: 'aca-edit-rule-dialog-container' }); } }