Sha256: ce45f2aa66c9604cdfb626594f26c3c31d4ed770388d20f421ddf33f85560e88

Contents?: true

Size: 1003 Bytes

Versions: 1

Compression:

Stored size: 1003 Bytes

Contents

Sprangular.directive 'creditCardForm', ->
  restrict: 'E'
  templateUrl: 'credit_cards/form.html'
  scope:
    creditCard: '='
    disabled: '='
    submitted: '='
  controller: ($scope, $locale) ->
    $scope.months = _.map $locale.DATETIME_FORMATS.MONTH, (month, index) ->
      {"index": index + 1, "name": month}

    currentYear = (new Date).getFullYear()
    $scope.years = [currentYear .. currentYear+15]
    $scope.hasErrors = false

    $scope.$watchGroup ['creditCard.number', 'creditCard.year', 'creditCard.month', 'creditCard.cvc'], ->
      return unless $scope.submitted

      creditCard = $scope.creditCard
      creditCard.validate()
      errors = creditCard.errors
      $scope.hasErrors = errors && Object.keys(errors).length > 0

    $scope.$watch 'creditCard.number', (number) ->
      return unless number
      $scope.creditCard.lastDigits = number.substr(-4)
      $scope.creditCard.determineType()

  link: (element, attrs) ->
    attrs.disabled = false unless attrs.disabled?

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sprangular-0.1.0 app/assets/javascripts/sprangular/directives/creditCardForm.coffee