Merge pull request #128 from sartography/files-to-filesystem-572
Files to filesystem 572
This commit is contained in:
commit
805c3b414c
|
@ -43,7 +43,7 @@
|
||||||
"ngx-markdown": "^12.0.1",
|
"ngx-markdown": "^12.0.1",
|
||||||
"protractor": "^7.0.0",
|
"protractor": "^7.0.0",
|
||||||
"rxjs": "^6.5.3",
|
"rxjs": "^6.5.3",
|
||||||
"sartography-workflow-lib": "0.0.587",
|
"sartography-workflow-lib": "0.0.589",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"uuid": "^8.3.2",
|
"uuid": "^8.3.2",
|
||||||
"zone.js": "~0.11.4"
|
"zone.js": "~0.11.4"
|
||||||
|
@ -16865,9 +16865,9 @@
|
||||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||||
},
|
},
|
||||||
"node_modules/sartography-workflow-lib": {
|
"node_modules/sartography-workflow-lib": {
|
||||||
"version": "0.0.587",
|
"version": "0.0.589",
|
||||||
"resolved": "https://registry.npmjs.org/sartography-workflow-lib/-/sartography-workflow-lib-0.0.587.tgz",
|
"resolved": "https://registry.npmjs.org/sartography-workflow-lib/-/sartography-workflow-lib-0.0.589.tgz",
|
||||||
"integrity": "sha512-e8XrOX+GiCW8DGTGfFdEnzB6nh8NniaVpFFeT3evL736yCcYgVIVOyxBFPFARBgfWtXGjZ2ay/b7Rag4V5KT5g==",
|
"integrity": "sha512-0riSQhmP2HK96Vz+lnvtiEVI/ofBXUg3eopmH0ZkwaLHc8VGMfqdtOGE/5sfFPWsHiggXtJxlSm/3IA8vJvI8Q==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": "^2.2.0"
|
"tslib": "^2.2.0"
|
||||||
}
|
}
|
||||||
|
@ -33368,9 +33368,9 @@
|
||||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||||
},
|
},
|
||||||
"sartography-workflow-lib": {
|
"sartography-workflow-lib": {
|
||||||
"version": "0.0.587",
|
"version": "0.0.589",
|
||||||
"resolved": "https://registry.npmjs.org/sartography-workflow-lib/-/sartography-workflow-lib-0.0.587.tgz",
|
"resolved": "https://registry.npmjs.org/sartography-workflow-lib/-/sartography-workflow-lib-0.0.589.tgz",
|
||||||
"integrity": "sha512-e8XrOX+GiCW8DGTGfFdEnzB6nh8NniaVpFFeT3evL736yCcYgVIVOyxBFPFARBgfWtXGjZ2ay/b7Rag4V5KT5g==",
|
"integrity": "sha512-0riSQhmP2HK96Vz+lnvtiEVI/ofBXUg3eopmH0ZkwaLHc8VGMfqdtOGE/5sfFPWsHiggXtJxlSm/3IA8vJvI8Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "^2.2.0"
|
"tslib": "^2.2.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
"ngx-markdown": "^12.0.1",
|
"ngx-markdown": "^12.0.1",
|
||||||
"protractor": "^7.0.0",
|
"protractor": "^7.0.0",
|
||||||
"rxjs": "^6.5.3",
|
"rxjs": "^6.5.3",
|
||||||
"sartography-workflow-lib": "0.0.587",
|
"sartography-workflow-lib": "0.0.589",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"uuid": "^8.3.2",
|
"uuid": "^8.3.2",
|
||||||
"zone.js": "~0.11.4"
|
"zone.js": "~0.11.4"
|
||||||
|
|
|
@ -81,7 +81,7 @@ describe('FileListComponent', () => {
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
|
|
||||||
|
|
||||||
const fmsReq = httpMock.expectOne(`apiRoot/file?workflow_spec_id=${mockWorkflowSpec0.id}`);
|
const fmsReq = httpMock.expectOne(`apiRoot/spec_file?workflow_spec_id=${mockWorkflowSpec0.id}`);
|
||||||
expect(fmsReq.request.method).toEqual('GET');
|
expect(fmsReq.request.method).toEqual('GET');
|
||||||
fmsReq.flush(mockFileMetas);
|
fmsReq.flush(mockFileMetas);
|
||||||
expect(component.fileMetas.length).toBeGreaterThan(0);
|
expect(component.fileMetas.length).toBeGreaterThan(0);
|
||||||
|
@ -133,7 +133,7 @@ describe('FileListComponent', () => {
|
||||||
it('should delete a file', () => {
|
it('should delete a file', () => {
|
||||||
const loadFileMetasSpy = spyOn((component as any), '_loadFileMetas').and.stub();
|
const loadFileMetasSpy = spyOn((component as any), '_loadFileMetas').and.stub();
|
||||||
(component as any)._deleteFile(mockFileMeta0);
|
(component as any)._deleteFile(mockFileMeta0);
|
||||||
const fmsReq = httpMock.expectOne(`apiRoot/file/${mockFileMeta0.id}`);
|
const fmsReq = httpMock.expectOne(`apiRoot/spec_file/${mockFileMeta0.id}`);
|
||||||
expect(fmsReq.request.method).toEqual('DELETE');
|
expect(fmsReq.request.method).toEqual('DELETE');
|
||||||
fmsReq.flush(null);
|
fmsReq.flush(null);
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ describe('FileListComponent', () => {
|
||||||
type: mockDocMeta.content_type,
|
type: mockDocMeta.content_type,
|
||||||
lastModified: timeCode
|
lastModified: timeCode
|
||||||
});
|
});
|
||||||
const fReq = httpMock.expectOne(`apiRoot/file/${mockDocMeta.id}/data`);
|
const fReq = httpMock.expectOne(`apiRoot/spec_file/${mockDocMeta.id}/data`);
|
||||||
|
|
||||||
const mockHeaders = new HttpHeaders()
|
const mockHeaders = new HttpHeaders()
|
||||||
.append('last-modified', expectedFile.lastModified.toString())
|
.append('last-modified', expectedFile.lastModified.toString())
|
||||||
|
@ -204,7 +204,7 @@ describe('FileListComponent', () => {
|
||||||
component.workflowSpec = mockWorkflowSpec0;
|
component.workflowSpec = mockWorkflowSpec0;
|
||||||
|
|
||||||
(component as any)._openFileDialog();
|
(component as any)._openFileDialog();
|
||||||
const addReq = httpMock.expectOne(`apiRoot/file?workflow_spec_id=${mockWorkflowSpec0.id}`);
|
const addReq = httpMock.expectOne(`apiRoot/spec_file?workflow_spec_id=${mockWorkflowSpec0.id}`);
|
||||||
expect(addReq.request.method).toEqual('POST');
|
expect(addReq.request.method).toEqual('POST');
|
||||||
addReq.flush(mockFileMeta0);
|
addReq.flush(mockFileMeta0);
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ describe('FileListComponent', () => {
|
||||||
component.workflowSpec = mockWorkflowSpec0;
|
component.workflowSpec = mockWorkflowSpec0;
|
||||||
|
|
||||||
(component as any)._openFileDialog(mockFileMeta0, mockFile0);
|
(component as any)._openFileDialog(mockFileMeta0, mockFile0);
|
||||||
const updateReq = httpMock.expectOne(`apiRoot/file/${mockFileMeta0.id}/data`);
|
const updateReq = httpMock.expectOne(`apiRoot/spec_file/${mockFileMeta0.id}/data`);
|
||||||
expect(updateReq.request.method).toEqual('PUT');
|
expect(updateReq.request.method).toEqual('PUT');
|
||||||
updateReq.flush(mockFileMeta0);
|
updateReq.flush(mockFileMeta0);
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ export class FileListComponent implements OnInit, OnChanges {
|
||||||
|
|
||||||
editFileMeta(fm: FileMeta) {
|
editFileMeta(fm: FileMeta) {
|
||||||
if (fm && isNumberDefined(fm.id)) {
|
if (fm && isNumberDefined(fm.id)) {
|
||||||
this.api.getFileData(fm.id).subscribe(response => {
|
this.api.getSpecFileData(fm.id).subscribe(response => {
|
||||||
const file = newFileFromResponse(fm, response);
|
const file = newFileFromResponse(fm, response);
|
||||||
this._openFileDialog(fm, file);
|
this._openFileDialog(fm, file);
|
||||||
});
|
});
|
||||||
|
@ -85,9 +85,8 @@ export class FileListComponent implements OnInit, OnChanges {
|
||||||
// Fixme: This buisness rule does not belong here.
|
// Fixme: This buisness rule does not belong here.
|
||||||
this.fileMetas.forEach(fm => {
|
this.fileMetas.forEach(fm => {
|
||||||
fm.primary = (fmPrimary.id === fm.id);
|
fm.primary = (fmPrimary.id === fm.id);
|
||||||
this.api.updateFileMeta(fm).subscribe(() => {
|
this.api.updateSpecFileMeta(fm).subscribe(() => {
|
||||||
numUpdated++;
|
numUpdated++;
|
||||||
|
|
||||||
// Reload all fileMetas when all have been updated.
|
// Reload all fileMetas when all have been updated.
|
||||||
if (numUpdated === this.fileMetas.length) {
|
if (numUpdated === this.fileMetas.length) {
|
||||||
this._loadFileMetas();
|
this._loadFileMetas();
|
||||||
|
@ -125,16 +124,11 @@ export class FileListComponent implements OnInit, OnChanges {
|
||||||
|
|
||||||
if (isNumberDefined(data.fileMetaId)) {
|
if (isNumberDefined(data.fileMetaId)) {
|
||||||
// Update existing file
|
// Update existing file
|
||||||
this.api.updateFileData(newFileMeta, data.file).subscribe(() => {
|
this.api.updateSpecFileData(newFileMeta, data.file).subscribe(() => {
|
||||||
this._loadFileMetas();
|
this._loadFileMetas();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// Add new file
|
this.api.addSpecFile(this.workflowSpec, newFileMeta, data.file).subscribe(dbFm => {
|
||||||
const fileParams: FileParams = {
|
|
||||||
workflow_spec_id: this.workflowSpec.id,
|
|
||||||
};
|
|
||||||
|
|
||||||
this.api.addFile(fileParams, newFileMeta, data.file).subscribe(dbFm => {
|
|
||||||
this._loadFileMetas();
|
this._loadFileMetas();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -143,14 +137,14 @@ export class FileListComponent implements OnInit, OnChanges {
|
||||||
}
|
}
|
||||||
|
|
||||||
private _deleteFile(fileMeta: FileMeta) {
|
private _deleteFile(fileMeta: FileMeta) {
|
||||||
this.api.deleteFileMeta(fileMeta.id).subscribe(() => {
|
this.api.deleteSpecFileMeta(fileMeta.id).subscribe(() => {
|
||||||
this._loadFileMetas();
|
this._loadFileMetas();
|
||||||
this.snackBar.open(`Deleted file ${fileMeta.name}.`, 'Ok', {duration: 3000});
|
this.snackBar.open(`Deleted file ${fileMeta.name}.`, 'Ok', {duration: 3000});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _loadFileMetas() {
|
private _loadFileMetas() {
|
||||||
this.api.getFileMetas({workflow_spec_id: this.workflowSpec.id}).subscribe(fms => {
|
this.api.getSpecFileMetas(this.workflowSpec.id).subscribe(fms => {
|
||||||
this.fileMetas = fms.sort((a, b) => (a.name > b.name) ? 1 : -1);
|
this.fileMetas = fms.sort((a, b) => (a.name > b.name) ? 1 : -1);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,11 +129,11 @@ describe('ModelerComponent', () => {
|
||||||
wfsReq.flush(mockWorkflowSpec0);
|
wfsReq.flush(mockWorkflowSpec0);
|
||||||
expect(component.workflowSpec).toEqual(mockWorkflowSpec0);
|
expect(component.workflowSpec).toEqual(mockWorkflowSpec0);
|
||||||
|
|
||||||
const req = httpMock.expectOne(`apiRoot/file?workflow_spec_id=${mockWorkflowSpec0.id}`);
|
const req = httpMock.expectOne(`apiRoot/spec_file?workflow_spec_id=${mockWorkflowSpec0.id}`);
|
||||||
expect(req.request.method).toEqual('GET');
|
expect(req.request.method).toEqual('GET');
|
||||||
req.flush(mockFileMetas);
|
req.flush(mockFileMetas);
|
||||||
|
|
||||||
const fmReq = httpMock.expectOne(`apiRoot/file/${mockFileMeta0.id}/data`);
|
const fmReq = httpMock.expectOne(`apiRoot/spec_file/${mockFileMeta0.id}/data`);
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -279,7 +279,7 @@ describe('ModelerComponent', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should save file changes', () => {
|
it('should save file changes', () => {
|
||||||
const updateFileDataSpy = spyOn(component.api, 'updateFileData').and.returnValue(of(mockFileMeta0));
|
const updateFileDataSpy = spyOn(component.api, 'updateSpecFileData').and.returnValue(of(mockFileMeta0));
|
||||||
const snackBarOpenSpy = spyOn(component.snackBar, 'open').and.stub();
|
const snackBarOpenSpy = spyOn(component.snackBar, 'open').and.stub();
|
||||||
|
|
||||||
component.workflowSpec = mockWorkflowSpec0;
|
component.workflowSpec = mockWorkflowSpec0;
|
||||||
|
@ -311,9 +311,9 @@ describe('ModelerComponent', () => {
|
||||||
fileName: mockFileMeta0.name,
|
fileName: mockFileMeta0.name,
|
||||||
fileType: FileType.BPMN,
|
fileType: FileType.BPMN,
|
||||||
};
|
};
|
||||||
const updateFileMetaSpy = spyOn(component.api, 'updateFileMeta')
|
const updateFileMetaSpy = spyOn(component.api, 'updateSpecFileMeta')
|
||||||
.and.returnValue(of(mockFileMeta0));
|
.and.returnValue(of(mockFileMeta0));
|
||||||
const updateFileDataSpy = spyOn(component.api, 'updateFileData')
|
const updateFileDataSpy = spyOn(component.api, 'updateSpecFileData')
|
||||||
.and.returnValue(of(mockFile0));
|
.and.returnValue(of(mockFile0));
|
||||||
const loadFilesFromDbSpy = spyOn(component, 'loadFilesFromDb').and.stub();
|
const loadFilesFromDbSpy = spyOn(component, 'loadFilesFromDb').and.stub();
|
||||||
const snackBarSpy = spyOn(component.snackBar, 'open').and.stub();
|
const snackBarSpy = spyOn(component.snackBar, 'open').and.stub();
|
||||||
|
@ -349,7 +349,7 @@ describe('ModelerComponent', () => {
|
||||||
workflow_spec_id: mockFileMeta0.workflow_spec_id,
|
workflow_spec_id: mockFileMeta0.workflow_spec_id,
|
||||||
};
|
};
|
||||||
|
|
||||||
const addFileMetaSpy = spyOn(component.api, 'addFile')
|
const addFileMetaSpy = spyOn(component.api, 'addSpecFile')
|
||||||
.and.returnValue(of(mockFileMeta0));
|
.and.returnValue(of(mockFileMeta0));
|
||||||
const loadFilesFromDbSpy = spyOn(component, 'loadFilesFromDb').and.stub();
|
const loadFilesFromDbSpy = spyOn(component, 'loadFilesFromDb').and.stub();
|
||||||
const routerNavigateSpy = spyOn(component.router, 'navigate').and.stub();
|
const routerNavigateSpy = spyOn(component.router, 'navigate').and.stub();
|
||||||
|
@ -361,7 +361,7 @@ describe('ModelerComponent', () => {
|
||||||
component.draftXml = newXml;
|
component.draftXml = newXml;
|
||||||
component._upsertFileMeta(data);
|
component._upsertFileMeta(data);
|
||||||
expect(component.xml).toEqual(newXml);
|
expect(component.xml).toEqual(newXml);
|
||||||
expect(addFileMetaSpy).toHaveBeenCalledWith({workflow_spec_id: mockWorkflowSpec0.id}, noDateOrVersion, mockFile0);
|
expect(addFileMetaSpy).toHaveBeenCalledWith(mockWorkflowSpec0, noDateOrVersion, mockFile0);
|
||||||
expect(loadFilesFromDbSpy).not.toHaveBeenCalled();
|
expect(loadFilesFromDbSpy).not.toHaveBeenCalled();
|
||||||
expect(routerNavigateSpy).toHaveBeenCalled();
|
expect(routerNavigateSpy).toHaveBeenCalled();
|
||||||
expect(snackBarSpy).toHaveBeenCalled();
|
expect(snackBarSpy).toHaveBeenCalled();
|
||||||
|
@ -378,15 +378,15 @@ describe('ModelerComponent', () => {
|
||||||
|
|
||||||
const getWorkflowSpecSpy = spyOn(component.api, 'getWorkflowSpecification')
|
const getWorkflowSpecSpy = spyOn(component.api, 'getWorkflowSpecification')
|
||||||
.and.returnValue(of(mockWorkflowSpec0));
|
.and.returnValue(of(mockWorkflowSpec0));
|
||||||
const getFileMetasSpy = spyOn(component.api, 'getFileMetas')
|
const getFileMetasSpy = spyOn(component.api, 'getSpecFileMetas')
|
||||||
.and.returnValue(of(mockFileMetas));
|
.and.returnValue(of(mockFileMetas));
|
||||||
const getFileDataSpy = spyOn(component.api, 'getFileData')
|
const getFileDataSpy = spyOn(component.api, 'getSpecFileData')
|
||||||
.and.returnValue(of(mockResponse));
|
.and.returnValue(of(mockResponse));
|
||||||
component.loadFilesFromDb();
|
component.loadFilesFromDb();
|
||||||
|
|
||||||
expect(getWorkflowSpecSpy).toHaveBeenCalled();
|
expect(getWorkflowSpecSpy).toHaveBeenCalled();
|
||||||
expect(component.workflowSpec).toEqual(mockWorkflowSpec0);
|
expect(component.workflowSpec).toEqual(mockWorkflowSpec0);
|
||||||
expect(getFileMetasSpy).toHaveBeenCalledWith({workflow_spec_id: mockWorkflowSpec0.id});
|
expect(getFileMetasSpy).toHaveBeenCalledWith(mockWorkflowSpec0.id);
|
||||||
|
|
||||||
|
|
||||||
expect(component.bpmnFiles.length).toEqual(mockFileMetas.length);
|
expect(component.bpmnFiles.length).toEqual(mockFileMetas.length);
|
||||||
|
|
|
@ -357,7 +357,7 @@ export class ModelerComponent implements AfterViewInit {
|
||||||
private loadFilesFromDb() {
|
private loadFilesFromDb() {
|
||||||
this.api.getWorkflowSpecification(this.workflowSpecId).subscribe(wfs => {
|
this.api.getWorkflowSpecification(this.workflowSpecId).subscribe(wfs => {
|
||||||
this.workflowSpec = wfs;
|
this.workflowSpec = wfs;
|
||||||
this.api.getFileMetas({workflow_spec_id: wfs.id}).subscribe(files => {
|
this.api.getSpecFileMetas(wfs.id).subscribe(files => {
|
||||||
this.bpmnFiles = [];
|
this.bpmnFiles = [];
|
||||||
files.forEach(f => {
|
files.forEach(f => {
|
||||||
if ((f.type === FileType.BPMN) || (f.type === FileType.DMN)) {
|
if ((f.type === FileType.BPMN) || (f.type === FileType.DMN)) {
|
||||||
|
@ -366,7 +366,7 @@ export class ModelerComponent implements AfterViewInit {
|
||||||
|
|
||||||
if (f.id === this.fileMetaId) {
|
if (f.id === this.fileMetaId) {
|
||||||
this.diagramFileMeta = f;
|
this.diagramFileMeta = f;
|
||||||
this.api.getFileData(f.id).subscribe(response => {
|
this.api.getSpecFileData(f.id).subscribe(response => {
|
||||||
this.diagramFile = newFileFromResponse(f, response);
|
this.diagramFile = newFileFromResponse(f, response);
|
||||||
this.onSubmitFileToOpen();
|
this.onSubmitFileToOpen();
|
||||||
});
|
});
|
||||||
|
@ -394,15 +394,15 @@ export class ModelerComponent implements AfterViewInit {
|
||||||
|
|
||||||
if (this.workflowSpec && isNumberDefined(fileMetaId)) {
|
if (this.workflowSpec && isNumberDefined(fileMetaId)) {
|
||||||
// Update existing file meta
|
// Update existing file meta
|
||||||
this.api.updateFileData(this.diagramFileMeta, this.diagramFile).subscribe(() => {
|
this.api.updateSpecFileData(this.diagramFileMeta, this.diagramFile).subscribe(() => {
|
||||||
this.api.updateFileMeta(this.diagramFileMeta).subscribe(() => {
|
this.api.updateSpecFileMeta(this.diagramFileMeta).subscribe(() => {
|
||||||
this.loadFilesFromDb();
|
this.loadFilesFromDb();
|
||||||
this.snackBar.open(`Saved changes to file ${this.diagramFileMeta.name}.`, 'Ok', {duration: 5000});
|
this.snackBar.open(`Saved changes to file ${this.diagramFileMeta.name}.`, 'Ok', {duration: 5000});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// Add new file meta
|
// Add new file meta
|
||||||
this.api.addFile({workflow_spec_id: this.workflowSpec.id}, this.diagramFileMeta, this.diagramFile).subscribe(fileMeta => {
|
this.api.addSpecFile(this.workflowSpec, this.diagramFileMeta, this.diagramFile).subscribe(fileMeta => {
|
||||||
this.router.navigate(['/modeler', this.workflowSpec.id, fileMeta.id]);
|
this.router.navigate(['/modeler', this.workflowSpec.id, fileMeta.id]);
|
||||||
this.snackBar.open(`Saved new file ${fileMeta.name} to workflow spec ${this.workflowSpec.display_name}.`, 'Ok', {duration: 5000});
|
this.snackBar.open(`Saved new file ${fileMeta.name} to workflow spec ${this.workflowSpec.display_name}.`, 'Ok', {duration: 5000});
|
||||||
}, () => {
|
}, () => {
|
||||||
|
@ -419,7 +419,7 @@ export class ModelerComponent implements AfterViewInit {
|
||||||
this.xml = this.draftXml;
|
this.xml = this.draftXml;
|
||||||
this.diagramFile = new File([this.xml], this.diagramFileMeta.name, {type: 'text/xml'});
|
this.diagramFile = new File([this.xml], this.diagramFileMeta.name, {type: 'text/xml'});
|
||||||
|
|
||||||
this.api.updateFileData(this.diagramFileMeta, this.diagramFile).subscribe(newFileMeta => {
|
this.api.updateSpecFileData(this.diagramFileMeta, this.diagramFile).subscribe(newFileMeta => {
|
||||||
this.diagramFileMeta = newFileMeta;
|
this.diagramFileMeta = newFileMeta;
|
||||||
this.snackBar.open(`Saved changes to file metadata ${this.diagramFileMeta.name}.`, 'Ok', {duration: 5000});
|
this.snackBar.open(`Saved changes to file metadata ${this.diagramFileMeta.name}.`, 'Ok', {duration: 5000});
|
||||||
});
|
});
|
||||||
|
|
|
@ -83,7 +83,7 @@ export class ReferenceFilesComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteFile(id: number, name: string) {
|
deleteFile(id: number, name: string) {
|
||||||
this.apiService.deleteFileMeta(id).subscribe(f => {
|
this.apiService.deleteRefFileMeta(id).subscribe(f => {
|
||||||
this.snackBar.open(`Deleted reference file ${name}.`, 'Ok', {duration: 3000});
|
this.snackBar.open(`Deleted reference file ${name}.`, 'Ok', {duration: 3000});
|
||||||
this._loadReferenceFiles();
|
this._loadReferenceFiles();
|
||||||
});
|
});
|
||||||
|
|
|
@ -294,6 +294,26 @@ describe('WorkflowSpecListComponent', () => {
|
||||||
const _addWorkflowSpecCategorySpy = spyOn((component as any), '_addWorkflowSpecCategory').and.stub();
|
const _addWorkflowSpecCategorySpy = spyOn((component as any), '_addWorkflowSpecCategory').and.stub();
|
||||||
const _updateWorkflowSpecCategorySpy = spyOn((component as any), '_updateWorkflowSpecCategory').and.stub();
|
const _updateWorkflowSpecCategorySpy = spyOn((component as any), '_updateWorkflowSpecCategory').and.stub();
|
||||||
|
|
||||||
|
// This disaster keeps up from having to deal with the '"find" is not a function' error, it assures there is one.
|
||||||
|
if (typeof Array.prototype.find !== 'function') {
|
||||||
|
Array.prototype.find = function(iterator) {
|
||||||
|
var list = Object(this);
|
||||||
|
var length = list.length >>> 0;
|
||||||
|
var thisArg = arguments[1];
|
||||||
|
var value;
|
||||||
|
|
||||||
|
for (var i = 0; i < length; i++) {
|
||||||
|
value = list[i];
|
||||||
|
if (iterator.call(thisArg, value, i, list)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
component.selectedCat = undefined;
|
component.selectedCat = undefined;
|
||||||
mockWorkflowSpecCategory1.id = null;
|
mockWorkflowSpecCategory1.id = null;
|
||||||
(component as any)._upsertWorkflowSpecCategory(mockWorkflowSpecCategory1 as WorkflowSpecCategoryDialogData);
|
(component as any)._upsertWorkflowSpecCategory(mockWorkflowSpecCategory1 as WorkflowSpecCategoryDialogData);
|
||||||
|
|
Loading…
Reference in New Issue