}
this.getField = function(expr) {
- if (!meta[expr]) {
- meta[expr] = searchMeta.parseExpr(expr).args[0];
+ if (!(expr in meta)) {
+ meta[expr] = _.findWhere(searchMeta.parseExpr(expr).args, {type: 'field'});
}
- return meta[expr].field;
+ return meta[expr] && meta[expr].field;
};
this.getOptionKey = function(expr) {
- if (!meta[expr]) {
- meta[expr] = _.findWhere(searchMeta.parseExpr(expr).args, {type: 'field'});
- }
- return meta[expr].suffix ? meta[expr].suffix.slice(1) : 'id';
+ var field = ctrl.getField(expr) || {};
+ return field.suffix ? field.suffix.slice(1) : 'id';
};
this.addGroup = function(op) {
ctrl = this;
this.$onInit = function() {
- var rendered = false;
+ var rendered = false,
+ field = this.field || {};
ctrl.dateRanges = CRM.crmSearchTasks.dateRanges;
- ctrl.entity = ctrl.field.fk_entity || ctrl.field.entity;
+ ctrl.entity = field.fk_entity || field.entity;
this.ngModel.$render = function() {
ctrl.value = ctrl.ngModel.$viewValue;
- if (!rendered && ctrl.field.input_type === 'Date') {
+ if (!rendered && field.input_type === 'Date') {
setDateType();
}
rendered = true;