From d36701d102e7d9dacbc45eff1ed352a9c1530e3c Mon Sep 17 00:00:00 2001 From: Erik Tiekstra Date: Tue, 30 Nov 2021 08:55:53 +0100 Subject: [PATCH] fix(forms): Preventing double submit when double-clicking submit buttons. (TV-908) Merge in TEA/mina-sidor-fa-web from bugfix/TV-908-prevent-double-submit to develop Squashed commit of the following: commit b9f0b803a97b104647c835e9244d845b4a6fb41a Merge: 44fd4ff8 af4f6cbe Author: Erik Tiekstra Date: Tue Nov 30 08:53:56 2021 +0100 Merged develop and fixed conflicts commit 44fd4ff8f3c58361b991142fad9c64bf6e13f329 Author: Erik Tiekstra Date: Mon Nov 29 11:51:35 2021 +0100 Added custom selector to directive commit 9c4a82556be3d78183cfa4a13413708876519643 Author: Erik Tiekstra Date: Mon Nov 29 10:43:45 2021 +0100 Added directive to prevent double submit --- apps/mina-sidor-fa/src/app/app.module.ts | 2 +- .../edit-employee-form.component.html | 2 +- .../pages/employee-form/employee-form.module.ts | 8 +++++--- .../employee-invite.component.html | 2 +- .../employee-invite/employee-invite.module.ts | 2 ++ .../avvikelse-report-form.component.html | 2 +- .../avvikelse-report-form.module.ts | 4 +++- .../franvaro-report-form.component.html | 2 +- .../franvaro-report-form.module.ts | 6 ++++-- .../gemensam-planering-form.component.html | 2 +- .../gemensam-planering-form.module.ts | 2 ++ .../informativ-rapport-form.component.html | 2 +- .../informativ-rapport-form.module.ts | 8 +++++--- .../periodisk-redovisning-form.component.html | 2 +- .../periodisk-redovisning-form.module.ts | 2 ++ .../signal-form/signal-form.component.html | 2 +- .../signal-form/signal-form.module.ts | 4 +++- .../slutredovisning-form-step0.component.html | 2 +- .../slutredovisning-form-step1.component.html | 2 +- .../slutredovisning-form-step2.component.html | 2 +- .../slutredovisning-form.module.ts | 4 +++- .../deltagare-export.component.html | 2 +- .../deltagare-export/deltagare-export.module.ts | 2 ++ .../handledare-picker-form.component.html | 2 +- .../handledare-picker-form.module.ts | 4 +++- .../organization-picker-form.component.html | 4 +++- .../organization-picker-form.module.ts | 5 +++-- .../prevent-double-submit.directive.ts | 16 ++++++++++++++++ .../directives/prevent-double-submit.module.ts | 8 ++++++++ 29 files changed, 78 insertions(+), 29 deletions(-) create mode 100644 apps/mina-sidor-fa/src/app/shared/directives/prevent-double-submit.directive.ts create mode 100644 apps/mina-sidor-fa/src/app/shared/directives/prevent-double-submit.module.ts diff --git a/apps/mina-sidor-fa/src/app/app.module.ts b/apps/mina-sidor-fa/src/app/app.module.ts index 249b4e2..bfc2062 100644 --- a/apps/mina-sidor-fa/src/app/app.module.ts +++ b/apps/mina-sidor-fa/src/app/app.module.ts @@ -17,10 +17,10 @@ import { AvropModule } from './pages/avrop/avrop.module'; registerLocaleData(localeSe); const providers: Provider[] = [ ApmErrorHandler, - { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, { provide: LOCALE_ID, useValue: 'sv-SE' }, ]; + // Skip error handler in Dev until "Uncaught Error: ApplicationRef.tick is called recursively" is fixed if (environment.production) { providers.push({ diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html index 1f0124d..b619519 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html @@ -123,7 +123,7 @@ Avbryt redigering av personalkontot. - Spara ändringar + Spara ändringar diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts index 0e3d73c..54d2174 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts @@ -3,25 +3,26 @@ import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog'; import { DigiNgFormCheckboxModule } from '@af/digi-ng/_form/form-checkbox'; import { DigiNgFormDatepickerModule } from '@af/digi-ng/_form/form-datepicker'; import { DigiNgFormRadiobuttonGroupModule } from '@af/digi-ng/_form/form-radiobutton-group'; -import { DigiNgPopoverModule } from '@af/digi-ng/_popover/popover'; import { DigiNgLoaderSpinnerModule } from '@af/digi-ng/_loader/loader-spinner'; +import { DigiNgPopoverModule } from '@af/digi-ng/_popover/popover'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; +import { PreventDoubleSubmitModule } from '@msfa-directives/prevent-double-submit.module'; import { ErrorListModule } from '@msfa-shared/components/error-list/error-list.module'; import { HideTextModule } from '@msfa-shared/components/hide-text/hide-text.module'; import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; import { RolesDialogModule } from '@msfa-shared/components/roles-dialog/roles-dialog.module'; import { TreeNodesSelectorModule } from '@msfa-shared/components/tree-nodes-selector/tree-nodes-selector.module'; import { LocalDatePipeModule } from '@msfa-shared/pipes/local-date/local-date.module'; +import { UiInputModule } from '@ui/input/input.module'; import { UiLinkButtonModule } from '@ui/link-button/link-button.module'; +import { UiSelectModule } from '@ui/select/select.module'; import { UiSkeletonModule } from '@ui/skeleton/skeleton.module'; import { EmployeeDeleteModule } from '../../components/employee-delete/employee-delete.module'; import { EditEmployeeFormComponent } from './edit-employee-form/edit-employee-form.component'; import { EmployeeFormComponent } from './employee-form.component'; -import { UiSelectModule } from '@ui/select/select.module'; -import { UiInputModule } from '@ui/input/input.module'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], @@ -48,6 +49,7 @@ import { UiInputModule } from '@ui/input/input.module'; RolesDialogModule, UiLinkButtonModule, UiInputModule, + PreventDoubleSubmitModule, ], }) export class EmployeeFormModule {} diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html index eeb379d..6ed865b 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html @@ -74,7 +74,7 @@