From d17257fc955e059fd2a4e667bab58e2120bae18d Mon Sep 17 00:00:00 2001 From: yuri Date: Wed, 20 May 2015 12:02:07 +0300 Subject: [PATCH] link fields filters fix --- .../client/src/views/fields/assigned-user.js | 11 +---------- .../client/src/views/fields/link-multiple.js | 17 ++++++++++++++--- frontend/client/src/views/fields/link-parent.js | 17 ++++++++++++++--- frontend/client/src/views/fields/link.js | 17 ++++++++++++++--- frontend/client/src/views/fields/teams.js | 13 +------------ .../client/src/views/modals/select-records.js | 8 ++++++-- 6 files changed, 50 insertions(+), 33 deletions(-) diff --git a/frontend/client/src/views/fields/assigned-user.js b/frontend/client/src/views/fields/assigned-user.js index 3b513af6d2..14350dc403 100644 --- a/frontend/client/src/views/fields/assigned-user.js +++ b/frontend/client/src/views/fields/assigned-user.js @@ -33,19 +33,10 @@ Espo.define('Views.Fields.AssignedUser', 'Views.Fields.UserWithAvatar', function getSelectBoolFilterList: function () { if (this.assignmentPermission == 'team') { - return {'onlyMyTeam': true}; + return ['onlyMyTeam']; } }, - getAutocompleteUrl: function () { - var url = Dep.prototype.getAutocompleteUrl.call(this); - if (this.assignmentPermission == 'team') { - url += '&where%5B0%5D%5Btype%5D=bool&where%5B0%5D%5Bvalue%5D%5B%5D=onlyMyTeam'; - } - - return url; - }, - }); }); diff --git a/frontend/client/src/views/fields/link-multiple.js b/frontend/client/src/views/fields/link-multiple.js index ab93c163d4..11a86f5580 100644 --- a/frontend/client/src/views/fields/link-multiple.js +++ b/frontend/client/src/views/fields/link-multiple.js @@ -62,7 +62,7 @@ Espo.define('Views.Fields.LinkMultiple', 'Views.Fields.Base', function (Dep) { getSelectBoolFilterList: function () {}, - getPrimaryFilterName: function () {}, + getSelectPrimaryFilterName: function () {}, setup: function () { this.nameHashName = this.name + 'Names'; @@ -94,7 +94,7 @@ Espo.define('Views.Fields.LinkMultiple', 'Views.Fields.Base', function (Dep) { createButton: this.mode != 'search', filters: this.getSelectFilters(), boolFilterList: this.getSelectBoolFilterList(), - primaryFilterName: this.getPrimaryFilterName(), + primaryFilterName: this.getSelectPrimaryFilterName(), multiple: true }, function (dialog) { dialog.render(); @@ -118,7 +118,18 @@ Espo.define('Views.Fields.LinkMultiple', 'Views.Fields.Base', function (Dep) { }, getAutocompleteUrl: function () { - return this.foreignScope + '?sortBy=name&maxCount=' + this.AUTOCOMPLETE_RESULT_MAX_COUNT; + var url = this.foreignScope + '?sortBy=name&maxCount=' + this.AUTOCOMPLETE_RESULT_MAX_COUNT; + var boolList = this.getSelectBoolFilterList(); + if (boolList) { + boolList.forEach(function(item) { + url += '&where%5B0%5D%5Btype%5D=bool&where%5B0%5D%5Bvalue%5D%5B%5D=' + item; + }, this); + } + var primary = this.getSelectPrimaryFilterName(); + if (primary) { + url += '&where%5B0%5D%5Btype%5D=primary&where%5B0%5D%5Bvalue%5D=' + primary; + } + return url; }, afterRender: function () { diff --git a/frontend/client/src/views/fields/link-parent.js b/frontend/client/src/views/fields/link-parent.js index f0796d710f..0098e3b715 100644 --- a/frontend/client/src/views/fields/link-parent.js +++ b/frontend/client/src/views/fields/link-parent.js @@ -60,7 +60,7 @@ Espo.define('Views.Fields.LinkParent', 'Views.Fields.Base', function (Dep) { getSelectBoolFilterList: function () {}, - getPrimaryFilterName: function () {}, + getSelectPrimaryFilterName: function () {}, setup: function () { this.nameName = this.name + 'Name'; @@ -90,7 +90,7 @@ Espo.define('Views.Fields.LinkParent', 'Views.Fields.Base', function (Dep) { createButton: this.mode != 'search', filters: this.getSelectFilters(), boolFilterList: this.getSelectBoolFilterList(), - primaryFilterName: this.getPrimaryFilterName(), + primaryFilterName: this.getSelectPrimaryFilterName(), }, function (dialog) { dialog.render(); Espo.Ui.notify(false); @@ -116,7 +116,18 @@ Espo.define('Views.Fields.LinkParent', 'Views.Fields.Base', function (Dep) { }, getAutocompleteUrl: function () { - return this.foreignScope + '?sortBy=name&maxCount=' + this.AUTOCOMPLETE_RESULT_MAX_COUNT; + var url = this.foreignScope + '?sortBy=name&maxCount=' + this.AUTOCOMPLETE_RESULT_MAX_COUNT; + var boolList = this.getSelectBoolFilterList(); + if (boolList) { + boolList.forEach(function(item) { + url += '&where%5B0%5D%5Btype%5D=bool&where%5B0%5D%5Bvalue%5D%5B%5D=' + item; + }, this); + } + var primary = this.getSelectPrimaryFilterName(); + if (primary) { + url += '&where%5B0%5D%5Btype%5D=primary&where%5B0%5D%5Bvalue%5D=' + primary; + } + return url; }, afterRender: function () { diff --git a/frontend/client/src/views/fields/link.js b/frontend/client/src/views/fields/link.js index 4353adf1c4..b1bf5ce7c4 100644 --- a/frontend/client/src/views/fields/link.js +++ b/frontend/client/src/views/fields/link.js @@ -59,7 +59,7 @@ Espo.define('Views.Fields.Link', 'Views.Fields.Base', function (Dep) { getSelectBoolFilterList: function () {}, - getPrimaryFilterName: function () {}, + getSelectPrimaryFilterName: function () {}, setup: function () { this.nameName = this.name + 'Name'; @@ -79,7 +79,7 @@ Espo.define('Views.Fields.Link', 'Views.Fields.Base', function (Dep) { createButton: this.mode != 'search', filters: this.getSelectFilters(), boolFilterList: this.getSelectBoolFilterList(), - primaryFilterName: this.getPrimaryFilterName() + primaryFilterName: this.getSelectPrimaryFilterName() }, function (view) { view.render(); this.notify(false); @@ -125,7 +125,18 @@ Espo.define('Views.Fields.Link', 'Views.Fields.Base', function (Dep) { }, getAutocompleteUrl: function () { - return this.foreignScope + '?sortBy=name&maxCount=' + this.AUTOCOMPLETE_RESULT_MAX_COUNT; + var url = this.foreignScope + '?sortBy=name&maxCount=' + this.AUTOCOMPLETE_RESULT_MAX_COUNT; + var boolList = this.getSelectBoolFilterList(); + if (boolList) { + boolList.forEach(function(item) { + url += '&where%5B0%5D%5Btype%5D=bool&where%5B0%5D%5Bvalue%5D%5B%5D=' + item; + }, this); + } + var primary = this.getSelectPrimaryFilterName(); + if (primary) { + url += '&where%5B0%5D%5Btype%5D=primary&where%5B0%5D%5Bvalue%5D=' + primary; + } + return url; }, afterRender: function () { diff --git a/frontend/client/src/views/fields/teams.js b/frontend/client/src/views/fields/teams.js index 1caca04eef..d2aa325a88 100644 --- a/frontend/client/src/views/fields/teams.js +++ b/frontend/client/src/views/fields/teams.js @@ -30,21 +30,10 @@ Espo.define('Views.Fields.Teams', 'Views.Fields.LinkMultiple', function (Dep) { getSelectBoolFilterList: function () { if (this.assignmentPermission == 'team' || this.assignmentPermission == 'no') { - return {'onlyMy': true}; + return ['onlyMy']; } }, - getAutocompleteUrl: function () { - var url = Dep.prototype.getAutocompleteUrl.call(this); - if (this.assignmentPermission == 'team' || this.assignmentPermission == 'no') { - url += '&where%5B0%5D%5Btype%5D=bool&where%5B0%5D%5Bvalue%5D%5B%5D=onlyMy'; - } - - return url; - }, - - - }); }); diff --git a/frontend/client/src/views/modals/select-records.js b/frontend/client/src/views/modals/select-records.js index 25c214fdfe..c6f95b6a77 100644 --- a/frontend/client/src/views/modals/select-records.js +++ b/frontend/client/src/views/modals/select-records.js @@ -50,7 +50,7 @@ Espo.define('Views.Modals.SelectRecords', 'Views.Modal', function (Dep) { setup: function () { this.filters = this.options.filters || {}; - this.boolFilterList = this.options.boolFilterList || {}; + this.boolFilterList = this.options.boolFilterList || []; this.primaryFilterName = this.options.primaryFilterName || null; if ('multiple' in this.options) { @@ -122,7 +122,11 @@ Espo.define('Views.Modals.SelectRecords', 'Views.Modal', function (Dep) { searchManager.setAdvanced(this.filters); } if (this.boolFilterList) { - searchManager.setBool(this.boolFilterList); + var d = {}; + this.boolFilterList.forEach(function (item) { + d[item] = true; + }); + searchManager.setBool(d); } if (this.primaryFilterName) { searchManager.setPrimary(this.primaryFilterName);