afterOrEqual datetime

This commit is contained in:
Yuri Kuznetsov
2024-08-15 20:32:24 +03:00
parent 13ec8dd49f
commit e7c3314285
5 changed files with 10 additions and 63 deletions
@@ -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",
@@ -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"
@@ -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 <https://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 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;
}
}
+1
View File
@@ -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.
*/
/**
+2 -1
View File
@@ -424,7 +424,8 @@
"properties": {
"type": {
"anyOf": [
{"const": "date"}
{"const": "date"},
{"const": "datetime"}
]
}
}