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