From f04c73d495dfce6e93d33ceb0964f1ee6aeb51a5 Mon Sep 17 00:00:00 2001 From: Leon Klingele Date: Tue, 29 Nov 2022 12:00:55 +0100 Subject: [PATCH] fix(calendar(js)): prevent duplicate event creation in case of an event conflict In case of an calendar event conflict the form submit button was not disabled after use, allowing it to be clicked again. This could have resulted in a double creation of the submit event. --- .../SchedulerUI/UIxAppointmentEditorTemplate.wox | 11 ++++++----- .../js/Scheduler/ComponentController.js | 12 ++++++++++-- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox index 4399748c1..911ff6c87 100644 --- a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox @@ -7,7 +7,7 @@ -
+
event @@ -333,6 +333,7 @@ @@ -374,9 +375,9 @@ ng-click="editor.edit(eventForm)"> - + ng-disabled="eventForm.$invalid || eventForm.$submitted"> @@ -409,10 +410,10 @@ ng-click="editor.edit(eventForm)"> - + ng-disabled="eventForm.$invalid || eventForm.$submitted"> diff --git a/UI/WebServerResources/js/Scheduler/ComponentController.js b/UI/WebServerResources/js/Scheduler/ComponentController.js index 89b7f7354..ab0050793 100644 --- a/UI/WebServerResources/js/Scheduler/ComponentController.js +++ b/UI/WebServerResources/js/Scheduler/ComponentController.js @@ -547,10 +547,13 @@ $mdDialog.cancel = vm.originalModalCancel; $mdDialog.hide(); }, function(response) { - if (response.status == CalendarSettings.ConflictHTTPErrorCode) + vm.allowResubmit(form); + + if (response.status == CalendarSettings.ConflictHTTPErrorCode) { vm.attendeeConflictError = _.isObject(response.data.message) ? response.data.message : { reject: response.data.message }; - else + } else { vm.edit(form); + } }); } }); @@ -584,6 +587,11 @@ form.$setDirty(); }; + this.allowResubmit = function (form) { + form.$setPristine(); + form.$setDirty(); + }; + function getHours() { var hours = []; for (var i = 0; i <= 23; i++) {