1jQuery(function() {
2    /**
3     * Aggregation table editor
4     */
5    const AggregationOdt = function (idx, table) {
6        const $table = jQuery(table);
7        let $form = null;
8
9        const schema = $table.parents('.structaggregation').data('schema');
10        if (!schema) return;
11
12        const template = $table.parents('.structaggregation').data('template');
13        if (!template) return;
14
15        const filetype = $table.parents('.structaggregation').data('filetype');
16        if (!filetype) return;
17
18        const filename = $table.parents('.structaggregation').data('filename'); // filename can be empty
19
20        /**
21         * Adds odt export row buttons to each row
22         */
23        function addOdtRowButtons() {
24            $table.find('tr').each(function () {
25                const $me = jQuery(this);
26
27                // already added here?
28                if ($me.find('th.actionodt, td.actionodt').length) {
29                    return;
30                }
31
32                const rid = $me.data('rid');
33                const pid = $me.data('pid');
34                const rev = $me.data('rev');
35                // let isDisabled = '';
36
37                // empty header cells
38                if (!rid) {
39                    $me.append('<th class="actionodt">' + LANG.plugins.struct.actions + '</th>');
40                    return;
41                }
42
43                // delete buttons for rows
44                const $td = jQuery('<td class="actionodt"></td>');
45
46                const icon = DOKU_BASE + 'lib/images/fileicons/' + filetype + '.png';
47                const url = new URL(window.location.href);
48                url.searchParams.append('do', 'structodt');
49                url.searchParams.append('action', 'render');
50                url.searchParams.append('schema', schema);
51                url.searchParams.append('pid', pid);
52                url.searchParams.append('rev', rev);
53                url.searchParams.append('rid', rid);
54                url.searchParams.append('template', JSON.stringify(template));
55                url.searchParams.append('filetype', filetype);
56                url.searchParams.append('filename', filename);
57                title = LANG['plugins']['structodt']['btn_download'];
58                const $btn = jQuery('<a href="'+url.href+'" title="' + title + '"><img src="'+icon+'" alt="'+filetype+'" class="icon"></a>');
59
60                $td.append($btn);
61                $me.append($td);
62
63            });
64        }
65        addOdtRowButtons();
66    };
67
68    function init() {
69        jQuery('div.structodt table').each(AggregationOdt);
70    }
71    jQuery(init);
72});