diff --git a/src/Controller/PartController.php b/src/Controller/PartController.php index 414f9ce5..051053e5 100644 --- a/src/Controller/PartController.php +++ b/src/Controller/PartController.php @@ -255,16 +255,20 @@ class PartController extends AbstractController PartInfoRetriever $infoRetriever, PartMerger $partMerger): Response { $this->denyAccessUnlessGranted('edit', $part); - $this->denyAccessUnlessGranted('@info_providers.create_parts'); + //Save the old name of the target part for the template + $old_name = $part->getName(); + $dto = $infoRetriever->getDetails($providerKey, $providerId); $provider_part = $infoRetriever->dtoToPart($dto); $part = $partMerger->merge($part, $provider_part); - return $this->renderPartForm('edit', $request, $part, [ + return $this->renderPartForm('update_from_ip', $request, $part, [ 'info_provider_dto' => $dto, + ], [ + 'tname_before' => $old_name ]); } @@ -278,7 +282,7 @@ class PartController extends AbstractController private function renderPartForm(string $mode, Request $request, Part $data, array $form_options = [], array $merge_infos = []): Response { //Ensure that mode is either 'new' or 'edit - if (!in_array($mode, ['new', 'edit', 'merge'], true)) { + if (!in_array($mode, ['new', 'edit', 'merge', 'update_from_ip'], true)) { throw new \InvalidArgumentException('Invalid mode given'); } @@ -353,6 +357,8 @@ class PartController extends AbstractController $template = 'parts/edit/edit_part_info.html.twig'; } else if ($mode === 'merge') { $template = 'parts/edit/merge_parts.html.twig'; + } else if ($mode === 'update_from_ip') { + $template = 'parts/edit/update_from_ip.html.twig'; } return $this->render($template, diff --git a/templates/info_providers/search/part_search.html.twig b/templates/info_providers/search/part_search.html.twig index c14b1c1f..78e06283 100644 --- a/templates/info_providers/search/part_search.html.twig +++ b/templates/info_providers/search/part_search.html.twig @@ -14,7 +14,7 @@ {% block card_title %} {% if update_target %} {# If update_target is set, we update an existing part #} {% trans %}info_providers.update_part.title{% endtrans %}: - {{ update_target.name }} + {{ update_target.name }} {% else %} {# Create a fresh part #} {% trans %}info_providers.search.title{% endtrans %} {% endif %} diff --git a/templates/parts/edit/update_from_ip.html.twig b/templates/parts/edit/update_from_ip.html.twig new file mode 100644 index 00000000..fb1dfad3 --- /dev/null +++ b/templates/parts/edit/update_from_ip.html.twig @@ -0,0 +1,16 @@ +{% extends "parts/edit/edit_part_info.html.twig" %} + +{# @var merge_other \App\Entity\Parts\Part #} + +{% block card_border %}border-info{% endblock %} +{% block card_type %}bg-info text-bg-info{% endblock %} + +{% block title %} + {% trans %}info_providers.update_part.title{% endtrans %}: {{ merge_old_name }} +{% endblock %} + +{% block card_title %} + + {% trans %}info_providers.update_part.title{% endtrans %}: + {{ merge_old_name }} +{% endblock %} \ No newline at end of file