From 6ff414ffcde034c30282b5fb9d124b5bd7995241 Mon Sep 17 00:00:00 2001 From: yuri Date: Tue, 23 Aug 2016 15:25:53 +0300 Subject: [PATCH] fix users teams field --- .../views/fields/link-multiple-with-role.js | 33 +++++++++++-------- client/src/views/user/fields/teams.js | 14 ++++++-- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/client/src/views/fields/link-multiple-with-role.js b/client/src/views/fields/link-multiple-with-role.js index 1a2ba20283..045fa78ac7 100644 --- a/client/src/views/fields/link-multiple-with-role.js +++ b/client/src/views/fields/link-multiple-with-role.js @@ -117,7 +117,7 @@ Espo.define('views/fields/link-multiple-with-role', 'views/fields/link-multiple' }, getJQSelect: function (id, roleValue) { - $role = $(''); this.roleList.forEach(function (role) { var selectedHtml = (role == roleValue) ? 'selected': ''; option = ''; @@ -155,7 +155,9 @@ Espo.define('views/fields/link-multiple-with-role', 'views/fields/link-multiple' 'width': '92%', 'display': 'inline-block' }); - $left.append($role); + if ($role) { + $left.append($role); + } $left.append(nameHtml); $el.append($left); @@ -171,19 +173,22 @@ Espo.define('views/fields/link-multiple-with-role', 'views/fields/link-multiple' $container.append($el); if (this.mode == 'edit') { - var fetch = function ($target) { - var value = $target.val().toString().trim(); - var id = $target.data('id'); - this.columns[id] = this.columns[id] || {}; - this.columns[id][this.columnName] = value; - }.bind(this); - $role.on('change', function (e) { - var $target = $(e.currentTarget); - fetch($target); - this.trigger('change'); - }.bind(this)); - fetch($role); + if ($role) { + var fetch = function ($target) { + if (!$target || !$target.size()) return; + var value = $target.val().toString().trim(); + var id = $target.data('id'); + this.columns[id] = this.columns[id] || {}; + this.columns[id][this.columnName] = value; + }.bind(this); + $role.on('change', function (e) { + var $target = $(e.currentTarget); + fetch($target); + this.trigger('change'); + }.bind(this)); + fetch($role); + } } return $el; }, diff --git a/client/src/views/user/fields/teams.js b/client/src/views/user/fields/teams.js index 43927b4a2a..4a3602f2ec 100644 --- a/client/src/views/user/fields/teams.js +++ b/client/src/views/user/fields/teams.js @@ -37,8 +37,8 @@ Espo.define('views/user/fields/teams', 'views/fields/link-multiple-with-role', f this.loadRoleList(function () { if (this.mode == 'edit') { - if (this.isRendered()) { - this.render(); + if (this.isRendered() || this.isBeingRendered()) { + this.reRender(); } } }, this); @@ -53,7 +53,7 @@ Espo.define('views/user/fields/teams', 'views/fields/link-multiple-with-role', f }, this); if (toLoad) { this.loadRoleList(function () { - this.render(); + this.reRender(); }, this); } }, this); @@ -99,7 +99,15 @@ Espo.define('views/user/fields/teams', 'views/fields/link-multiple-with-role', f }, getJQSelect: function (id, roleValue) { + + var roleList = Espo.Utils.clone((this.roleListMap[id] || [])); + + if (!roleList.length) { + return; + }; + + if (roleList.length || roleValue) { $role = $('