Sha256: 1960d53e86d77ae1adc7045271504de1817d6e84c382b51d8fbc7641ee0ad61d

Contents?: true

Size: 1.53 KB

Versions: 24

Compression:

Stored size: 1.53 KB

Contents

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

  ko.bindingHandlers.validationState = {
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
      var $element = $(element),
          tooltipPosition = allBindingsAccessor().tooltipPosition || 'center top';

      $element.attache({popoverClass: 'formerror', position: tooltipPosition});

      ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
        $element.attache().destroy();
      });
    },
    update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
      var $element          = $(element),
          $parentLabel      = $element.parent('label'),
          hasParentLabel    = $parentLabel.length > 0,
          $cssClassLocation = hasParentLabel ? $parentLabel.find('span.custom') : $element,
          $errorMessage     = hasParentLabel ? $parentLabel.find('span.error.message') : $element.next('span.error.message'),
          observable        = valueAccessor(),
          hasError          = ko.unwrap(observable.hasError ? observable.hasError : observable.hasErrors),
          messageText       = ko.unwrap(observable.validationMessage ? observable.validationMessage : observable.validationMessages);

      if (typeof hasError === 'undefined' || !hasError) {
        $cssClassLocation.removeClass('error');
        $element.attache().hide();

      } else {
        $cssClassLocation.addClass('error');

        $element.attache().setContent(messageText);
        $element.attache().show();
      }
    }
  };

})(ko, $);

Version data entries

24 entries across 24 versions & 1 rubygems

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