1jQuery(function () {
2
3    /**
4     * admin interface: autocomplete users
5     */
6    function adminAutocomplete($form) {
7
8        $form.find('input[name="user"]')
9            .autocomplete({
10                source: function (request, response) {
11                    jQuery.getJSON(DOKU_BASE + 'lib/exe/ajax.php?call=plugin_acknowledge_autocomplete', {
12                        user: request.term,
13                        sectok: $form.find('input[name="sectok"]').val()
14                    }, response);
15                },
16                minLength: 1
17            });
18        $form.find('input[name="pg"]')
19            .autocomplete({
20                source: function (request, response) {
21                    jQuery.getJSON(DOKU_BASE + 'lib/exe/ajax.php?call=plugin_acknowledge_autocomplete', {
22                        pg: request.term,
23                        sectok: $form.find('input[name="sectok"]').val()
24                    }, response);
25                },
26                minLength: 3
27            });
28    }
29
30    const $form = jQuery('.dokuwiki.mode_admin div.plugin_acknowledgement_admin form#acknowledge__user-autocomplete');
31    if ($form.length) {
32        adminAutocomplete($form);
33    }
34
35    /*
36     * Handle assignments
37     */
38
39    let $aContainer = jQuery('.plugin-acknowledge-assign');
40
41    // if no container is found, create one in the last section
42    if ($aContainer.length === 0) {
43        const section = jQuery('.dokuwiki.mode_show')
44            .find('div.level1, div.level2, div.level3, div.level4, div.level5')
45            .filter(function (idx, el) {
46                return jQuery(el).parents('ul, ol, aside, nav, footer, header').length === 0;
47            })
48            .last();
49        if (section.length === 0) {
50            return;
51        }
52        $aContainer = jQuery('<div class="plugin-acknowledge-banner"></div>');
53        section.append($aContainer);
54    }
55
56    $aContainer.on('submit', function (event) {
57        event.preventDefault();
58        const $form = jQuery(event.target),
59            ack = $form.find("input[name='ack']")[0];
60
61        $aContainer.load(
62            DOKU_BASE + "lib/exe/ajax.php",
63            {
64                call: "plugin_acknowledge_acknowledge",
65                id: JSINFO.id,
66                ack: ack.checked === true ? 1 : 0
67            }
68        );
69    });
70    $aContainer.load(
71        DOKU_BASE + 'lib/exe/ajax.php',
72        {
73            call: 'plugin_acknowledge_acknowledge',
74            id: JSINFO.id
75        },
76        response => {
77            // remove container if no data to show
78            if (response === '') {
79                $aContainer.remove();
80            }
81        }
82    );
83});
84