xref: /template/strap/resources/snippet/js/backlink.js (revision 86ec4045937849fa62e7741dca261159a7d97545)
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                    .addDialogClass("modal-fullscreen-md-down");
16
17                /**
18                 * Creating the form
19                 */
20                let qualityCall = "combo-backlink";
21                let html = await combo
22                    .createDokuRequest(qualityCall)
23                    .setProperty("id", pageId)
24                    .getText();
25                html = `<p>List of pages that link back to the page (${pageId}).</p>${html}`;
26
27                let dokuWikiBacklinkButton = document.createElement("a");
28                dokuWikiBacklinkButton.classList.add("btn", "btn-secondary")
29                dokuWikiBacklinkButton.setAttribute("role", "button")
30                dokuWikiBacklinkButton.setAttribute("title", "Go to the original backlinks page")
31                dokuWikiBacklinkButton.innerHTML = "Original Backlinks Page";
32                dokuWikiBacklinkButton.setAttribute("href", JSINFO["whref"] + "?do=backlink")
33
34                /**
35                 * The modal
36                 */
37                backlinkModal
38                    .resetIfBuild()
39                    .setCentered(true)
40                    .setHeader(`Backlinks for the page (${pageId})`)
41                    .addBody(html)
42                    .addFooterButton(dokuWikiBacklinkButton)
43                    .addFooterCloseButton()
44                    .show();
45            });
46
47        });
48    }
49);
50
51