Ver código fonte

fix inline edit field value read

Piotr Labudda 5 anos atrás
pai
commit
90687dba30
2 arquivos alterados com 13 adições e 0 exclusões
  1. 8 0
      SE/se-lib/Core/AclBase.php
  2. 5 0
      SE/se-lib/TableAjax.php

+ 8 - 0
SE/se-lib/Core/AclBase.php

@@ -177,6 +177,14 @@ class Core_AclBase {
     $fields = $this->getFields();
     $fieldName = null;
     if (!empty($fields[$fieldID]) && !empty($fields[$fieldID]['name'])) $fieldName = $fields[$fieldID]['name'];
+    if (!$fieldName) {
+      $fieldName = array_reduce($fields, function ($ret, $fieldInfo) use ($fieldID) {
+        if (empty($fieldInfo['name'])) return $ret;
+        if (!empty($fieldID) && !empty($fieldInfo['idZasob']) && $fieldID === $fieldInfo['idZasob']) return $fieldInfo['name'];
+        return $ret;
+      }, null);
+      DBG::log($fields, 'array', "Core_AclBase->showFormItem fieldID({$fieldID}) fieldName({$fieldName}) #2");
+    }
     if (!$fieldName || !$this->canReadField($fieldName)) {
       return '<div style="padding-top:7px" title="Brak dostępu do odczytu tego pola">*****</div>';
     }

+ 5 - 0
SE/se-lib/TableAjax.php

@@ -630,11 +630,14 @@ class TableAjax extends ViewAjax {
 		$fieldVal = '';
 		if ($this->_acl->canReadObjectField($fieldName, $record)) {
 			$fieldVal = V::get($fieldName, $fieldVal, $record);
+			// DBG::log("ACL->canReadObjectField({$fieldName}) value({$fieldVal})");
 		} else {
 			$fieldVal = '*****';
+			// DBG::log("ACL->canReadObjectField({$fieldName}) value({$fieldVal})");
 		}
 
 		$fieldVal = V::get("f{$fieldID}", $fieldVal, $_POST);
+		// DBG::log("ACL->canReadObjectField({$fieldName}) value({$fieldVal}) after POST");
 
 		$vCol = $this->_acl->getField($fieldID);
 		$vCol['label'] = (!empty($vCol['label']))? $vCol['label'] : $vCol['name'];
@@ -671,6 +674,7 @@ class TableAjax extends ViewAjax {
 			}
 		}
 
+		// DBG::log("ACL->canReadObjectField({$fieldName}) value({$fieldVal}) end - TODO: showFormItem");
 		?>
 		<label for="<?= "f{$fieldID}"; ?>" class="AjaxTableEdit-label">
 			<strong title="<?= "[{$fieldID}] {$fieldName}"; ?>"><?= "{$vCol['label']}"; ?></strong>
@@ -1243,6 +1247,7 @@ jQuery(document).ready(function(){
 			}
 		}
 		catch (Exception $e) {
+			DBG::log($e);
 			$response->type = 'error';
 			$response->msg = "Wystąpiły błędy!";
 			$response->msg = $e->getMessage();