You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2020/09/15 18:44:18 UTC
[incubator-streampipes] 02/02: [STREAMPIPES-217] Add delete feature
to file management
This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch rel/0.67.0
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit 0964daca5c65783ef8318938d5692d5ab87bd7ae
Author: Dominik Riemer <ri...@fzi.de>
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