Sha256: 2725a05ee4f99a2f5d23c1d20eb0819fbda448150a2634950e6da1ef9c58bf77

Contents?: true

Size: 951 Bytes

Versions: 2

Compression:

Stored size: 951 Bytes

Contents

'use strict'

Sprangular.directive 'variantSelection', ->
  restrict: 'E'
  templateUrl: 'directives/variant_selection.html'
  scope:
    product: '='
    variant: '='
    class: '='
    change: '&'
  controller: ($scope) ->
    $scope.values = {}

    $scope.$watch 'variant', (newVariant, oldVariant)->
      $scope.change({oldVariant: oldVariant, newVariant: newVariant}) if newVariant != oldVariant

    $scope.isValueSelected = (value) ->
      $scope.values[value.option_type_id]?.id == value.id

    $scope.isValueAvailable = (value) ->
      $scope.product.availableValues(_.values($scope.values))

    $scope.selectValue = (value) ->
      $scope.values[value.option_type_id] = value
      $scope.variant = $scope.product.variantForValues(_.values($scope.values))

  link: (scope, element, attrs) ->
    scope.values = {}

    if scope.variant
      for value in scope.variant.option_values
        scope.values[value.option_type_id] = value

Version data entries

2 entries across 2 versions & 1 rubygems

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