From 357b3731cc19e173a51ea8da21e639d7cb461a04 Mon Sep 17 00:00:00 2001 From: Jivjyot Singh Date: Fri, 12 Jul 2019 02:11:41 +0530 Subject: [PATCH] feat(clients): upload document page fixes: #265 --- .../documents-tab.component.html | 59 ++++++++++--------- .../documents-tab/documents-tab.component.ts | 38 +++++++++++- .../identities-tab.component.html | 2 +- .../identities-tab.component.ts | 6 +- .../upload-document-dialog.component.html | 34 ++++++----- .../upload-document-dialog.component.ts | 7 ++- src/app/clients/clients.service.ts | 4 ++ 7 files changed, 99 insertions(+), 51 deletions(-) diff --git a/src/app/clients/clients-view/documents-tab/documents-tab.component.html b/src/app/clients/clients-view/documents-tab/documents-tab.component.html index 7b2ea9ca3..54384fb82 100644 --- a/src/app/clients/clients-view/documents-tab/documents-tab.component.html +++ b/src/app/clients/clients-view/documents-tab/documents-tab.component.html @@ -1,46 +1,47 @@
- + -

Documents

+

Documents

- - +
- - - - + + + + - - - - + + + + - - - - + + + + - - - + - + + - - -
Name - {{document.name}} Name + {{document.name}} Description {{document.description}} Description {{document.description}} File Name {{document.fileName}} - File Name {{document.fileName}} + Actions - Actions + - -
+ + +
\ No newline at end of file diff --git a/src/app/clients/clients-view/documents-tab/documents-tab.component.ts b/src/app/clients/clients-view/documents-tab/documents-tab.component.ts index b54f0794b..4c3f9acc1 100644 --- a/src/app/clients/clients-view/documents-tab/documents-tab.component.ts +++ b/src/app/clients/clients-view/documents-tab/documents-tab.component.ts @@ -5,6 +5,9 @@ import { MatDialog } from '@angular/material'; /** Custom Services */ import { ClientsService } from '../../clients.service'; + +/** Custom Components */ +import { UploadDocumentDialogComponent } from '../upload-document-dialog/upload-document-dialog.component'; import { DeleteDialogComponent } from '../../../shared/delete-dialog/delete-dialog.component'; @@ -17,6 +20,7 @@ export class DocumentsTabComponent implements OnInit { @ViewChild('documentsTable') documentsTable: MatTable; documentsColumns: string[] = ['name', 'description', 'fileName', 'actions']; clientDocuments: any; + clientId: string; constructor(private route: ActivatedRoute, @@ -24,7 +28,10 @@ export class DocumentsTabComponent implements OnInit { public dialog: MatDialog) { this.route.data.subscribe((data: { clientDocuments: any }) => { this.clientDocuments = data.clientDocuments; + console.log(this.clientDocuments); + }); + this.clientId = this.route.parent.snapshot.paramMap.get('clientId'); } ngOnInit() { @@ -38,10 +45,10 @@ export class DocumentsTabComponent implements OnInit { } deleteDocument(parentEntityId: string, documentId: string, index: number) { - const deleteFamilyMemberDialogRef = this.dialog.open(DeleteDialogComponent, { + const deleteDocumentDialogRef = this.dialog.open(DeleteDialogComponent, { data: { deleteContext: `document id:${documentId}` } }); - deleteFamilyMemberDialogRef.afterClosed().subscribe((response: any) => { + deleteDocumentDialogRef.afterClosed().subscribe((response: any) => { if (response.delete) { this.clientService.deleteClientDocument(parentEntityId, documentId).subscribe(res => { this.clientDocuments.splice(index, 1); @@ -51,4 +58,31 @@ export class DocumentsTabComponent implements OnInit { }); } + uploadDocument() { + const uploadDocumentDialogRef = this.dialog.open(UploadDocumentDialogComponent, { + data: { documentIdentifier: false } + }); + uploadDocumentDialogRef.afterClosed().subscribe((dialogResponse: any) => { + console.log(dialogResponse); + if (dialogResponse) { + const formData: FormData = new FormData; + formData.append('name', dialogResponse.fileName); + formData.append('file', dialogResponse.file); + formData.append('description', dialogResponse.description); + this.clientService.uploadClientDocument(this.clientId, formData).subscribe((res: any) => { + this.clientDocuments.push({ + id: res.resourceId, + parentEntityType: 'clients', + parentEntityId: this.clientId, + name: dialogResponse.fileName, + description: dialogResponse.description, + fileName: dialogResponse.file.name + }); + this.documentsTable.renderRows(); + console.log('document Uploaded'); + }); + } + }); + } + } diff --git a/src/app/clients/clients-view/identities-tab/identities-tab.component.html b/src/app/clients/clients-view/identities-tab/identities-tab.component.html index d72cd46da..3e6f54227 100644 --- a/src/app/clients/clients-view/identities-tab/identities-tab.component.html +++ b/src/app/clients/clients-view/identities-tab/identities-tab.component.html @@ -49,7 +49,7 @@ - diff --git a/src/app/clients/clients-view/identities-tab/identities-tab.component.ts b/src/app/clients/clients-view/identities-tab/identities-tab.component.ts index 53c0424d2..36c5115ca 100644 --- a/src/app/clients/clients-view/identities-tab/identities-tab.component.ts +++ b/src/app/clients/clients-view/identities-tab/identities-tab.component.ts @@ -53,7 +53,9 @@ export class IdentitiesTabComponent implements OnInit { } uploadDocument(index: number, identifierId: string) { - const uploadDocumentDialogRef = this.dialog.open(UploadDocumentDialogComponent); + const uploadDocumentDialogRef = this.dialog.open(UploadDocumentDialogComponent, { + data: { documentIdentifier: true } + }); uploadDocumentDialogRef.afterClosed().subscribe((dialogResponse: any) => { if (dialogResponse) { const formData: FormData = new FormData; @@ -65,7 +67,7 @@ export class IdentitiesTabComponent implements OnInit { parentEntityType: 'client_identifiers', parentEntityId: identifierId, name: dialogResponse.fileName, - fileName: dialogResponse.file.fileName + fileName: dialogResponse.file.name }); this.identifiersTable.renderRows(); }); diff --git a/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.html b/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.html index ee30e8c05..c9cd2dcca 100644 --- a/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.html +++ b/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.html @@ -1,22 +1,26 @@

Upload Client Documents

-
+ - - File Name - - - File Name is required - - + + File Name + + + File Name is required + + - + + Description + + - - - - + -
+ + + + + +
\ No newline at end of file diff --git a/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.ts b/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.ts index f5fd00ff8..92cd674cb 100644 --- a/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.ts +++ b/src/app/clients/clients-view/upload-document-dialog/upload-document-dialog.component.ts @@ -12,10 +12,12 @@ export class UploadDocumentDialogComponent implements OnInit { uploadDocumentForm: FormGroup; file: any; uploadDocumentData: any = []; - + documentIdentifier = false; constructor(public dialogRef: MatDialogRef, private formBuilder: FormBuilder, - @Inject(MAT_DIALOG_DATA) public data: any) { } + @Inject(MAT_DIALOG_DATA) public data: any) { + this.documentIdentifier = data.documentIdentifier; + } ngOnInit() { this.createUploadDocumentForm(); @@ -27,6 +29,7 @@ export class UploadDocumentDialogComponent implements OnInit { createUploadDocumentForm() { this.uploadDocumentForm = this.formBuilder.group({ 'fileName': ['', Validators.required], + 'description': [''], 'file': [''] }); } diff --git a/src/app/clients/clients.service.ts b/src/app/clients/clients.service.ts index aecbcac69..0197640e0 100644 --- a/src/app/clients/clients.service.ts +++ b/src/app/clients/clients.service.ts @@ -105,6 +105,10 @@ export class ClientsService { return this.http.get(`/clients/${parentEntityId}/documents/${documentId}/attachment`, { responseType: 'blob' }); } + uploadClientDocument(clientId: string, documentData: any) { + return this.http.post(`/clients/${clientId}/documents`, documentData); + } + deleteClientDocument(parentEntityId: string, documentId: string) { return this.http.delete(`/clients/${parentEntityId}/documents/${documentId}`); }