This is an automated email from the ASF dual-hosted git repository. riemer pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit b6586c95001471798addf734d8c25a7ed58c6e7e Author: Dominik Riemer <[email protected]> AuthorDate: Tue Sep 15 20:43:59 2020 +0200 [STREAMPIPES-217] Add delete feature to file management --- .../streampipes/rest/api/IPipelineElementFile.java | 2 ++ .../streampipes/rest/impl/PipelineElementFile.java | 7 ++++++ .../file-overview/file-overview.component.html | 6 +----- .../file-overview/file-overview.component.ts | 25 +++++++++++++++++++--- ui/src/app/files/files.module.ts | 2 ++ ui/src/app/platform-services/apis/files.service.ts | 4 ++++ 6 files changed, 38 insertions(+), 8 deletions(-) diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipelineElementFile.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipelineElementFile.java index feb7c38..79c52d6 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipelineElementFile.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipelineElementFile.java @@ -28,4 +28,6 @@ public interface IPipelineElementFile { Response getFileInfo(String filteredFiletypes); + Response deleteFile(String fileId); + } diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementFile.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementFile.java index bb94a69..8d4e670 100644 --- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementFile.java +++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementFile.java @@ -47,6 +47,13 @@ public class PipelineElementFile extends AbstractRestInterface implements IPipel } } + @DELETE + @Path("{fileId}") + public Response deleteFile(@PathParam("fileId") String fileId) { + FileManager.deleteFile(fileId); + return ok(); + } + @GET @Produces(MediaType.APPLICATION_JSON) @Override diff --git a/ui/src/app/files/components/file-overview/file-overview.component.html b/ui/src/app/files/components/file-overview/file-overview.component.html index 7402504..af32a8b 100644 --- a/ui/src/app/files/components/file-overview/file-overview.component.html +++ b/ui/src/app/files/components/file-overview/file-overview.component.html @@ -40,14 +40,10 @@ <ng-container matColumnDef="action"> <th mat-header-cell *matHeaderCellDef> Action</th> <td mat-cell *matCellDef="let fileMetadata"> - <div fxLayout="row"> - <span fxFlex fxFlexOrder="3" fxLayout="row" fxLayoutAlign="center center"> - <button color="primary" mat-button mat-icon-button matTooltip="Delete pipeline" matTooltipPosition="above" + <button color="primary" mat-button mat-icon-button matTooltip="Delete file" matTooltipPosition="above" (click)="deleteFile(fileMetadata)"> <i class="material-icons">delete</i> </button> - </span> - </div> </td> </ng-container> diff --git a/ui/src/app/files/components/file-overview/file-overview.component.ts b/ui/src/app/files/components/file-overview/file-overview.component.ts index e2ec5ea..80f53f7 100644 --- a/ui/src/app/files/components/file-overview/file-overview.component.ts +++ b/ui/src/app/files/components/file-overview/file-overview.component.ts @@ -21,6 +21,9 @@ import {FilesService} from "../../../platform-services/apis/files.service"; import {FileMetadata} from "../../../core-model/gen/streampipes-model-client"; import {MatTableDataSource} from "@angular/material/table"; import {MatPaginator} from "@angular/material/paginator"; +import {DialogService} from "../../../core-ui/dialog/base-dialog/base-dialog.service"; +import {ConfirmDialogComponent} from "../../../core-ui/dialog/confirm-dialog/confirm-dialog.component"; +import {MatDialog} from "@angular/material/dialog"; @Component({ selector: 'file-overview', @@ -37,7 +40,8 @@ export class FileOverviewComponent implements OnInit { @ViewChild(MatPaginator) paginator: MatPaginator; pageSize: number = 1; - constructor(private filesService: FilesService) { + constructor(private filesService: FilesService, + private dialog: MatDialog) { } @@ -46,9 +50,7 @@ export class FileOverviewComponent implements OnInit { } refreshFiles() { - console.log("refreshing files"); this.filesService.getFileMetadata().subscribe(fm => { - console.log(fm); this.dataSource = new MatTableDataSource<FileMetadata>(fm); this.filesAvailable = true; setTimeout(() => { @@ -58,6 +60,23 @@ export class FileOverviewComponent implements OnInit { } deleteFile(fileMetadata: FileMetadata) { + let dialogRef = this.dialog.open(ConfirmDialogComponent, { + width: '500px', + data: { + "title": "Do you really want to delete this file?", + "subtitle": "This cannot be undone.", + "cancelTitle": "No", + "okTitle": "Yes", + "confirmAndCancel": true + }, + }); + dialogRef.afterClosed().subscribe(ev => { + if (ev) { + this.filesService.deleteFile(fileMetadata.fileId).subscribe(response => { + this.refreshFiles(); + }); + } + }) } } \ No newline at end of file diff --git a/ui/src/app/files/files.module.ts b/ui/src/app/files/files.module.ts index 398caeb..e7b238e 100644 --- a/ui/src/app/files/files.module.ts +++ b/ui/src/app/files/files.module.ts @@ -38,6 +38,7 @@ import {FileOverviewComponent} from "./components/file-overview/file-overview.co import {MatTableModule} from "@angular/material/table"; import {MatPaginatorModule} from "@angular/material/paginator"; import {MatChipsModule} from "@angular/material/chips"; +import {MatTooltipModule} from "@angular/material/tooltip"; @NgModule({ imports: [ @@ -58,6 +59,7 @@ import {MatChipsModule} from "@angular/material/chips"; MatProgressBarModule, MatTableModule, MatTabsModule, + MatTooltipModule, PlatformServicesModule, ServicesModule ], diff --git a/ui/src/app/platform-services/apis/files.service.ts b/ui/src/app/platform-services/apis/files.service.ts index f07a1bf..017f193 100644 --- a/ui/src/app/platform-services/apis/files.service.ts +++ b/ui/src/app/platform-services/apis/files.service.ts @@ -56,4 +56,8 @@ export class FilesService { return (response as any[]).map(fm => FileMetadata.fromData(fm)); })); } + + deleteFile(fileId: string) { + return this.http.delete(this.platformServicesCommons.authUserBasePath() + "/files/" + fileId); + } } \ No newline at end of file
