1 2 3window.addEventListener("DOMContentLoaded", function () { 4 5 document.querySelectorAll(".combo-backlink-item").forEach((metadataControlItem) => { 6 7 metadataControlItem.addEventListener("click", async function (event) { 8 event.preventDefault(); 9 10 const combo = /** @type {import('combo.d.ts')} */ (window.combo); 11 if(!('JSINFO' in window)){ 12 throw new Error("JSINFO is not available") 13 } 14 const JSINFO = window.JSINFO; 15 let pageId = JSINFO.id; 16 let modalBacklinkId = combo.Html.toHtmlId(`combo-backlink-${pageId}`); 17 let backlinkModal = combo.Modal.getOrCreate(modalBacklinkId) 18 .addDialogClass("modal-fullscreen-md-down"); 19 20 /** 21 * Creating the form 22 */ 23 let qualityCall = "combo-backlink"; 24 let html = await combo 25 .DokuUrl 26 .createAjax(qualityCall) 27 .setProperty("id", pageId) 28 .toRequest() 29 .getText(); 30 html = `<p>List of pages that link back to the page (${pageId}).</p>${html}`; 31 32 let wikiBacklinkButton = document.createElement("a"); 33 wikiBacklinkButton.classList.add("btn", "btn-secondary") 34 wikiBacklinkButton.setAttribute("role", "button") 35 wikiBacklinkButton.setAttribute("title", "Go to the original backlinks page") 36 wikiBacklinkButton.innerHTML = "Original Backlinks Page"; 37 wikiBacklinkButton.setAttribute("href", JSINFO["whref"] + "?do=backlink") 38 39 /** 40 * The modal 41 */ 42 backlinkModal 43 .resetIfBuild() 44 .setCentered(true) 45 .setHeader(`Backlinks for the page (${pageId})`) 46 .addBody(html) 47 .addFooterButton(wikiBacklinkButton) 48 .addFooterCloseButton() 49 .show(); 50 }); 51 52 }); 53 } 54); 55 56