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});