{% load i18n %} {% load utils %} var {{ spk }}Attach = function($tbody) {}; (function() { var datalist = [ { label: '検索中...', value: '' } ]; function updateCandidates (options) { var done = options.done; $.ajax({ url: './extra/{{ spk }}/candidates', type: 'GET', cache: false, dataType: 'json', timeout: 300 * 1000 }) .done(function(data, textStatus, jqXHR) { // datalist = []; // $.each(data.candidates, function(i, candidate) { // datalist.push({ // label: candidate, // value: candidate // }); // }); done(data, textStatus, jqXHR); }) .fail(function(jqXHR, textStatus, errorThrown) { }) .always(function(data_or_jqXHR, textStatus, jqXHR_or_errorThrown) { }); } updateCandidates({ done: function (data, textStatus, jqXHR) { datalist = []; $.each(data.candidates, function(i, candidate) { datalist.push({ label: candidate, value: candidate }); }); } }); var $iframe = $(top.document.body).find('iframe').filter(function() { return window.frameElement == this; }); {{ spk }}Attach = function($tbody) { var $uncInput = $('[data-smb-unc-cell] input', $tbody); $uncInput .autocomplete({ appendTo: top.document.body, response: function(e, ui) { $uncInput.autocomplete('option', 'position', { my: 'left top', of: $iframe, at: 'left+'+($uncInput.offset().left+1)+' top+'+($uncInput.offset().top+$uncInput.outerHeight()+1), collision: 'none' }); }, minLength: 0, source: function(request, response) { var term = request.term.toLowerCase(); var _datalist = []; $.each(datalist, function(i, data) { if (data.label.toLowerCase().indexOf(term) === -1) { return true;{# continue #} } _datalist.push(data); }); response(_datalist); } }) .on('click', function(e) { $uncInput.autocomplete('search', ''); }); }; }());