$scope.controls = {};
$scope.langs = ['php', 'js', 'ang', 'cli'];
$scope.joinTypes = [{k: false, v: 'FALSE (LEFT JOIN)'}, {k: true, v: 'TRUE (INNER JOIN)'}];
- $scope.bridgeEntities = _.filter(schema, {type: 'BridgeEntity'});
+ $scope.bridgeEntities = _.filter(schema, function(entity) {return _.includes(entity.type, 'EntityBridge');});
$scope.code = {
php: [
{name: 'oop', label: ts('OOP Style'), code: ''},
if (lastLetter === 's' || lastLetter === 'x' || lastTwo === 'ch') {
return str + 'es';
}
- if (lastLetter === 'y' && lastTwo !== 'ey') {
+ if (lastLetter === 'y' && !_.includes(['ay', 'ey', 'iy', 'oy', 'uy'], lastTwo)) {
return str.slice(0, -1) + 'ies';
}
return str + 's';
setHelp($scope.entity, {
description: entityInfo.description,
comment: entityInfo.comment,
+ type: entityInfo.type,
see: entityInfo.see
});
}
// Add/remove value if operator allows for one
this.changeClauseOperator = function(clause) {
- if (_.contains(clause[1], 'NULL')) {
+ if (_.contains(clause[1], 'IS ')) {
clause.length = 2;
} else if (clause.length === 2) {
clause.push('');
op = field.serialize || dataType === 'Array' ? 'IN' : '=';
}
multi = _.includes(['IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'], op);
- if (op === 'IS NULL' || op === 'IS NOT NULL') {
+ // IS NULL, IS EMPTY, etc.
+ if (_.contains(op, 'IS ')) {
$el.hide();
return;
}
$el.removeClass('loading').crmSelect2({data: options, multiple: multi});
});
} else if (field.fk_entity) {
- $el.crmEntityRef({entity: field.fk_entity, select:{multiple: multi}});
+ $el.crmEntityRef({entity: field.fk_entity, select:{multiple: multi}, static: field.fk_entity === 'Contact' ? ['user_contact_id'] : []});
} else if (dataType === 'Boolean') {
$el.attr('placeholder', ts('- select -')).crmSelect2({allowClear: false, multiple: multi, placeholder: ts('- select -'), data: [
{id: 'true', text: ts('Yes')},