Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend
This commit is contained in:
@@ -316,6 +316,57 @@ class Base
|
||||
case 'future':
|
||||
$part[$item['field'] . '>'] = date('Y-m-d');
|
||||
break;
|
||||
case 'currentMonth':
|
||||
$dt = new \DateTime();
|
||||
$part['AND'] = array(
|
||||
$item['field'] . '>=' => $dt->modify('first day of this month')->format('Y-m-d'),
|
||||
$item['field'] . '<' => $dt->add(new \DateInterval('P1M'))->format('Y-m-d'),
|
||||
);
|
||||
break;
|
||||
case 'lastMonth':
|
||||
$dt = new \DateTime();
|
||||
$part['AND'] = array(
|
||||
$item['field'] . '>=' => $dt->modify('first day of last month')->format('Y-m-d'),
|
||||
$item['field'] . '<' => $dt->add(new \DateInterval('P1M'))->format('Y-m-d'),
|
||||
);
|
||||
break;
|
||||
case 'currentQuarter':
|
||||
$dt = new \DateTime();
|
||||
$quarter = ceil($dt->format('m') / 3);
|
||||
$dt->modify('first day of January this year');
|
||||
$part['AND'] = array(
|
||||
$item['field'] . '>=' => $dt->add(new \DateInterval('P'.(($quarter - 1) * 3).'M'))->format('Y-m-d'),
|
||||
$item['field'] . '<' => $dt->add(new \DateInterval('P3M'))->format('Y-m-d'),
|
||||
);
|
||||
break;
|
||||
case 'lastQuarter':
|
||||
$dt = new \DateTime();
|
||||
$quarter = ceil($dt->format('m') / 3);
|
||||
$dt->modify('first day of January this year');
|
||||
$quarter--;
|
||||
if ($quarter == 0) {
|
||||
$quarter = 4;
|
||||
$dt->sub('P1Y');
|
||||
}
|
||||
$part['AND'] = array(
|
||||
$item['field'] . '>=' => $dt->add(new \DateInterval('P'.(($quarter - 1) * 3).'M'))->format('Y-m-d'),
|
||||
$item['field'] . '<' => $dt->add(new \DateInterval('P3M'))->format('Y-m-d'),
|
||||
);
|
||||
break;
|
||||
case 'currentYear':
|
||||
$dt = new \DateTime();
|
||||
$part['AND'] = array(
|
||||
$item['field'] . '>=' => $dt->modify('first day of January this year')->format('Y-m-d'),
|
||||
$item['field'] . '<' => $dt->add(new \DateInterval('P1Y'))->format('Y-m-d'),
|
||||
);
|
||||
break;
|
||||
case 'lastYear':
|
||||
$dt = new \DateTime();
|
||||
$part['AND'] = array(
|
||||
$item['field'] . '>=' => $dt->modify('first day of January last year')->format('Y-m-d'),
|
||||
$item['field'] . '<' => $dt->add(new \DateInterval('P1Y'))->format('Y-m-d'),
|
||||
);
|
||||
break;
|
||||
case 'between':
|
||||
if (is_array($item['value'])) {
|
||||
$part['AND'] = array(
|
||||
|
||||
@@ -289,7 +289,13 @@
|
||||
"between": "Between",
|
||||
"today": "Today",
|
||||
"past": "Past",
|
||||
"future": "Future"
|
||||
"future": "Future",
|
||||
"currentMonth": "Current Month",
|
||||
"lastMonth": "Last Month",
|
||||
"currentQuarter": "Current Quarter",
|
||||
"lastQuarter": "Last Quarter",
|
||||
"currentYear": "Current Year",
|
||||
"lastYear": "Last Year"
|
||||
},
|
||||
"intSearchRanges": {
|
||||
"equals": "Equals",
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
var where = {
|
||||
field: field
|
||||
};
|
||||
if (!value && !~['today', 'past', 'future'].indexOf(type)) {
|
||||
if (!value && ~['on', 'before', 'after'].indexOf(type)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -188,7 +188,9 @@
|
||||
var to = moment(value[1], this.dateTime.internalDateFormat, this.timeZone).utc().format(this.dateTime.internalDateTimeFormat);
|
||||
where.value = [from, to];
|
||||
}
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
where.type = type;
|
||||
}
|
||||
|
||||
return where;
|
||||
|
||||
@@ -31,7 +31,7 @@ Espo.define('Views.Fields.Date', 'Views.Fields.Base', function (Dep) {
|
||||
|
||||
validations: ['required', 'date', 'after', 'before'],
|
||||
|
||||
searchTypeOptions: ['on', 'notOn', 'after', 'before', 'between', 'today', 'past', 'future'],
|
||||
searchTypeOptions: ['today', 'past', 'future', 'currentMonth', 'lastMonth', 'currentQuarter', 'lastQuarter', 'currentYear', 'lastYear', 'on', 'after', 'before', 'between'],
|
||||
|
||||
setup: function () {
|
||||
Dep.prototype.setup.call(this);
|
||||
@@ -130,14 +130,14 @@ Espo.define('Views.Fields.Date', 'Views.Fields.Base', function (Dep) {
|
||||
},
|
||||
|
||||
handleSearchType: function (type) {
|
||||
if (~['today', 'past', 'future'].indexOf(type)) {
|
||||
this.$el.find('div.primary').addClass('hidden');
|
||||
if (~['on', 'notOn', 'after', 'before'].indexOf(type)) {
|
||||
this.$el.find('div.primary').removeClass('hidden');
|
||||
this.$el.find('div.additional').addClass('hidden');
|
||||
} else if (type == 'between') {
|
||||
this.$el.find('div.primary').removeClass('hidden');
|
||||
this.$el.find('div.additional').removeClass('hidden');
|
||||
} else {
|
||||
this.$el.find('div.primary').removeClass('hidden');
|
||||
this.$el.find('div.primary').addClass('hidden');
|
||||
this.$el.find('div.additional').addClass('hidden');
|
||||
}
|
||||
},
|
||||
@@ -176,11 +176,7 @@ Espo.define('Views.Fields.Date', 'Views.Fields.Base', function (Dep) {
|
||||
dateValue: value,
|
||||
dateValueTo: valueTo
|
||||
};
|
||||
} else if (~['today', 'past', 'future'].indexOf(type)) {
|
||||
data = {
|
||||
type: type
|
||||
};
|
||||
} else {
|
||||
} else if (~['on', 'notOn', 'after', 'before'].indexOf(type)) {
|
||||
if (!value) {
|
||||
return false;
|
||||
}
|
||||
@@ -189,6 +185,10 @@ Espo.define('Views.Fields.Date', 'Views.Fields.Base', function (Dep) {
|
||||
value: value,
|
||||
dateValue: value
|
||||
};
|
||||
} else {
|
||||
data = {
|
||||
type: type
|
||||
};
|
||||
}
|
||||
return data;
|
||||
},
|
||||
|
||||
@@ -29,7 +29,7 @@ Espo.define('Views.Fields.Datetime', 'Views.Fields.Date', function (Dep) {
|
||||
|
||||
validations: ['required', 'datetime', 'after', 'before'],
|
||||
|
||||
searchTypeOptions: ['on', 'after', 'before', 'between', 'today', 'past', 'future'],
|
||||
searchTypeOptions: ['today', 'past', 'future', 'currentMonth', 'lastMonth', 'currentQuarter', 'lastQuarter', 'currentYear', 'lastYear', 'on', 'after', 'before', 'between'],
|
||||
|
||||
timeFormatMap: {
|
||||
'HH:mm': 'H:i',
|
||||
|
||||
Reference in New Issue
Block a user