- } else {
- fields = [];
- var _order = (val_hash['group order']) ? val_hash['group order'] : order;
- if (typeof(_order) != 'object' || ! _order.length)
- return {error:v_error("'group order' must be a non-empty array")};
- for (var i = 0; i < _order.length; i++) {
- var field = _order[i];
- if (field.match(/^group\s/)) continue;
- var field_val = val_hash[field];
- if (! field_val) {
- if (field == 'OR') field_val = 'OR';
- else return {error:v_error('No element found in group for '+field)};
+ for (var i = 0; i < ref.length; i++) {
+ var field = ref[i];
+ if (typeof(field) == 'object') {
+ if (! field.field) return {error:v_error("Missing field key in validation")};
+ fields.push(field);
+ } else if (field == 'OR') {
+ fields.push('OR');
+ } else {
+ var field_val = val_hash[field];
+ if (! field_val) return {error:v_error('No element found in group for '+field)};
+ if (typeof(field_val) == 'object' && ! field_val['field']) field_val['field'] = field;
+ fields.push(field_val);