diff --git a/application/Espo/Core/Utils/EntityManager.php b/application/Espo/Core/Utils/EntityManager.php index 3eb3a791c0..66563e8765 100644 --- a/application/Espo/Core/Utils/EntityManager.php +++ b/application/Espo/Core/Utils/EntityManager.php @@ -343,6 +343,10 @@ class EntityManager ) ) ); + if ($entityForeign == $entity) { + $dataLeft['links'][$link]['midKeys'] = ['leftId', 'rightId']; + $dataRight['links'][$linkForeign]['midKeys'] = ['rightId', 'leftId']; + } break; } diff --git a/frontend/client/src/views/admin/link-manager/index.js b/frontend/client/src/views/admin/link-manager/index.js index da01e6e838..2b3b6dadec 100644 --- a/frontend/client/src/views/admin/link-manager/index.js +++ b/frontend/client/src/views/admin/link-manager/index.js @@ -167,7 +167,7 @@ Espo.define('Views.Admin.LinkManager.Index', 'View', function (Dep) { this.getMetadata().load(function () { this.setupLinkData(); this.render(); - }.bind(this)); + }.bind(this), true); }.bind(this)); }, diff --git a/frontend/client/src/views/admin/link-manager/modals/edit.js b/frontend/client/src/views/admin/link-manager/modals/edit.js index a43cd25f3b..1d95257bce 100644 --- a/frontend/client/src/views/admin/link-manager/modals/edit.js +++ b/frontend/client/src/views/admin/link-manager/modals/edit.js @@ -343,7 +343,7 @@ Espo.define('Views.Admin.LinkManager.Modals.Edit', ['Views.Modal', 'Views.Admin. this.getMetadata().load(function () { this.trigger('after:save'); this.close(); - }.bind(this)); + }.bind(this), true); }.bind(this)); }, diff --git a/frontend/client/src/views/email/modals/detail.js b/frontend/client/src/views/email/modals/detail.js index 48a25e6f1d..9b22bbbaad 100644 --- a/frontend/client/src/views/email/modals/detail.js +++ b/frontend/client/src/views/email/modals/detail.js @@ -31,11 +31,13 @@ Espo.define('Views.Email.Modals.Detail', ['Views.Modals.Detail', 'Views.Email.De 'label': 'Reply', 'style': 'danger' }); - this.listenToOnce(this.model, 'sync', function () { - setTimeout(function () { - this.model.set('isRead', true); - }.bind(this), 50); - }, this); + if (this.model) { + this.listenToOnce(this.model, 'sync', function () { + setTimeout(function () { + this.model.set('isRead', true); + }.bind(this), 50); + }, this); + } },