From bb4a93418ebef802c10dcf764b9cc998ecb0b25d Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 9 Nov 2023 15:39:04 +0200 Subject: [PATCH] link create button changes --- .../Resources/metadata/fields/linkOne.json | 4 ++++ client/res/templates/fields/link/edit.tpl | 2 +- client/src/views/fields/link.js | 19 ++++++++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/application/Espo/Resources/metadata/fields/linkOne.json b/application/Espo/Resources/metadata/fields/linkOne.json index df6cafce3b..9bcdc7ca27 100644 --- a/application/Espo/Resources/metadata/fields/linkOne.json +++ b/application/Espo/Resources/metadata/fields/linkOne.json @@ -16,6 +16,10 @@ { "name": "readOnlyAfterCreate", "type": "bool" + }, + { + "name": "createButton", + "type": "bool" } ], "actualFields": [ diff --git a/client/res/templates/fields/link/edit.tpl b/client/res/templates/fields/link/edit.tpl index 8f8ea445af..05e923639f 100644 --- a/client/res/templates/fields/link/edit.tpl +++ b/client/res/templates/fields/link/edit.tpl @@ -12,7 +12,7 @@ {{#if createButton}} diff --git a/client/src/views/fields/link.js b/client/src/views/fields/link.js index 294a93f505..34955dca7f 100644 --- a/client/src/views/fields/link.js +++ b/client/src/views/fields/link.js @@ -376,6 +376,8 @@ class LinkFieldView extends BaseFieldView { this.trigger('change'); + this.controlCreateButtonVisibility(); + this.getSelectFieldHandler().then(handler => { handler.getAttributes(model) .then(attributes => { @@ -393,14 +395,29 @@ class LinkFieldView extends BaseFieldView { this.trigger('change'); + this.controlCreateButtonVisibility(); + this.getSelectFieldHandler().then(handler => { handler.getClearAttributes() .then(attributes => { - this.model.set(attributes) + this.model.set(attributes); }); }); } + /** @private */ + controlCreateButtonVisibility() { + if (!this.createButton) { + return; + } + + const $btn = this.$el.find('[data-action="createLink"]'); + + this.model.get(this.idName) ? + $btn.addClass('hidden') : + $btn.removeClass('hidden'); + } + /** * @private * @return {Promise<{