xref: /plugin/acknowledge/script.js (revision 5966046c9f2860981ac6f31f94d13d9b1dc9b700) !
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    }
19
20    const $form = jQuery('.dokuwiki.mode_admin div.plugin_acknowledgement_admin form#acknowledge__user-autocomplete');
21    if ($form.length) {
22        adminAutocomplete($form);
23    }
24
25    /*
26     * Handle assignments
27     */
28
29    let $aContainer = jQuery('.plugin-acknowledge-assign');
30
31    // if no container is found, create one in the last section
32    if ($aContainer.length === 0) {
33        const section = jQuery('.dokuwiki.mode_show')
34            .find('div.level1, div.level2, div.level3, div.level4, div.level5')
35            .filter(function (idx, el) {
36                return jQuery(el).parents('ul, ol, aside, nav, footer, header').length === 0;
37            })
38            .last();
39        if (section.length === 0) {
40            return;
41        }
42        $aContainer = jQuery('<div class="plugin-acknowledge-banner"></div>');
43        section.append($aContainer);
44    }
45
46    $aContainer.on('submit', function (event) {
47        event.preventDefault();
48        const $form = jQuery(event.target),
49            ack = $form.find("input[name='ack']")[0];
50
51        $aContainer.load(
52            DOKU_BASE + "lib/exe/ajax.php",
53            {
54                call: "plugin_acknowledge_acknowledge",
55                id: JSINFO.id,
56                ack: ack.checked === true ? 1 : 0
57            }
58        );
59    });
60    $aContainer.load(
61        DOKU_BASE + 'lib/exe/ajax.php',
62        {
63            call: 'plugin_acknowledge_acknowledge',
64            id: JSINFO.id
65        },
66        response => {
67            // remove container if no data to show
68            if (response === '') {
69                $aContainer.remove();
70            }
71        }
72    );
73});
74