xref: /plugin/combo/resources/snippet/js/backlink.js (revision c3437056399326d621a01da73b649707fbb0ae69)
1/* global combo */
2// noinspection JSUnresolvedVariable
3
4window.addEventListener("DOMContentLoaded", function () {
5
6
7        document.querySelectorAll(".combo-backlink-item").forEach((metadataControlItem) => {
8
9            metadataControlItem.addEventListener("click", async function (event) {
10                event.preventDefault();
11
12                let pageId = JSINFO.id;
13                let modalBacklinkId = combo.toHtmlId(`combo-backlink-${pageId}`);
14                let backlinkModal = combo.getOrCreateModal(modalBacklinkId)
15
16                /**
17                 * Creating the form
18                 */
19                let qualityCall = "combo-backlink";
20                let html = await combo
21                    .createDokuRequest(qualityCall)
22                    .setProperty("id", pageId)
23                    .getText();
24                html = `<p>List of pages that link back to the page (${pageId}).</p>${html}`;
25
26                let dokuWikiBacklinkButton = document.createElement("a");
27                dokuWikiBacklinkButton.classList.add("btn", "btn-secondary")
28                dokuWikiBacklinkButton.setAttribute("role", "button")
29                dokuWikiBacklinkButton.setAttribute("title", "Go to the original backlinks page")
30                dokuWikiBacklinkButton.innerHTML = "Original Backlinks Page";
31                dokuWikiBacklinkButton.setAttribute("href", JSINFO["whref"] + "?do=backlink")
32
33                /**
34                 * The modal
35                 */
36                backlinkModal
37                    .resetIfBuild()
38                    .setHeader(`Backlinks for the page (${pageId})`)
39                    .addBody(html)
40                    .addFooterButton(dokuWikiBacklinkButton)
41                    .addFooterCloseButton()
42                    .show();
43            });
44
45        });
46    }
47);
48
49