public function replaceAssignmentsAction()
{
$success = false;
$message = "";
$element = Element\Service::getElementById($this->getParam("type"), $this->getParam("id"));
$sourceEl = Element\Service::getElementById($this->getParam("sourceType"), $this->getParam("sourceId"));
$targetEl = Element\Service::getElementById($this->getParam("targetType"), $this->getParam("targetId"));
if ($element && $sourceEl && $targetEl && $this->getParam("sourceType") == $this->getParam("targetType") && $sourceEl->getType() == $targetEl->getType()) {
$rewriteConfig = [$this->getParam("sourceType") => [$sourceEl->getId() => $targetEl->getId()]];
if ($element instanceof Document) {
$element = Document\Service::rewriteIds($element, $rewriteConfig);
} elseif ($element instanceof Object\AbstractObject) {
$element = Object\Service::rewriteIds($element, $rewriteConfig);
} elseif ($element instanceof Asset) {
$element = Asset\Service::rewriteIds($element, $rewriteConfig);
}
$element->setUserModification($this->getUser()->getId());
$element->save();
$success = true;
} else {
$message = "source-type and target-type do not match";
}
$this->_helper->json(["success" => $success, "message" => $message]);
}