initial github commit
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import Ember from 'ember'
|
||||
import buildMessage from 'ember-changeset-validations/utils/validation-errors'
|
||||
|
||||
_isPresent = (value) ->
|
||||
if (value instanceof Ember.ObjectProxy || value instanceof Ember.ArrayProxy)
|
||||
return Ember._isPresent(Ember.get(value, 'content'))
|
||||
Ember.isPresent(value)
|
||||
|
||||
_testPresence = (key, value, presence, context = {}) ->
|
||||
if presence
|
||||
return Ember._isPresent(value) || buildMessage(key, 'present', value, context)
|
||||
else
|
||||
return Ember.isBlank(value) || buildMessage(key, 'blank', value, context)
|
||||
|
||||
export default (opts)->
|
||||
(key, value, oldValue, changes, content) =>
|
||||
if typeof opts is "function"
|
||||
presence = true
|
||||
condition = opts
|
||||
else
|
||||
presence = if "presence" in opts then opts.presence else true
|
||||
condition = opts.condition
|
||||
|
||||
# since contentn is the model we have to emulate the changes for now
|
||||
condition_object = Ember.assign(content.toJSON(), changes)
|
||||
if condition.call(condition_object) # perform validation when condition returns true
|
||||
if presence
|
||||
_isPresent(value) || buildMessage(key, 'present', value, opts)
|
||||
else
|
||||
isBlank(value) || buildMessage(key, 'blank', value, opts)
|
||||
else
|
||||
true
|
||||
#return _testPresence(key, value, opts)
|
||||
|
||||
Reference in New Issue
Block a user