Sha256: e4c3bbc3caf3fe7a3550eb739ea202c3ae85b71ceb96b6d0579cd54ccda4db9f

Contents?: true

Size: 1.93 KB

Versions: 24

Compression:

Stored size: 1.93 KB

Contents

(function(ko, $) {
  "use strict";

  ko.bindingHandlers.sherlockProviderSearch = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
      var $container            = $(element).find('.provider-search-dropdown'),
          $providerSearchField  = $(element).find('> input[type=text]'),
          sherlockVm            = bindingContext.$data,
          listener              = new window.keypress.Listener($providerSearchField.get(0)),
          keyCombos;
      
      listener.register_combo({
        keys: "down",
        on_keydown: function() { sherlockVm.focusNextFragment(); }
      });
      
      listener.register_combo({
        keys: "up",
        on_keydown: function() { sherlockVm.focusPreviousFragment(); }
      });
      
      listener.register_combo({
        keys: "enter",
        on_keydown: function() { $providerSearchField.get(0).blur(); sherlockVm.selectFocusedFragment(); }
      });
      
      listener.register_combo({
        keys: "backspace",
        on_keydown: function() {
          if (sherlockVm.providerSearchTerm().length === 0) {
            sherlockVm.removeLastActiveFragment();
          }
          
          return true;
        }
      });
      
      ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
        listener.destroy();
      });
      
    },
    update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
      var $container  = $(element).find('.provider-search-dropdown'),
          sherlockVm  = bindingContext.$data,
          providerSearchActive    = sherlockVm.providerSearchActive(),
          fragmentsForSearchTerm = sherlockVm.fragmentsForSearchTerm();
          
      if (providerSearchActive && (fragmentsForSearchTerm.length > 0 || sherlockVm.liveSearchProviders().length > 0)) {
        $container.addClass('active');
      } else {
        $container.removeClass('active');
      }
    }
  };

})(ko, $);

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
kea-rails-1.0.9 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha14 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha13 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha12 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha11 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha10 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha9 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha8 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha7 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha6 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha5 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha4 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha3 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha2 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-1.0.8 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-2.0.0.pre.alpha1 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-1.0.7 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-1.0.6 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-1.0.5 app/assets/javascripts/kea/bindings/sherlock_provider_search.js
kea-rails-1.0.4 app/assets/javascripts/kea/bindings/sherlock_provider_search.js