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