From e2df819e576b35eeaf189f0aaaa8040c0619081e Mon Sep 17 00:00:00 2001 From: yuri Date: Fri, 11 Oct 2019 11:17:21 +0300 Subject: [PATCH] call allow 0 duration --- .../Resources/metadata/entityDefs/Call.json | 1 + .../crm/src/views/call/fields/date-end.js | 50 +++++++++++++++++++ client/src/views/fields/duration.js | 7 +-- 3 files changed, 55 insertions(+), 3 deletions(-) create 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 bf51b6d764..cee70028af 100644 --- a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Call.json +++ b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Call.json @@ -23,6 +23,7 @@ "dateEnd": { "type": "datetime", "required": true, + "view": "crm:views/call/fields/date-end", "after": "dateStart" }, "duration": { diff --git a/client/modules/crm/src/views/call/fields/date-end.js b/client/modules/crm/src/views/call/fields/date-end.js new file mode 100644 index 0000000000..3818b46348 --- /dev/null +++ b/client/modules/crm/src/views/call/fields/date-end.js @@ -0,0 +1,50 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2019 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * 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 General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('crm:views/call/fields/date-end', 'views/fields/datetime', function (Dep) { + + return Dep.extend({ + + validateAfter: function () { + var field = this.model.getFieldParam(this.name, 'after'); + if (field) { + var value = this.model.get(this.name); + var otherValue = this.model.get(field); + if (value && otherValue) { + if (moment(value).unix() < moment(otherValue).unix()) { + var msg = this.translate('fieldShouldAfter', 'messages').replace('{field}', this.getLabelText()) + .replace('{otherField}', this.translate(field, 'fields', this.model.name)); + + this.showValidationMessage(msg); + return true; + } + } + } + }, + }); +}); diff --git a/client/src/views/fields/duration.js b/client/src/views/fields/duration.js index 3657d090d2..9de277edce 100644 --- a/client/src/views/fields/duration.js +++ b/client/src/views/fields/duration.js @@ -25,7 +25,8 @@ * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -Espo.define('views/fields/duration', 'views/fields/enum', function (Dep) { + +define('views/fields/duration', 'views/fields/enum', function (Dep) { return Dep.extend({ @@ -111,7 +112,7 @@ Espo.define('views/fields/duration', 'views/fields/enum', function (Dep) { stringifyDuration: function (seconds) { if (!seconds) { - return ''; + return '0'; } var d = seconds; var days = Math.floor(d / (86400)); @@ -242,7 +243,7 @@ Espo.define('views/fields/duration', 'views/fields/enum', function (Dep) { updateDuration: function () { var seconds = this.seconds; - if (seconds <= 0) { + if (seconds < 0) { if (this.mode == 'edit') { this.$duration.val(''); } else {