Sha256: 99611f6e0c3a1398a7da8df64ada768bef9faceb6bf3de7604cdd53de93d308f
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
angular.module('EssayApp.directives').directive("checkDiscount", ["$timeout", "$parse", "$q", "discountService", ($timeout, $parse, $q, discountService) -> restrict: 'A' scope: true require: "ngModel" link: (scope, element, attrs, ngModel) -> _model = $parse(attrs.checkDiscount) _defaultMinPrice = null fn = () -> ngModel.$modelValue ngModel.$asyncValidators.discount = (modelValue, viewValue)-> if modelValue?.length > 2 # _model.assign(scope, null) return discountService.check(modelValue).then (data) -> $timeout(() -> element.not(':focus').trigger('focusout') , 10) # {price: 15, type: "percentage", message: "some text here"} if data.price data['pub_message'] = replaceMessageCurrency(data.message, true) _model.assign(scope, data) return true else # element.attr('data-error-discount', data['error']) # element.attr('data-error-discount', # 'This code expired. Contact Support for a valid discount code.') _model.assign(scope, null) return $q.reject() else _model.assign(scope, null) return $q.when(true) replaceMessageCurrency = (message, is_init=false) -> if is_init && /\$([\d\.]+)$/.test(message) _defaultMinPrice = /([\d\.]+)$/.exec(message)[0] if _defaultMinPrice _new_price = scope.price.formatted_value parseFloat(_defaultMinPrice) message = message.replace(/\D[\d\.]+$/, _new_price) return message scope.$watch 'customer.order_exchange_rate', (value) -> if value if data = scope.$eval(attrs.checkDiscount) data.pub_message = replaceMessageCurrency(data.message) _model.assign(scope, data) ])
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/assets/javascripts/app/directives/check_discount.js.coffee |