Sha256: 616cef068cfc8301fc3200d022b5af8e654bbbebffec158333dafa6af72fc83f

Contents?: true

Size: 1.98 KB

Versions: 3

Compression:

Stored size: 1.98 KB

Contents

export class Autocomplete {
  constructor() {
  }

  // This is the initial setup for the form.
  setup() {
      $('[data-autocomplete]').each((index, value) => {
          let selector = $(value)
          switch (selector.data('autocomplete')) {
            case "subject":
              this.autocompleteSubject(selector);
              break;
            case "language":
              this.autocompleteLanguage(selector);
              break;
            case "based_near":
              this.autocompleteLocation(selector);
              break;
            case "work":
              var user = selector.data('user');
              var id = selector.data('id');
              this.autocompleteWork(selector, user, id);
              break;
          }
      });
  }

  // attach an auto complete based on the field
  fieldAdded(cloneElem) {
    var $cloneElem = $(cloneElem);
    // FIXME this code (comparing the id) depends on a bug. Each input has an id and
    // the id is duplicated when you press the plus button. This is not valid html.
    if (/_based_near$/.test($cloneElem.attr("id"))) {
        this.autocompleteLocation($cloneElem);
    } else if (/_language$/.test($cloneElem.attr("id"))) {
        this.autocompleteLanguage($cloneElem);
    } else if (/_subject$/.test($cloneElem.attr("id"))) {
        this.autocompleteSubject($cloneElem);
    }
  }

  autocompleteLocation(field) {
      var loc = require('sufia/autocomplete/location');
      new loc.Location(field, field.data('autocomplete-url'))
  }

  autocompleteSubject(field) {
      var subj = require('sufia/autocomplete/subject');
      new subj.Subject(field, field.data('autocomplete-url'))
  }

  autocompleteLanguage(field) {
      var lang = require('sufia/autocomplete/language');
      new lang.Language(field, field.data('autocomplete-url'))
  }

  autocompleteWork(field, user, id) {
    var work = require('sufia/autocomplete/work')
    new work.Work(
      field,
      field.data('autocomplete-url'),
      user,
      id
    )
  }
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sufia-7.3.0.rc3 app/assets/javascripts/sufia/autocomplete.es6
sufia-7.3.0.rc2 app/assets/javascripts/sufia/autocomplete.es6
sufia-7.3.0.rc1 app/assets/javascripts/sufia/autocomplete.es6