Skip to content

Commit 962b96f

Browse files
fix: files uploaded before addRecord
1 parent fc30ba0 commit 962b96f

File tree

3 files changed

+25
-8
lines changed

3 files changed

+25
-8
lines changed

libs/safe/src/lib/components/form/form.component.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
EDIT_RECORD,
2020
} from './graphql/mutations';
2121
import { Form } from '../../models/form.model';
22-
import { Record } from '../../models/record.model';
22+
import { Record as RecordModel } from '../../models/record.model';
2323
import { BehaviorSubject, takeUntil } from 'rxjs';
2424
import addCustomFunctions from '../../utils/custom-functions';
2525
import { SafeAuthService } from '../../services/auth/auth.service';
@@ -45,7 +45,7 @@ export class SafeFormComponent
4545
implements OnInit, OnDestroy, AfterViewInit
4646
{
4747
@Input() form!: Form;
48-
@Input() record?: Record;
48+
@Input() record?: RecordModel;
4949
@Output() save: EventEmitter<{
5050
completed: boolean;
5151
hideNewRecord?: boolean;
@@ -54,7 +54,7 @@ export class SafeFormComponent
5454
// === SURVEYJS ===
5555
public survey!: Survey.SurveyModel;
5656
public surveyActive = true;
57-
private temporaryFilesStorage: any = {};
57+
public temporaryFilesStorage: Record<string, Array<File>> = {};
5858

5959
@ViewChild('formContainer') formContainer!: ElementRef;
6060

@@ -213,7 +213,9 @@ export class SafeFormComponent
213213
*/
214214
public reset(): void {
215215
this.survey.clear();
216-
this.temporaryFilesStorage = {};
216+
this.formHelpersService.clearTemporaryFilesStorage(
217+
this.temporaryFilesStorage
218+
);
217219
this.survey.showCompletedPage = false;
218220
this.save.emit({ completed: false });
219221
this.survey.render();
@@ -347,7 +349,9 @@ export class SafeFormComponent
347349
} else {
348350
this.survey.clear();
349351
}
350-
this.temporaryFilesStorage = {};
352+
this.formHelpersService.clearTemporaryFilesStorage(
353+
this.temporaryFilesStorage
354+
);
351355
localStorage.removeItem(this.storageId);
352356
this.formHelpersService.cleanCachedRecords(this.survey);
353357
this.isFromCacheData = false;

libs/safe/src/lib/services/form-builder/form-builder.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { SafeReferenceDataService } from '../reference-data/reference-data.servi
55
import { renderGlobalProperties } from '../../survey/render-global-properties';
66
import { Apollo } from 'apollo-angular';
77
import get from 'lodash/get';
8-
import { Record } from '../../models/record.model';
8+
import { Record as RecordModel } from '../../models/record.model';
99
import { EditRecordMutationResponse, EDIT_RECORD } from './graphql/mutations';
1010
import { Metadata } from '../../models/metadata.model';
1111
import { SafeRestService } from '../rest/rest.service';
@@ -53,7 +53,7 @@ export class SafeFormBuilderService {
5353
structure: string,
5454
pages: BehaviorSubject<any[]>,
5555
fields: Metadata[] = [],
56-
record?: Record
56+
record?: RecordModel
5757
): Survey.SurveyModel {
5858
const survey = new Survey.Model(structure);
5959
this.formHelpersService.addUserVariables(survey);
@@ -145,7 +145,7 @@ export class SafeFormBuilderService {
145145
survey: Survey.SurveyModel,
146146
pages: BehaviorSubject<any[]>,
147147
selectedPageIndex: BehaviorSubject<number>,
148-
temporaryFilesStorage: any
148+
temporaryFilesStorage: Record<string, Array<File>>
149149
) {
150150
survey.onClearFiles.add((_, options: any) => this.onClearFiles(options));
151151
survey.onUploadFiles.add((_, options: any) =>

libs/safe/src/lib/services/form-helper/form-helper.service.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,4 +339,17 @@ export class SafeFormHelpersService {
339339
// as a default question for Users question type
340340
survey.setVariable('user.id', user?.id || '');
341341
};
342+
343+
/**
344+
* Clears the temporary files storage
345+
*
346+
* @param storage Storage to clear
347+
*/
348+
public clearTemporaryFilesStorage(
349+
storage: Record<string, Array<File>>
350+
): void {
351+
Object.keys(storage).forEach((key) => {
352+
delete storage[key];
353+
});
354+
}
342355
}

0 commit comments

Comments
 (0)