From 753f0bfb46509da9c42240c9913ae56b3312a526 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 3 May 2018 09:22:51 +0100 Subject: [PATCH] remove "download node" workaround for shared links (#342) --- src/app/app.module.ts | 5 +- .../directives/node-download.directive.ts | 126 ------------------ .../shared-files/shared-files.component.html | 2 +- 3 files changed, 2 insertions(+), 131 deletions(-) delete mode 100644 src/app/common/directives/node-download.directive.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8c17e443a..f28690446 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -67,7 +67,6 @@ import { NodeActionsService } from './common/services/node-actions.service'; import { NodePermissionService } from './common/services/node-permission.service'; import { MatMenuModule, MatIconModule, MatButtonModule, MatDialogModule, MatInputModule } from '@angular/material'; import { SearchComponent } from './components/search/search.component'; -import { NodeDownloadDirective } from './common/directives/node-download.directive'; @NgModule({ imports: [ @@ -116,9 +115,7 @@ import { NodeDownloadDirective } from './common/directives/node-download.directi NodeVersionsDirective, AppConfigPipe, VersionManagerDialogAdapterComponent, - SearchComponent, - // Workarounds for ADF 2.3.0 - NodeDownloadDirective + SearchComponent ], providers: [ { diff --git a/src/app/common/directives/node-download.directive.ts b/src/app/common/directives/node-download.directive.ts deleted file mode 100644 index b905e6675..000000000 --- a/src/app/common/directives/node-download.directive.ts +++ /dev/null @@ -1,126 +0,0 @@ -/*! - * @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 { Directive, Input, HostListener } from '@angular/core'; -import { MatDialog } from '@angular/material'; -import { MinimalNodeEntity } from 'alfresco-js-api'; -import { AlfrescoApiService } from '@alfresco/adf-core'; -import { DownloadZipDialogComponent } from '@alfresco/adf-content-services'; - -/** @deprecated workaround for the ADF 2.3.0 regression. */ -@Directive({ - selector: '[acaNodeDownload]' -}) -export class NodeDownloadDirective { - - /** Nodes to download. */ - // tslint:disable-next-line:no-input-rename - @Input('acaNodeDownload') - nodes: MinimalNodeEntity[]; - - @HostListener('click') - onClick() { - this.downloadNodes(this.nodes); - } - - constructor( - private apiService: AlfrescoApiService, - private dialog: MatDialog) { - } - - /** - * Downloads multiple selected nodes. - * Packs result into a .ZIP archive if there is more than one node selected. - * @param selection Multiple selected nodes to download - */ - downloadNodes(selection: Array) { - if (!selection || selection.length === 0) { - return; - } - - if (selection.length === 1) { - this.downloadNode(selection[0]); - } else { - this.downloadZip(selection); - } - } - - /** - * Downloads a single node. - * Packs result into a .ZIP archive is the node is a Folder. - * @param node Node to download - */ - downloadNode(node: MinimalNodeEntity) { - if (node && node.entry) { - const entry = node.entry; - - if (entry.isFile) { - this.downloadFile(node); - } - - if (entry.isFolder) { - this.downloadZip([node]); - } - - // Check if there's nodeId for Shared Files - if (!entry.isFile && !entry.isFolder && ( entry).nodeId) { - this.downloadFile(node); - } - } - } - - private downloadFile(node: MinimalNodeEntity) { - if (node && node.entry) { - const contentApi = this.apiService.getInstance().content; - const id = ( node.entry).nodeId || node.entry.id; - - const url = contentApi.getContentUrl(id, true); - const fileName = node.entry.name; - - this.download(url, fileName); - } - } - - private downloadZip(selection: Array) { - if (selection && selection.length > 0) { - // nodeId for Shared node - const nodeIds = selection.map((node: any) => (node.entry.nodeId || node.entry.id)); - - this.dialog.open(DownloadZipDialogComponent, { - width: '600px', - disableClose: true, - data: { - nodeIds - } - }); - } - } - - private download(url: string, fileName: string) { - if (url && fileName) { - const link = document.createElement('a'); - - link.style.display = 'none'; - link.download = fileName; - link.href = url; - - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - } - } -} diff --git a/src/app/components/shared-files/shared-files.component.html b/src/app/components/shared-files/shared-files.component.html index f36f78535..7e85ca804 100644 --- a/src/app/components/shared-files/shared-files.component.html +++ b/src/app/components/shared-files/shared-files.component.html @@ -18,7 +18,7 @@ mat-icon-button *ngIf="hasSelection(documentList.selection)" title="{{ 'APP.ACTIONS.DOWNLOAD' | translate }}" - [acaNodeDownload]="documentList.selection"> + [adfNodeDownload]="documentList.selection"> get_app