diff --git a/client/src/views/admin/authentication.js b/client/src/views/admin/authentication.js index 31fffdc80e..bd43b39cf3 100644 --- a/client/src/views/admin/authentication.js +++ b/client/src/views/admin/authentication.js @@ -68,6 +68,8 @@ class AdminAuthenticationRecordView extends SettingsEditRecordView { panels: {}, } + hasModifyDetailLayout = true + setup() { this.methodList = []; diff --git a/client/src/views/authentication-provider/record/detail.js b/client/src/views/authentication-provider/record/detail.js index 3f1a7bce29..82c74f60c5 100644 --- a/client/src/views/authentication-provider/record/detail.js +++ b/client/src/views/authentication-provider/record/detail.js @@ -39,6 +39,8 @@ export default class extends DetailRecordView { */ helper + hasModifyDetailLayout = true + setup() { this.helper = new Helper(this); diff --git a/client/src/views/authentication-provider/record/edit.js b/client/src/views/authentication-provider/record/edit.js index 22f9ae3066..d088c3328a 100644 --- a/client/src/views/authentication-provider/record/edit.js +++ b/client/src/views/authentication-provider/record/edit.js @@ -39,6 +39,8 @@ export default class extends EditRecordView { */ helper + hasModifyDetailLayout = true; + setup() { this.helper = new Helper(this); diff --git a/client/src/views/email-account/record/detail.js b/client/src/views/email-account/record/detail.js index 980285eae1..1835bf02a6 100644 --- a/client/src/views/email-account/record/detail.js +++ b/client/src/views/email-account/record/detail.js @@ -30,6 +30,8 @@ import DetailRecordView from 'views/record/detail'; export default class extends DetailRecordView { + hasModifyDetailLayout = true + setup() { super.setup(); diff --git a/client/src/views/email-account/record/edit.js b/client/src/views/email-account/record/edit.js index d384213bfb..8568bcf65d 100644 --- a/client/src/views/email-account/record/edit.js +++ b/client/src/views/email-account/record/edit.js @@ -31,6 +31,8 @@ import Detail from 'views/email-account/record/detail'; export default class extends EditRecordView { + hasModifyDetailLayout = true + setup() { super.setup(); diff --git a/client/src/views/inbound-email/record/detail.js b/client/src/views/inbound-email/record/detail.js index 200b89ce20..83e7d9c5d9 100644 --- a/client/src/views/inbound-email/record/detail.js +++ b/client/src/views/inbound-email/record/detail.js @@ -30,6 +30,8 @@ import DetailRecordView from 'views/record/detail'; export default class extends DetailRecordView { + hasModifyDetailLayout = true + setup() { super.setup(); diff --git a/client/src/views/inbound-email/record/edit.js b/client/src/views/inbound-email/record/edit.js index ab68c41812..0a2157edb2 100644 --- a/client/src/views/inbound-email/record/edit.js +++ b/client/src/views/inbound-email/record/edit.js @@ -31,6 +31,8 @@ import Detail from 'views/inbound-email/record/detail'; export default class extends EditRecordView { + hasModifyDetailLayout = true + setup() { super.setup(); diff --git a/client/src/views/record/detail.ts b/client/src/views/record/detail.ts index a3a2d13c6b..31dc006015 100644 --- a/client/src/views/record/detail.ts +++ b/client/src/views/record/detail.ts @@ -691,15 +691,18 @@ class DetailRecordView void) | undefined = undefined - private recordUpdateWebSocketTopic: string private isSubscribedToWebSocket: boolean = false private updateWebSocketIsBlocked: boolean = false - private _hasMiddleTabs: boolean; + private _hasMiddleTabs: boolean + + /** + * @internal + */ + protected hasModifyDetailLayout: boolean = false /** * A shortcut-key => action map. @@ -3000,7 +3003,7 @@ class DetailRecordView { - if (typeof this.modifyDetailLayout === 'function') { + if (this.hasModifyDetailLayout) { detailLayout = Utils.cloneDeep(detailLayout); this.modifyDetailLayout(detailLayout); @@ -3836,6 +3839,14 @@ class DetailRecordView