From b5ee03b142bd4b7b2a179f0e093d69679ed7c30f Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 12 May 2022 14:33:08 +0300 Subject: [PATCH] fix all-day event duration --- client/modules/crm/src/views/meeting/fields/date-end.js | 2 ++ client/modules/crm/src/views/task/fields/date-end.js | 2 ++ client/src/views/fields/datetime-optional.js | 6 ++++-- client/src/views/fields/duration.js | 5 ++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/client/modules/crm/src/views/meeting/fields/date-end.js b/client/modules/crm/src/views/meeting/fields/date-end.js index 6a9e1dd327..dae266b8ca 100644 --- a/client/modules/crm/src/views/meeting/fields/date-end.js +++ b/client/modules/crm/src/views/meeting/fields/date-end.js @@ -36,6 +36,8 @@ define('crm:views/meeting/fields/date-end', 'views/fields/datetime-optional', fu noneOptionIsHidden: true, + isEnd: true, + setup: function () { Dep.prototype.setup.call(this); diff --git a/client/modules/crm/src/views/task/fields/date-end.js b/client/modules/crm/src/views/task/fields/date-end.js index 0ed5213fab..e55440fb28 100644 --- a/client/modules/crm/src/views/task/fields/date-end.js +++ b/client/modules/crm/src/views/task/fields/date-end.js @@ -34,6 +34,8 @@ Espo.define('crm:views/task/fields/date-end', 'views/fields/datetime-optional', listTemplate: 'crm:task/fields/date-end/detail', + isEnd: true, + data: function () { var data = Dep.prototype.data.call(this); diff --git a/client/src/views/fields/datetime-optional.js b/client/src/views/fields/datetime-optional.js index f1430aee59..0c64242822 100644 --- a/client/src/views/fields/datetime-optional.js +++ b/client/src/views/fields/datetime-optional.js @@ -120,8 +120,10 @@ define('views/fields/datetime-optional', 'views/fields/datetime', function (Dep) var dateTimeValue = data[this.nameDate] + ' 00:00:00'; - dateTimeValue = moment.utc(dateTimeValue) - .tz(this.getConfig().get('timeZone') || 'UTC') + dateTimeValue = moment + .tz(dateTimeValue, this.getConfig().get('timeZone') || 'UTC') + .add(this.isEnd ? 1 : 0, 'days') + .utc() .format(this.getDateTime().internalDateTimeFullFormat); data[this.name] = dateTimeValue; diff --git a/client/src/views/fields/duration.js b/client/src/views/fields/duration.js index afb78337ba..c4913ea19a 100644 --- a/client/src/views/fields/duration.js +++ b/client/src/views/fields/duration.js @@ -237,7 +237,10 @@ define('views/fields/duration', 'views/fields/enum', function (Dep) { if (seconds) { endUnix = moment.utc(start).unix() + seconds; - end = moment.unix(endUnix).utc().format(this.getDateTime().internalDateFormat); + end = moment.unix(endUnix) + .utc() + .add(-1, 'day') + .format(this.getDateTime().internalDateFormat); } else { end = start;