diff options
-rw-r--r-- | extensions/BMO/web/js/new-bug-frequent-comp.js | 22 |
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)}&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.'; |