diff --git a/src/app/_dialogs/open-file-dialog/open-file-dialog.component.html b/src/app/_dialogs/open-file-dialog/open-file-dialog.component.html index 27a3bb4..0e266e9 100644 --- a/src/app/_dialogs/open-file-dialog/open-file-dialog.component.html +++ b/src/app/_dialogs/open-file-dialog/open-file-dialog.component.html @@ -2,6 +2,7 @@ Where is your file? Upload a local {{fileTypesString()}} file Open a {{fileTypesString()}} file from URL + Upload a new reference file ({{fileTypes}}) @@ -28,6 +29,17 @@ +
+ + folder_open   + + + + + +
+
link   diff --git a/src/app/reference-files/reference-files.component.html b/src/app/reference-files/reference-files.component.html index 17b8eee..e43845e 100644 --- a/src/app/reference-files/reference-files.component.html +++ b/src/app/reference-files/reference-files.component.html @@ -1,5 +1,10 @@
-

Reference Files

+
+

Reference Files

+ +
diff --git a/src/app/reference-files/reference-files.component.scss b/src/app/reference-files/reference-files.component.scss index 34180cc..6770ce5 100644 --- a/src/app/reference-files/reference-files.component.scss +++ b/src/app/reference-files/reference-files.component.scss @@ -1,5 +1,10 @@ @import "../../config"; +.top-bar { + padding-top: 1em; + margin-bottom: 1em; +} + mat-card { padding: 2em; border: 1px solid $brand-gray; diff --git a/src/app/reference-files/reference-files.component.ts b/src/app/reference-files/reference-files.component.ts index 7936b28..512bc1f 100644 --- a/src/app/reference-files/reference-files.component.ts +++ b/src/app/reference-files/reference-files.component.ts @@ -2,7 +2,7 @@ import {Component} from '@angular/core'; import {MatDialog} from '@angular/material/dialog'; import {MatSnackBar} from '@angular/material/snack-bar'; import * as fileSaver from 'file-saver'; -import {ApiService, FileMeta, FileType} from 'sartography-workflow-lib'; +import {ApiService, FileMeta, FileParams, FileType, getFileType, isNumberDefined} from 'sartography-workflow-lib'; import {OpenFileDialogComponent} from '../_dialogs/open-file-dialog/open-file-dialog.component'; import {OpenFileDialogData} from '../_interfaces/dialog-data'; @@ -56,4 +56,32 @@ export class ReferenceFilesComponent { fileSaver.saveAs(blob, fm.name); }); } + + addNewReferenceFile(fm?: FileMeta, file?: File) { + const dialogData: OpenFileDialogData = { + fileMetaId: fm ? fm.id : undefined, + file, + mode: 'reference', + fileTypes: [FileType.DOC, FileType.DOCX, FileType.XLSX, FileType.XLS], + }; + const dialogRef = this.dialog.open(OpenFileDialogComponent, {data: dialogData}); + + dialogRef.afterClosed().subscribe((data: OpenFileDialogData) => { + if (data && data.file) { + const newFileMeta: FileMeta = { + id: data.fileMetaId, + content_type: data.file.type, + name: data.file.name, + type: getFileType(data.file), + is_reference: true, + }; + const fileParams = {}; + this.apiService.addFile(fileParams, newFileMeta, data.file).subscribe(refs => { + this.snackBar.open(`Added new file ${fm.name}.`, 'Ok', {duration: 3000}); + this._loadReferenceFiles(); + } + ) + } + }); + } }