/*! * @license * Copyright 2016 Alfresco Software, Ltd. * * 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, Inject, ViewEncapsulation, ViewChild } from '@angular/core'; import { MAT_DIALOG_DATA } from '@angular/material'; import { ExternalAlfrescoApiService, AlfrescoApiService, AuthenticationService, LoginDialogPanelComponent, SitesService, SearchService } from '@alfresco/adf-core'; import { DocumentListService, ContentNodeSelectorService } from '@alfresco/adf-content-services'; import { AttachFileWidgetDialogComponentData } from './attach-file-widget-dialog-component.interface'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; @Component({ selector: 'adf-attach-file-widget-dialog', templateUrl: './attach-file-widget-dialog.component.html', styleUrls: ['./attach-file-widget-dialog.component.scss'], encapsulation: ViewEncapsulation.None, providers: [ AuthenticationService, DocumentListService, SitesService, ContentNodeSelectorService, SearchService, { provide: AlfrescoApiService, useClass: ExternalAlfrescoApiService} ] }) export class AttachFileWidgetDialogComponent { @ViewChild('adfLoginPanel') loginPanel: LoginDialogPanelComponent; chosenNode: MinimalNodeEntryEntity[]; buttonActionName; constructor(@Inject(MAT_DIALOG_DATA) public data: AttachFileWidgetDialogComponentData, private externalApiService: AlfrescoApiService) { ( externalApiService).init(data.ecmHost, data.context); this.buttonActionName = data.actionName ? `ATTACH-FILE.ACTIONS.${data.actionName.toUpperCase()}` : 'ATTACH-FILE.ACTIONS.CHOOSE'; } isLoggedIn() { return this.externalApiService.getInstance().isLoggedIn(); } performLogin() { this.loginPanel.submitForm(); } close() { this.data.selected.complete(); } onSelect(nodeList: MinimalNodeEntryEntity[]) { if (nodeList && nodeList[0].isFile) { this.chosenNode = nodeList; } else { this.chosenNode = null; } } onClick(event: any) { this.data.selected.next(this.chosenNode); this.data.selected.complete(); } }