Sha256: b1ae664d6cfbeaa7957626c6410e1d5dc11d8f9cb0d56f665c9e0e9da4f8d7ea

Contents?: true

Size: 1.78 KB

Versions: 22

Compression:

Stored size: 1.78 KB

Contents

//= require thredded/core/thredded
//= require thredded/core/escape_html

(() => {
  const Thredded = window.Thredded;

  Thredded.UserTextcomplete = {
    DROPDOWN_CLASS_NAME: 'thredded--textcomplete-dropdown',

    formatUser({avatar_url, name, display_name}) {
      return "<div class='thredded--textcomplete-user-result'>" +
        `<img class='thredded--textcomplete-user-result__avatar' src='${Thredded.escapeHtml(avatar_url)}' >` +
        `<span class='thredded--textcomplete-user-result__name'>${Thredded.escapeHtml(name)}</span>` +
        (name !== display_name && display_name ?
          `<span class='thredded--textcomplete-user-result__display_name'>${Thredded.escapeHtml(display_name)}</span>` :
          '') +
        '</div>';
    },

    searchFn({url, autocompleteMinLength}) {
      return function search(term, callback, match) {
        if (term.length < autocompleteMinLength) {
          callback([]);
          return;
        }
        const request = new XMLHttpRequest();
        request.open('GET', `${url}?q=${term}`, /* async */ true);
        request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
        request.onload = () => {
          // Ignore errors
          if (request.status < 200 || request.status >= 400) {
            callback([]);
            return;
          }
          callback(JSON.parse(request.responseText).results.map(({avatar_url, id, display_name, name}) => {
            return {avatar_url, id, name, display_name, match};
          }));
        };
        request.send();
      }
    }
  };

  document.addEventListener('turbolinks:before-cache', () => {
    Array.prototype.forEach.call(
      document.getElementsByClassName(Thredded.UserTextcomplete.DROPDOWN_CLASS_NAME), (node) => {
        node.parentNode.removeChild(node);
      });
  });
})();

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
thredded-0.16.13 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.12 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.11 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.10 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.9 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.8 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.7 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.6 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.5 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.4 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.3 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.1 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.16.0 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.15.5 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.15.4 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.15.3 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.15.2 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.15.1 app/assets/javascripts/thredded/components/user_textcomplete.es6
threddedDANIEL-0.14.5 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.14.4 app/assets/javascripts/thredded/components/user_textcomplete.es6