summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/BMO/web/js/new-bug-frequent-comp.js22
1 files changed, 17 insertions, 5 deletions
diff --git a/extensions/BMO/web/js/new-bug-frequent-comp.js b/extensions/BMO/web/js/new-bug-frequent-comp.js
index 4ca1fcf89..88879738d 100644
--- a/extensions/BMO/web/js/new-bug-frequent-comp.js
+++ b/extensions/BMO/web/js/new-bug-frequent-comp.js
@@ -36,15 +36,27 @@ Bugzilla.NewBugFrequentComp = class NewBugFrequentComp {
this.$results.setAttribute('aria-busy', 'true');
this.$container.hidden = false;
+ // Get the current params that may contain `cloned_bug_id` and `format`
+ const current_params = new URLSearchParams(location.search);
+
try {
- const results = await this.fetch();
+ const links = (await this.fetch()).map(({ product, component }) => {
+ const params = new URLSearchParams(current_params);
+
+ params.append('product', product);
+ params.append('component', component);
+
+ return {
+ href: `/enter_bug.cgi?${params.toString()}`,
+ text: `${product} :: ${component}`,
+ };
+ });
this.$message.remove();
this.$results.insertAdjacentHTML('beforeend',
- `<ul>${results.map(({ product, component }) => (
- `<li><a href="/enter_bug.cgi?product=${encodeURIComponent(product)}&amp;component=` +
- `${encodeURIComponent(component)}">${product.htmlEncode()} :: ${component.htmlEncode()}</a></li>`
- )).join('')}</ul>`
+ `<ul>${links.map(({ href, text }) =>
+ `<li><a href="${href.htmlEncode()}">${text.htmlEncode()}</a></li>`
+ ).join('')}</ul>`
);
} catch (error) {
this.$message.textContent = error.message || 'Your frequent components could not be retrieved.';