|
|
@@ -979,13 +979,24 @@ class TableAjax extends ViewAjax {
|
|
|
break;
|
|
|
case "special":
|
|
|
fieldWidget = (function(fldName, fieldProps) {
|
|
|
- var _fieldName = fldName,
|
|
|
- _fieldProps = fieldProps,
|
|
|
- _format = _.get(_fieldProps, 'format', '{0}');
|
|
|
+ var _fieldName = fldName;
|
|
|
+ var _fieldProps = fieldProps;
|
|
|
+ var _format = _.get(_fieldProps, 'format', '{0}');
|
|
|
+ var _aliasMap = _.get(_fieldProps, 'aliasMap', null);
|
|
|
// console.log('FieldWidget: generate function to render field('+_fieldName+') ', fieldProps);
|
|
|
return function(val, fieldPK, row) {
|
|
|
- // console.log('FieldWidget: pk('+fieldPK+') run function to render field('+_fieldName+') with value('+val+') ', fieldProps);
|
|
|
- return p5Utils__format(_format, [val]);
|
|
|
+ // console.log('FieldWidget: pk('+fieldPK+') run function to render field('+_fieldName+') with value('+val+') ', fieldProps, 'row', row);
|
|
|
+ var format = _format;
|
|
|
+ if (_aliasMap) {
|
|
|
+ Object.keys(_aliasMap).map(function (mapKey) {
|
|
|
+ var mapField = _aliasMap[mapKey]
|
|
|
+ if (undefined !== row[mapField]) {
|
|
|
+ format = format.replace(new RegExp('\{' + mapKey + '\}', 'g'), row[mapField]);
|
|
|
+ }
|
|
|
+ // console.log('FieldWidget: pk('+fieldPK+') run function to render field('+_fieldName+') with value('+val+') _aliasMap:', _aliasMap, 'row['+mapField+']', row[mapField], 'converted val:', val);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return p5Utils__format(format, [val]);
|
|
|
}
|
|
|
}(fldName, fieldProps));
|
|
|
break;
|
|
|
@@ -5655,8 +5666,8 @@ jQuery(document).ready(function(){
|
|
|
switch ($typeName) {
|
|
|
case 'enum': $columnConfig->type = 'string'; break;
|
|
|
case 'alias': {
|
|
|
- $format = $acl->getXsdFieldParam($col, 'format');
|
|
|
- if ($format) $columnConfig->format = $format;
|
|
|
+ if ($format = $acl->getXsdFieldParam($col, 'format')) $columnConfig->format = $format;
|
|
|
+ if ($aliasMap = $acl->getXsdFieldParam($col, 'aliasMap')) $columnConfig->aliasMap = $aliasMap;
|
|
|
} break;
|
|
|
case 'string': {
|
|
|
$columnConfig->type = 'p5:string';
|