X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2FAutocomplete%2FAutocomplete.js;h=2b031cc3132aa0d4878a123e718437099dac367a;hb=b5e1cf13e668a739a226c72c4e446c809e7af553;hp=3eff685a8dff5c002e5a161f48de506764992760;hpb=8284b3cb82f4dec6e0f2bf74dea6e1a3bc7f4eac;p=quix0rs-gnu-social.git diff --git a/plugins/Autocomplete/Autocomplete.js b/plugins/Autocomplete/Autocomplete.js index 3eff685a8d..2b031cc313 100644 --- a/plugins/Autocomplete/Autocomplete.js +++ b/plugins/Autocomplete/Autocomplete.js @@ -1,37 +1,53 @@ -$(document).ready(function(){ - $('#notice_data-text').autocomplete($('address .url')[0].href+'/plugins/Autocomplete/autocomplete.json', { - multiple: true, - multipleSeparator: " ", - minChars: 1, - formatItem: function(row, i, max){ - row = eval("(" + row + ")"); - switch(row.type) - { - case 'user': - return row.nickname + ' (' + row.fullname + ')'; - case 'group': - return row.nickname + ' (' + row.fullname + ')'; - } - }, - formatMatch: function(row, i, max){ - row = eval("(" + row + ")"); - switch(row.type) - { - case 'user': - return row.nickname; - case 'group': - return row.nickname; - } - }, - formatResult: function(row){ - row = eval("(" + row + ")"); - switch(row.type) - { - case 'user': - return '@' + row.nickname; - case 'group': - return '!' + row.nickname; - } - } - }); -}); +(function(SN, $) { + +var origInit = SN.Init.NoticeFormSetup; +SN.Init.NoticeFormSetup = function(form) { + origInit(form); + + // Only attach to traditional-style forms + var textarea = form.find('.notice_data-text:first'); + if (textarea.length == 0) { + return; + } + + function fullName(row) { + if (typeof row.fullname == "string" && row.fullname != '') { + return row.nickname + ' (' + row.fullname + ')'; + } else { + return row.nickname; + } + } + + var apiUrl = $('#autocomplete-api').attr('data-url'); + textarea.autocomplete(apiUrl, { + multiple: true, + multipleSeparator: " ", + minChars: 1, + formatItem: function(row, i, max){ + row = eval("(" + row + ")"); + // the display:inline is because our INSANE stylesheets + // override the standard display of all img tags for no + // good reason. + var div = $('
') + .find('img').attr('src', row.avatar).end() + .find('span').text(fullName(row)).end() + return div.html(); + }, + formatMatch: function(row, i, max){ + row = eval("(" + row + ")"); + return row.nickname; + }, + formatResult: function(row){ + row = eval("(" + row + ")"); + switch(row.type) + { + case 'user': + return '@' + row.nickname; + case 'group': + return '!' + row.nickname; + } + } + }); +}; + +})(SN, jQuery);