From 9cffbbf92ee388f6d9760ad9c6e49631188f5871 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Mon, 13 Dec 2021 07:18:54 -0700 Subject: [PATCH] Switch MR Widgets to use a structured data output for summaries --- .../components/extensions/base.vue | 22 ++++++++++++++++++- .../extensions/browser_performance/index.js | 8 +++---- .../extensions/load_performance/index.js | 8 +++---- .../extensions/status_checks/index.js | 11 ++++------ 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue b/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue index f5159f22973367..549cf64fb08f5a 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue @@ -94,6 +94,20 @@ export default { tertiaryActionsButtons() { return this.tertiaryButtons ? this.tertiaryButtons() : undefined; }, + hydratedSummary() { + const structuredOutput = this.summary(this.collapsedData); + const summary = { + subject: generateText( + typeof structuredOutput === 'string' ? structuredOutput : structuredOutput.subject, + ), + }; + + if (structuredOutput.meta) { + summary.meta = generateText(structuredOutput.meta); + } + + return summary; + }, }, watch: { isCollapsed(newVal) { @@ -182,7 +196,13 @@ export default {
-
+
+ + +
- ${reportNumbersText} - `; + return { + subject: text, + meta: reportNumbersText, + }; }, statusIcon() { if (this.collapsedData.degraded.length || this.collapsedData.same.length) { diff --git a/ee/app/assets/javascripts/vue_merge_request_widget/extensions/load_performance/index.js b/ee/app/assets/javascripts/vue_merge_request_widget/extensions/load_performance/index.js index 7c9053d5416374..d50f4cf4273ce5 100644 --- a/ee/app/assets/javascripts/vue_merge_request_widget/extensions/load_performance/index.js +++ b/ee/app/assets/javascripts/vue_merge_request_widget/extensions/load_performance/index.js @@ -35,10 +35,10 @@ export default { }, ); - return `${text} -
- ${reportNumbersText} - `; + return { + subject: text, + meta: reportNumbersText, + }; }, statusIcon() { if (this.collapsedData.degraded.length || this.collapsedData.same.length) { diff --git a/ee/app/assets/javascripts/vue_merge_request_widget/extensions/status_checks/index.js b/ee/app/assets/javascripts/vue_merge_request_widget/extensions/status_checks/index.js index d9648be272145d..2b167736874f99 100644 --- a/ee/app/assets/javascripts/vue_merge_request_widget/extensions/status_checks/index.js +++ b/ee/app/assets/javascripts/vue_merge_request_widget/extensions/status_checks/index.js @@ -46,13 +46,10 @@ export default { ); } - return ` - ${s__('StatusCheck|Status checks')} -
- - ${reports.join(__(', and '))} - - `; + return { + subject: s__('StatusCheck|Status checks'), + meta: reports.join(__(', and ')), + }; }, statusIcon({ pending = [], failed = [] }) { if (failed.length > 0) { -- GitLab