Skip to content

Commit

Permalink
Story/add document id to start form (#1325)
Browse files Browse the repository at this point in the history
* story/add-documentId-to-start-form add documentId to fvm start view model

* story/add-documentId-to-start-form add optional documentId to start form if starting supporting process
  • Loading branch information
floris-thijssen-ritense authored Jan 31, 2025
1 parent 92c079e commit 9443d77
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -199,15 +199,17 @@ export class DossierSupportingProcessStartModalComponent {
this.processDefinitionKey$,
this.documentDefinitionName$,
this.options$,
this.documentId$,
])
.pipe(take(1))
.subscribe(([form, processDefinitionKey, documentDefinitionName, options]) => {
.subscribe(([form, processDefinitionKey, documentDefinitionName, options, documentId]) => {
formViewModelComponent.instance.formName = formName;
formViewModelComponent.instance.form = form;
formViewModelComponent.instance.processDefinitionKey = processDefinitionKey;
formViewModelComponent.instance.documentDefinitionName = documentDefinitionName;
formViewModelComponent.instance.options = options;
formViewModelComponent.instance.isStartForm = true;
formViewModelComponent.instance.documentId = documentId;
});

formViewModelComponent.instance.formSubmit.pipe(take(1)).subscribe(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ export class FormViewModelComponent implements OnInit, OnDestroy {
this.isStartForm$.next(isStartFormValue);
}

@Input() set documentId(documentId: string) {
this.documentId$.next(documentId);
}

@Input() set processDefinitionKey(processDefinitionKeyValue: string) {
this.processDefinitionKey$.next(processDefinitionKeyValue);
}
Expand Down Expand Up @@ -119,6 +123,7 @@ export class FormViewModelComponent implements OnInit, OnDestroy {
public readonly focus$ = new BehaviorSubject<FocusEvent>(null);
public readonly loading$ = new BehaviorSubject<boolean>(true);
public readonly isStartForm$ = new BehaviorSubject<boolean>(false);
public readonly documentId$ = new BehaviorSubject<string>(null);
public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);
public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);
public readonly updateForm = new Subject<boolean>();
Expand Down Expand Up @@ -223,6 +228,7 @@ export class FormViewModelComponent implements OnInit, OnDestroy {
this.processDefinitionKey$,
this.documentDefinitionName$,
this.isStartForm$,
this.documentId$,
])
.pipe(
take(1),
Expand All @@ -233,12 +239,14 @@ export class FormViewModelComponent implements OnInit, OnDestroy {
processDefinitionKey,
documentDefinitionName,
isStartForm,
documentId,
]) =>
isStartForm
? this.viewModelService
.submitViewModelForStartForm(
formName,
processDefinitionKey,
documentId,
documentDefinitionName,
submission.data
)
Expand Down Expand Up @@ -403,11 +411,11 @@ export class FormViewModelComponent implements OnInit, OnDestroy {
}

public loadInitialViewModelForStartForm(): void {
combineLatest([this.formName$, this.processDefinitionKey$])
combineLatest([this.formName$, this.processDefinitionKey$, this.documentId$])
.pipe(
take(1),
switchMap(([formName, processDefinitionKey]) =>
this.viewModelService.getViewModelForStartForm(formName, processDefinitionKey).pipe(
switchMap(([formName, processDefinitionKey, documentId]) =>
this.viewModelService.getViewModelForStartForm(formName, processDefinitionKey, documentId).pipe(
tap(viewModel => {
this.submission$.next({data: viewModel});
this.change$.pipe(take(1)).subscribe(() => {
Expand All @@ -428,13 +436,14 @@ export class FormViewModelComponent implements OnInit, OnDestroy {
switchMap(updating => {
if (!updating) {
this.loading$.next(true);
return combineLatest([this.formName$, this.processDefinitionKey$, this.change$]).pipe(
return combineLatest([this.formName$, this.processDefinitionKey$, this.change$, this.documentId$]).pipe(
take(1),
switchMap(([formName, processDefinitionKey, change]) =>
switchMap(([formName, processDefinitionKey, change, documentId]) =>
this.viewModelService
.updateViewModelForStartForm(
formName,
processDefinitionKey,
documentId,
change.data,
this.formio.formio.page,
this._isWizard
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,14 @@ export class ViewModelService extends BaseApiService {

public getViewModelForStartForm(
formName: string,
processDefinitionKey: string
processDefinitionKey: string,
documentId: string = null,
): Observable<object> {
return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {
params: {
formName,
processDefinitionKey,
documentId,
},
headers: new HttpHeaders().set(InterceptorSkip, '400'),
});
Expand All @@ -88,13 +90,15 @@ export class ViewModelService extends BaseApiService {
public updateViewModelForStartForm(
formName: string,
processDefinitionKey: string,
documentId: string,
viewModel: object,
page: number,
isWizard: boolean
): Observable<object> {
const params = {
formName,
processDefinitionKey,
documentId,
isWizard,
...(!isNaN(page) && {page}),
};
Expand All @@ -107,6 +111,7 @@ export class ViewModelService extends BaseApiService {
public submitViewModelForStartForm(
formName: string,
processDefinitionKey: string,
documentId: string,
documentDefinitionName: string,
viewModel: object
): Observable<object> {
Expand All @@ -117,6 +122,7 @@ export class ViewModelService extends BaseApiService {
params: {
formName,
processDefinitionKey,
documentId,
documentDefinitionName,
},
headers: new HttpHeaders().set(InterceptorSkip, '400'),
Expand Down

0 comments on commit 9443d77

Please sign in to comment.