瀏覽代碼

added aliasMap for p5:string type

Piotr Labudda 8 年之前
父節點
當前提交
47552bff39
共有 1 個文件被更改,包括 22 次插入4 次删除
  1. 22 4
      SE/se-lib/TableAjax.php

+ 22 - 4
SE/se-lib/TableAjax.php

@@ -920,12 +920,22 @@ class TableAjax extends ViewAjax {
 					break;
 				case "p5:string":// @return String
 					fieldWidget = (function(fldName, fieldProps) {
-						var _fieldName = fldName,
-								_fieldProps = fieldProps,
-								_formatByValue = _.get(_fieldProps, 'formatByValue', null);
+						var _fieldName = fldName;
+						var _fieldProps = fieldProps;
+						var _formatByValue = _.get(_fieldProps, 'formatByValue', null);
+						var _aliasMap = _.get(_fieldProps, 'aliasMap', null);
 						return function(val, fieldPK, row) {
 							if (_formatByValue && val in _formatByValue) {
-								return p5Utils__format(_formatByValue[val], [val])
+								val = p5Utils__format(_formatByValue[val], [val])
+								// console.log('p5:string value', val, '_aliasMap', _aliasMap)
+								if (_aliasMap) {
+									Object.keys(_aliasMap).map(function (mapKey) {
+										var mapField = _aliasMap[mapKey]
+										if (undefined !== row[mapField]) {
+											val = val.replace(new RegExp('\{' + mapKey + '\}', 'g'), row[mapField]);
+										}
+									})
+								}
 							}
 							return val;
 						}
@@ -5633,6 +5643,7 @@ jQuery(document).ready(function(){
 							case 'string': {
 								$columnConfig->type = 'p5:string';
 								$columnConfig->formatByValue = $acl->getXsdFieldParam($col, 'formatByValue');
+								if ($aliasMap = $acl->getXsdFieldParam($col, 'aliasMap')) $columnConfig->aliasMap = $aliasMap;
 							} break;
 						}
 						break;
@@ -5842,6 +5853,13 @@ jQuery(document).ready(function(){
 		}
 		$jsonData->type = 'success';
 		$jsonData->msg = 'pobrano nowe dane';
+
+		// { // TODO: BUG - race condition in requests
+		// 	session_write_close();
+		// 	if (!empty($params['f_L_APPOITMENT_USER']) && strlen($params['f_L_APPOITMENT_USER']) === 3) sleep(2); // TODO: DBG
+		// 	if (!empty($params['f_L_APPOITMENT_USER']) && strlen($params['f_L_APPOITMENT_USER']) === 3) $jsonData->__DBG__sleep = 2; // TODO: DBG
+		// }
+
 		return $jsonData;
 	}