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