public function getDiffDataForEditMode($data, $object = null, $params = [])
{
if (!$data) {
return [];
}
$properties = $data->getProperties();
$result = [];
foreach ($properties as $key => $property) {
$key = $property["key"];
$diffdata = [];
$diffdata["field"] = $this->getName();
$diffdata["key"] = $this->getName() . "~" . $key;
$diffdata["type"] = $this->fieldtype;
unset($property["id"]);
unset($property["o_id"]);
unset($property["source"]);
$diffdata["data"] = $property;
$keyConfig = Object\KeyValue\KeyConfig::getById($key);
$keyName = $keyConfig->getName();
$prettyValue = $property["value"];
if ($keyConfig->getType() == "select") {
$possibleValues = \Zend_Json::decode($keyConfig->getPossibleValues());
foreach ($possibleValues as $pValue) {
if ($pValue["key"] == $property["value"]) {
$prettyValue = $pValue["value"];
break;
}
}
} elseif ($keyConfig->getType() == "translated") {
$translatedValue = $property["translated"];
if ($translatedValue) {
$prettyValue = $translatedValue;
}
}
$diffdata["value"] = $prettyValue;
$diffdata["title"] = $keyName;
$diffdata["tooltip"] = $keyName;
$keyDescription = $keyConfig->getDescription();
if (!empty($keyDescription)) {
$diffdata["title"] = $keyDescription;
}
$diffdata["disabled"] = !$this->isDiffChangeAllowed($object);
$result[] = $diffdata;
}
return $result;
}