Files
mozo-backend/app/assets/javascripts/supplier/app/components/edit_currency_component.js.coffee
T
2015-02-18 23:42:56 +01:00

53 lines
2.0 KiB
CoffeeScript

App.EditCurrencyComponent = Ember.Component.extend
classNames: ['edit-currency-container', 'row', 'collapse']
classNameBindings: ['has_error:error']
currencySymbol: ''
has_error: false
placeholder: '0.00'
validatePresence: false
inputValue: Ember.computed (key, value, previousValue)->
key = "value"
if arguments.length > 1
if value
# if typeof value is 'number'
# return_value = value.toPrecision()
# @set key, value
if typeof value is 'string' and value.match(/^[+-]?\d+(\.?\d?\d)?$/)
@set 'has_error', false
@set key, parseFloat(value)
else
@set 'has_error', true
else
@set key, 0.0 # empty
@set 'has_error', false
return_value = value
return_value ||= @get key
@set 'has_error', true if @validatePresence and !return_value
return_value = return_value.toFixed(2) if typeof return_value is 'number'
return_value
actions:
action: ->
@sendAction('action') if @action
#didInsertElement: ->
#@addObserver "model.#{@attribute}", (attribute)=>
#if value = @get("model.#{@attribute}")
#@set 'value', value.toFixed(2) if parseFloat(@get('value')) isnt value
#else
#@set 'value', 0
## @set('value', @get("model.#{@attribute}").toFixed)
## # dynamically observe the model's attribute
## # if this changes outside the component's context, it is not
## # observed by the computed property. model.@attribute is not (yet) working :)
## current_value = @get 'value'
## if value = @get("model.#{@attribute}")
## string_value = value.toPrecision()
## @set('value', string_value) if parseFloat(current_value) isnt @get("model.#{@attribute}")
#@addObserver "model.errors.#{@attribute}.length", (attribute)=>
#@set 'has_error', !!@get("model.errors.#{@attribute}.length")
#@model.validate().then =>
#@set 'has_error', !!@get("model.errors.#{@attribute}.length")