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-banner'); 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 // on-page report: load the full user list when a count is clicked 57 $aContainer.on('click', 'a.plugin-acknowledge-loadusers', function (event) { 58 event.preventDefault(); 59 const $link = jQuery(this); 60 const $target = jQuery('<div class="plugin-acknowledge-userlist"></div>'); 61 $link.replaceWith($target); 62 $target.load( 63 DOKU_BASE + 'lib/exe/ajax.php', 64 { 65 call: 'plugin_acknowledge_userlist', 66 id: $link.data('id'), 67 status: $link.data('status') 68 } 69 ); 70 }); 71 72 $aContainer.on('submit', function (event) { 73 event.preventDefault(); 74 const $form = jQuery(event.target), 75 ack = $form.find("input[name='ack']")[0]; 76 77 $aContainer.load( 78 DOKU_BASE + "lib/exe/ajax.php", 79 { 80 call: "plugin_acknowledge_acknowledge", 81 id: JSINFO.id, 82 ack: ack.checked === true ? 1 : 0 83 } 84 ); 85 }); 86 $aContainer.load( 87 DOKU_BASE + 'lib/exe/ajax.php', 88 { 89 call: 'plugin_acknowledge_acknowledge', 90 id: JSINFO.id 91 }, 92 response => { 93 // remove container if no data to show 94 if (response === '') { 95 $aContainer.remove(); 96 } 97 } 98 ); 99}); 100