1/**
2 * Add a click handler to the
3 * element with the `plugin_stale` class
4 */
5
6(function IIFE(){
7    const queryParameterKey = "stale";
8    jQuery('.plugin_stale')
9        .show()
10        .click(function (e) {
11            e.preventDefault();
12            // post the data
13            jQuery.post(
14                DOKU_BASE + 'lib/exe/ajax.php',
15                {
16                    call: 'plugin_stale'
17                },
18                // Display feedback
19                // https://api.jqueryui.com/dialog/
20                function (result) {
21                    const actualUrl = new URL(window.location.href);
22                    actualUrl.searchParams.set(queryParameterKey,result.message);
23                    window.location.assign(actualUrl.toString());
24                }
25            );
26        });
27    jQuery(function(){
28
29        const actualUrl = new URL(window.location.href);
30        if(actualUrl.searchParams.has(queryParameterKey)){
31
32            const sec = 10;
33            const message = actualUrl.searchParams.get(queryParameterKey);
34            let dialogElement = jQuery(document.createElement('div'));
35            dialogElement.html(`<h3>Stale</h3><p>${message}</p><p>The page was reloaded.</p><p>Note: This window will close automatically after ${sec} second if you don't click or press any key.</p>`);
36
37            /**
38             *
39             * @param {any | JQuery} jElement
40             */
41            let remove = function (jElement) {
42                if (jElement.parent().length > 0) {
43                    jElement.dialog('close');
44                    jElement.remove();
45                    jQuery(document.activeElement).blur();
46                }
47            };
48
49            dialogElement.dialog({
50                dialogClass: "stale-dialog",
51                closeOnEscape: true,
52                modal: true,
53                open: function () {
54                    // close it after 2 seconds (toast)
55                    setTimeout(function () {
56                        remove(dialogElement)
57                    }, sec*1000);
58                }
59            });
60
61            // Close it if the user click or press any key
62            jQuery(document).on("click", function () {
63                remove(dialogElement)
64            });
65            jQuery(document).on("keypress", function () {
66                remove(dialogElement)
67            });
68
69        }
70    })
71})();
72
73
74