Tidy up tag deletion

This commit is contained in:
d-buchmann 2025-05-22 15:35:42 +02:00
parent 26ee564481
commit 2e15f87f6e

View file

@ -140,14 +140,15 @@ implode(',', array_map(static fn (PartLot $lot) => $lot->getID(), $part->getPart
case "add_tag": case "add_tag":
$this->denyAccessUnlessGranted('edit', $part); $this->denyAccessUnlessGranted('edit', $part);
$tags = $part->getTags(); $tags = $part->getTags();
$part->setTags($tags . ',' . $target_id); // simple append // simple append
$part->setTags($tags.','.$target_id);
break; break;
case "remove_tag": case "remove_tag":
$this->denyAccessUnlessGranted('edit', $part); $this->denyAccessUnlessGranted('edit', $part);
$tags = $part->getTags(); // remove tag at start or end
$tags = str_replace($target_id, '', $tags); $tags = preg_replace("/(^".$target_id.",|,".$target_id."$)/", '', $part->getTags());
// sanitize $tags (remove leading, trailing and double commas) // remove tag in the middle, retaining one comma
$part->setTags($tags); $tags = str_replace(','.$target_id.',', ',' $tags);
break; break;
case 'favorite': case 'favorite':
$this->denyAccessUnlessGranted('change_favorite', $part); $this->denyAccessUnlessGranted('change_favorite', $part);