This commit is contained in:
Yuri Kuznetsov
2023-07-13 17:20:02 +03:00
parent 347c8bcef7
commit d20c0d452b
3 changed files with 153 additions and 127 deletions
@@ -93,136 +93,147 @@
"where": {
"=": {
"whereClause": {
"OR": {
"contactsMiddle.status": "{value}",
"leadsMiddle.status": "{value}",
"usersMiddle.status": "{value}"
}
},
"leftJoins": ["users", "contacts", "leads"],
"distinct": true
"OR": [
{
"id=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
}
]
}
},
"<>": {
"whereClause": [
{
"id!=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
"whereClause": {
"AND": [
{
"id!=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
}
},
{
"id!=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
}
]
]
}
},
"IN": {
"leftJoins": ["users", "leads", "contacts"],
"whereClause": {
"OR": {
"contactsMiddle.status": "{value}",
"leadsMiddle.status": "{value}",
"usersMiddle.status": "{value}"
}
},
"distinct": true
"OR": [
{
"id=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
}
]
}
},
"NOT IN": {
"whereClause": [
{
"id!=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
}
]
},
"IS NULL": {
"leftJoins": ["users", "contacts", "leads"],
"whereClause": {
"contactsMiddle.status": null,
"leadsMiddle.status": null,
"usersMiddle.status": null
},
"distinct": true
},
"IS NOT NULL": {
"whereClause": [
{
"id!=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": null
"AND": [
{
"id!=s": {
"from": "ContactMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
},
{
"id!=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": "{value}"
}
}
}
},
{
"id!=s": {
"from": "LeadMeeting",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": null
}
}
},
{
"id!=s": {
"from": "MeetingUser",
"select": ["meetingId"],
"whereClause": {
"deleted": false,
"status": null
}
}
}
]
]
}
}
},
"view": "crm:views/meeting/fields/acceptance-status"
@@ -26,10 +26,24 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
define('crm:views/meeting/fields/acceptance-status', ['views/fields/enum'], function (Dep) {
import EnumFieldView from 'views/fields/enum';
return Dep.extend({
export default class extends EnumFieldView {
searchTypeList: ['anyOf', 'noneOf'],
});
});
searchTypeList = ['anyOf', 'noneOf']
fetchSearch() {
let data = super.fetchSearch();
if (
data &&
data.data.type === 'noneOf' &&
data.value &&
data.value.length > 1
) {
data.value = [data.value[0]];
}
return data;
}
}
+5 -4
View File
@@ -445,15 +445,16 @@ class EnumFieldView extends BaseFieldView {
return {
type: 'or',
value: [
{
type: 'isNull',
attribute: this.name,
},
// Don't change order.
{
type: 'notIn',
value: list,
attribute: this.name,
},
{
type: 'isNull',
attribute: this.name,
},
],
data: {
type: 'noneOf',