diff --git a/core/static/webpack/utils/select2.ts b/core/static/webpack/utils/select2.ts index 8dc58f60..b3e5b4d3 100644 --- a/core/static/webpack/utils/select2.ts +++ b/core/static/webpack/utils/select2.ts @@ -265,17 +265,22 @@ export function itemFormatter(user: { loading: boolean; text: string }) { export function selectItemBuilder(pictureGetter?: (item: RemoteResult) => string) { return (item: RemoteResult) => { const picture = typeof pictureGetter === "function" ? pictureGetter(item) : null; - const imgHtml = picture - ? `` - : ""; + const wrapper = document.createElement("div"); + wrapper.classList.add("select-item"); + if (picture) { + const img = document.createElement("img"); + img.src = picture; + img.alt = encodeURI(item.text); + img.onerror = () => { + img.src = "/static/core/img/unknown.jpg"; + }; + wrapper.appendChild(img); + } + const textSpan = document.createElement("span"); + textSpan.classList.add("select-item-text"); + textSpan.appendChild(document.createTextNode(item.text)); + wrapper.appendChild(textSpan); - return $(`