Merge branch 'feature/fieldset-label-expressions' into feature/configUI
This commit is contained in:
@@ -15,12 +15,21 @@
|
||||
initArchetypeRenderModel();
|
||||
|
||||
//helper to get $eval the labelExpression
|
||||
$scope.getFieldsetTitle = function(expression, fieldsetIndex)
|
||||
{
|
||||
if(!expression) return "";
|
||||
|
||||
return expression.replace(/\$fieldsetIndex/g, fieldsetIndex);
|
||||
}
|
||||
$scope.getFieldsetTitle = function(fieldsetConfigModel, fieldsetIndex) {
|
||||
var fieldset = $scope.archetypeRenderModel.fieldsets[fieldsetIndex];
|
||||
var template = fieldsetConfigModel.labelExpression;
|
||||
var rgx = /{{(.*?)}}*/g;
|
||||
var results;
|
||||
var parsedTemplate = template;
|
||||
|
||||
while ((results = rgx.exec(template)) !== null) {
|
||||
var propertyAlias = results[1];
|
||||
var propertyValue = $scope.getPropertyValueByAlias(fieldset, propertyAlias);
|
||||
parsedTemplate = parsedTemplate.replace(results[0], propertyValue);
|
||||
}
|
||||
|
||||
return parsedTemplate;
|
||||
};
|
||||
|
||||
/* add/remove/sort */
|
||||
|
||||
@@ -111,6 +120,14 @@
|
||||
return fieldset.alias == alias;
|
||||
});
|
||||
}
|
||||
|
||||
//helper to get a property by alias from a fieldset
|
||||
$scope.getPropertyValueByAlias = function(fieldset, propertyAlias) {
|
||||
var property = _.find(fieldset.properties, function(p) {
|
||||
return p.alias == propertyAlias;
|
||||
});
|
||||
return (typeof property !== 'undefined') ? property.value : '';
|
||||
};
|
||||
|
||||
//helper for collapsing
|
||||
$scope.focusFieldset = function(fieldset){
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<fieldset ng-class="{archetypeFieldsetError: !fieldset.isValid}" ng-init="fieldsetConfigModel = getConfigFieldsetByAlias(fieldset.alias)">
|
||||
<label ng-hide="model.config.hideFieldsetLabels == '1'" ng-click="focusFieldset(fieldset)">
|
||||
<img ng-src='{{fieldsetConfigModel.icon}}' title="{{fieldsetConfigModel.tooltip}}"/>
|
||||
<span ng-bind="$parent.$eval(getFieldsetTitle(fieldsetConfigModel.labelExpression, $index))"></span>
|
||||
<span ng-bind="getFieldsetTitle(fieldsetConfigModel, $index)"></span>
|
||||
</label>
|
||||
<div class="archetypeEditorControls" ng-hide="model.config.hideFieldsetControls || model.config.maxFieldsets == '1'">
|
||||
<i class="icon icon-add" ng-click="addRow(fieldset.alias, $index)" ng-show="canAdd()"></i>
|
||||
|
||||
Reference in New Issue
Block a user