|
|
@@ -740,7 +740,7 @@ class TableAjax extends ViewAjax {
|
|
|
colTitle = props.description;
|
|
|
colTitle += ' (' + column + ')';
|
|
|
}
|
|
|
- else if (props._tsRetId) {
|
|
|
+ else if (props._tsRetId > 0) {
|
|
|
colTitle = 'Kliknij na pole i przejdź do powiązanych rekordów (' + colTitle + ')';
|
|
|
}
|
|
|
|
|
|
@@ -877,6 +877,9 @@ class TableAjax extends ViewAjax {
|
|
|
case "special":
|
|
|
elem = $('<div> </div>');
|
|
|
break;
|
|
|
+ case "simpleLink":
|
|
|
+ elem = $('<div> </div>');
|
|
|
+ break;
|
|
|
case "geom":
|
|
|
if (placeHolder == undefined) placeHolder = priv.options.types.string.placeHolder;
|
|
|
placeHolder = (placeHolder === true || placeHolder == undefined) ? '%' : placeHolder === false ? '' : placeHolder;
|
|
|
@@ -1031,6 +1034,21 @@ class TableAjax extends ViewAjax {
|
|
|
case "special":
|
|
|
cellCnt.html(format.f(val));
|
|
|
break;
|
|
|
+ case "simpleLink":
|
|
|
+ var valLink = String(val);
|
|
|
+ if (undefined !== _data.cols[key]._tsRetId
|
|
|
+ && (0 === _data.cols[key]._tsRetId || '0' === _data.cols[key]._tsRetId)
|
|
|
+ && undefined !== _data.cols[key]._tsSimpleLink) {
|
|
|
+ valLink = _data.cols[key]._tsSimpleLink.format;
|
|
|
+ $.each(_data.cols[key]._tsSimpleLink.aliasMap, function (i, v) {
|
|
|
+ //console.log('simpleLink aliasMap key:', key, 'i:', i, 'v:', v, 'props['+v+']', props[v], 'val', val, 'typeof val', typeof val);
|
|
|
+ if (undefined !== props[v]) {
|
|
|
+ valLink = valLink.replace(new RegExp('\{' + i + '\}', 'g'), props[v]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ cellCnt.html(format.f(valLink));
|
|
|
+ break;
|
|
|
case "geom":
|
|
|
cellCnt.TableAjaxGeomField({
|
|
|
recordID: cellID,
|
|
|
@@ -5142,42 +5160,10 @@ jQuery(document).ready(function(){
|
|
|
if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">vCols (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($vCols);echo'</pre>';}
|
|
|
}
|
|
|
|
|
|
- $total = $this->_acl->getTotal($params);
|
|
|
- if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">get_total (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($total);echo'</pre>';}
|
|
|
- $items = $this->_acl->getItems($params);
|
|
|
- if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">items (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($items);echo'</pre>';}
|
|
|
- // TODO: add virtual data by Typespecial
|
|
|
- if (!empty($vCols) && !empty($items)) {
|
|
|
- foreach ($vCols as $vColID => $vCol) {
|
|
|
- $colType = $this->_acl->getFieldTypeById($vColID);
|
|
|
- if ($colType) {
|
|
|
- continue;// pomin Typespecial dla realnych komorek w bazie danych
|
|
|
- }
|
|
|
-
|
|
|
- $typeSpecial = Typespecial::getInstance($vColID, $vCol);
|
|
|
- if ($typeSpecial) {
|
|
|
- if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">Typespecial('.$vColID.') (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($typeSpecial);echo'</pre>';}
|
|
|
- $ids = array_keys($items);
|
|
|
- $specialValues = $typeSpecial->getValuesByIds($this->_zasobID, $ids);
|
|
|
- if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">Typespecial('.$vCol.') specialValues (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($specialValues);echo'</pre>';}
|
|
|
- if (!empty($specialValues)) foreach ($specialValues as $kItemID => $vValues) {
|
|
|
- $tsValue = implode('<br>', $vValues);
|
|
|
- if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">Item['.$kItemID.'].'.$vCol.' specialValues (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($items[$kItemID]);echo'</pre>';}
|
|
|
- if (!empty($items[$kItemID]->{$vCol}) && !empty($tsValue)) {
|
|
|
- $items[$kItemID]->{$vCol} .= ": {$tsValue}";
|
|
|
- } else {
|
|
|
- $items[$kItemID]->{$vCol} = $tsValue;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
$visibleCols = $this->_acl->getVisibleFieldList();
|
|
|
if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">visibleCols (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($visibleCols);echo'</pre>';}
|
|
|
|
|
|
$jsonData = new stdClass();
|
|
|
- $jsonData->total = $total;
|
|
|
$jsonData->cols = new stdClass();
|
|
|
$ind = 0;
|
|
|
foreach ($visibleCols as $fieldID => $col) {
|
|
|
@@ -5212,6 +5198,38 @@ jQuery(document).ready(function(){
|
|
|
if ($typeSpecial) {
|
|
|
if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">typeSpecial (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($typeSpecial);echo'</pre>';}
|
|
|
$columnConfig->_tsRetId = $typeSpecial->getReturnId();
|
|
|
+ if ($columnConfig->_tsRetId == 0) {
|
|
|
+ $tsParamOut = V::get('param_out', null, $typeSpecial);
|
|
|
+ if ($tsParamOut) {
|
|
|
+ $tsFormat = V::get('format', null, $tsParamOut);
|
|
|
+ $tsValues = V::get('values', null, $tsParamOut);
|
|
|
+ $tsAliases = V::get('alias', null, $tsParamOut);
|
|
|
+ if (false !== strpos($tsFormat, '<a') && !empty($tsValues) && !empty($tsAliases)) {
|
|
|
+ $tsAliasMap = array();
|
|
|
+ /* [values] => Array([ID] => 1467), [alias] => Array([1467] => ID) */
|
|
|
+ $bugTsColsNotVisible = array();
|
|
|
+ foreach ($tsValues as $kVarName => $vIdZasob) {
|
|
|
+ if (array_key_exists($vIdZasob, $tsAliases)) {
|
|
|
+ $tsAliasMap[$kVarName] = $tsAliases[$vIdZasob];
|
|
|
+ } else {
|
|
|
+ $bugTsColsNotVisible[] = "noAliasFor {$vIdZasob}";
|
|
|
+ }
|
|
|
+ if (!array_key_exists($vIdZasob, $visibleCols)) {
|
|
|
+ $bugTsColsNotVisible[] = $vIdZasob;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (empty($bugTsColsNotVisible)) {
|
|
|
+ $tsSimpleLink = new stdClass();
|
|
|
+ $tsSimpleLink->format = $tsFormat;
|
|
|
+ $tsSimpleLink->aliasMap = $tsAliasMap;
|
|
|
+ $columnConfig->_tsSimpleLink = $tsSimpleLink;
|
|
|
+ $columnConfig->type = 'simpleLink';
|
|
|
+ } else {
|
|
|
+ $columnConfig->_tsSimpleLinkBug = $bugTsColsNotVisible;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// @see ajaxHiddenColsSave
|
|
|
@@ -5229,6 +5247,41 @@ jQuery(document).ready(function(){
|
|
|
$jsonData->cols->{$col} = $columnConfig;
|
|
|
}
|
|
|
$jsonData->rows = array();
|
|
|
+ $jsonData->total = $this->_acl->getTotal($params);
|
|
|
+ if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">get_total (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($jsonData->total);echo'</pre>';}
|
|
|
+ $items = $this->_acl->getItems($params);
|
|
|
+ if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">items (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($items);echo'</pre>';}
|
|
|
+ // TODO: add virtual data by Typespecial
|
|
|
+ if (!empty($vCols) && !empty($items)) {
|
|
|
+ foreach ($vCols as $vColID => $vCol) {
|
|
|
+ $colType = $this->_acl->getFieldTypeById($vColID);
|
|
|
+ if ($colType) {
|
|
|
+ continue;// pomin Typespecial dla realnych komorek w bazie danych
|
|
|
+ }
|
|
|
+
|
|
|
+ $typeSpecial = Typespecial::getInstance($vColID, $vCol);
|
|
|
+ if ($typeSpecial) {
|
|
|
+ $columnConfig = V::get($vCol, null, $jsonData->cols);
|
|
|
+ if ($columnConfig && !empty($columnConfig->_tsSimpleLink)) {
|
|
|
+ // pomin simple link values - mved to js render
|
|
|
+ } else {
|
|
|
+ if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">Typespecial('.$vColID.') (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($typeSpecial);echo'</pre>';}
|
|
|
+ $ids = array_keys($items);
|
|
|
+ $specialValues = $typeSpecial->getValuesByIds($this->_zasobID, $ids);
|
|
|
+ if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">Typespecial('.$vCol.') specialValues (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($specialValues);echo'</pre>';}
|
|
|
+ if (!empty($specialValues)) foreach ($specialValues as $kItemID => $vValues) {
|
|
|
+ $tsValue = implode('<br>', $vValues);
|
|
|
+ if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">Item['.$kItemID.'].'.$vCol.' specialValues (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($items[$kItemID]);echo'</pre>';}
|
|
|
+ if (!empty($items[$kItemID]->{$vCol}) && !empty($tsValue)) {
|
|
|
+ $items[$kItemID]->{$vCol} .= ": {$tsValue}";
|
|
|
+ } else {
|
|
|
+ $items[$kItemID]->{$vCol} = $tsValue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
foreach ($items as $vItem) {
|
|
|
// TODO: hide items without 'R'
|
|
|
foreach ($visibleCols as $kID => $vCol) {
|