From e7c3314285cf7b560c48bb0d09fef1672db3c5d8 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 15 Aug 2024 20:32:24 +0300 Subject: [PATCH] afterOrEqual datetime --- .../Resources/metadata/entityDefs/Call.json | 4 +- .../Resources/metadata/fields/datetime.json | 5 ++ .../crm/src/views/call/fields/date-end.js | 60 ------------------- client/src/views/fields/datetime.js | 1 + schema/metadata/entityDefs.json | 3 +- 5 files changed, 10 insertions(+), 63 deletions(-) delete mode 100644 client/modules/crm/src/views/call/fields/date-end.js diff --git a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Call.json b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Call.json index 227f7c42d1..c1a63d8f78 100644 --- a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Call.json +++ b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Call.json @@ -26,8 +26,8 @@ "dateEnd": { "type": "datetime", "required": true, - "view": "crm:views/call/fields/date-end", - "after": "dateStart" + "after": "dateStart", + "afterOrEqual": true }, "duration": { "type": "duration", diff --git a/application/Espo/Resources/metadata/fields/datetime.json b/application/Espo/Resources/metadata/fields/datetime.json index 74afb08cb9..ab96386cf0 100644 --- a/application/Espo/Resources/metadata/fields/datetime.json +++ b/application/Espo/Resources/metadata/fields/datetime.json @@ -47,6 +47,11 @@ "type": "varchar", "view": "views/admin/field-manager/fields/date/after-before" }, + { + "type": "bool", + "name": "afterOrEqual", + "hidden": true + }, { "type": "bool", "name": "useNumericFormat" diff --git a/client/modules/crm/src/views/call/fields/date-end.js b/client/modules/crm/src/views/call/fields/date-end.js deleted file mode 100644 index e2b58e5014..0000000000 --- a/client/modules/crm/src/views/call/fields/date-end.js +++ /dev/null @@ -1,60 +0,0 @@ -/************************************************************************ - * This file is part of EspoCRM. - * - * EspoCRM – Open Source CRM application. - * Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko - * Website: https://www.espocrm.com - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - * The interactive user interfaces in modified source and object code versions - * of this program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU Affero General Public License version 3. - * - * In accordance with Section 7(b) of the GNU Affero General Public License version 3, - * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. - ************************************************************************/ - -import DatetimeFieldView from 'views/fields/datetime'; -import moment from 'moment'; - -export default class extends DatetimeFieldView { - - validateAfter() { - const field = this.params.after; - - if (!field) { - return false; - } - - const value = this.model.get(this.name); - const otherValue = this.model.get(field); - - if (!(value && otherValue)) { - return false; - } - - if (moment(value).unix() <= moment(otherValue).unix()) { - const msg = this.translate('fieldShouldAfter', 'messages') - .replace('{field}', this.getLabelText()) - .replace('{otherField}', this.translate(field, 'fields', this.entityType)); - - this.showValidationMessage(msg); - - return true; - } - - return false; - } -} diff --git a/client/src/views/fields/datetime.js b/client/src/views/fields/datetime.js index dc8f8bb482..93627f8f5f 100644 --- a/client/src/views/fields/datetime.js +++ b/client/src/views/fields/datetime.js @@ -55,6 +55,7 @@ class DatetimeFieldView extends DateFieldView { * @property {number} [minuteStep] A minute step. * @property {string} [after] Validate to be after another date field. * @property {string} [before] Validate to be before another date field. + * @property {boolean} [afterOrEqual] Allow an equal date for 'after' validation. */ /** diff --git a/schema/metadata/entityDefs.json b/schema/metadata/entityDefs.json index e17b819918..8f5b0d9fe4 100644 --- a/schema/metadata/entityDefs.json +++ b/schema/metadata/entityDefs.json @@ -424,7 +424,8 @@ "properties": { "type": { "anyOf": [ - {"const": "date"} + {"const": "date"}, + {"const": "datetime"} ] } }