mirror of
https://github.com/sigmasternchen/MyTube
synced 2025-03-15 21:08:55 +00:00
editing links workd now
This commit is contained in:
parent
e69df013b3
commit
78c86aa7e7
4 changed files with 76 additions and 0 deletions
|
@ -320,4 +320,48 @@ class DashboardController extends AbstractController
|
||||||
|
|
||||||
return $this->redirectToRoute("app_links");
|
return $this->redirectToRoute("app_links");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Route("/links/edit", name="app_edit_link")
|
||||||
|
*/
|
||||||
|
public function editLink(Request $request): Response
|
||||||
|
{
|
||||||
|
if (!$this->isGranted("ROLE_USER")) {
|
||||||
|
// not logged in
|
||||||
|
return $this->redirectToRoute("app_login");
|
||||||
|
}
|
||||||
|
|
||||||
|
$linkId = $request->query->get("link");
|
||||||
|
if (!$linkId) {
|
||||||
|
return $this->redirectToRoute("app_links");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$linkId = $this->uuidMapper->fromString($linkId);
|
||||||
|
} catch (ConversionException $e) {
|
||||||
|
return $this->redirectToRoute("app_links");
|
||||||
|
}
|
||||||
|
|
||||||
|
$videoLink = $this->videoLinkService->get($linkId);
|
||||||
|
if (!$videoLink) {
|
||||||
|
return $this->redirectToRoute("app_dashboard");
|
||||||
|
}
|
||||||
|
|
||||||
|
$form = $this->createForm(VideoLinkType::class, $videoLink);
|
||||||
|
|
||||||
|
$form->handleRequest($request);
|
||||||
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
|
$videoLink = $form->getData();
|
||||||
|
|
||||||
|
$this->videoLinkService->update($videoLink);
|
||||||
|
}
|
||||||
|
|
||||||
|
$video = $videoLink->getVideo();
|
||||||
|
$video->setCustomId($this->uuidMapper->toString($video->getId()));
|
||||||
|
|
||||||
|
return $this->render("dashboard/link-edit.html.twig", [
|
||||||
|
"video" => $video,
|
||||||
|
"form" => $form->createView()
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -63,4 +63,9 @@ class VideoLinkService
|
||||||
{
|
{
|
||||||
$this->videoLinkRepository->delete($link);
|
$this->videoLinkRepository->delete($link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function update($videoLink)
|
||||||
|
{
|
||||||
|
$this->videoLinkRepository->update();
|
||||||
|
}
|
||||||
}
|
}
|
24
templates/dashboard/link-edit.html.twig
Normal file
24
templates/dashboard/link-edit.html.twig
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}Links{% endblock %}
|
||||||
|
{% block stylesheets %}
|
||||||
|
<link rel="stylesheet" href="{{ asset("css/links.css") }}">
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Edit Link</h1>
|
||||||
|
<div class="video">
|
||||||
|
<a href="{{ path("app_watch_page", {
|
||||||
|
linkId: constant("App\\Controller\\WatchController::OWNER_LINK_ID"),
|
||||||
|
videoId: video.customId
|
||||||
|
}) }}" target="_blank">
|
||||||
|
<img alt="Thumbnail" src="{{ path("app_watch_thumbnail", {
|
||||||
|
linkId: constant("App\\Controller\\WatchController::OWNER_LINK_ID"),
|
||||||
|
videoId: video.customId
|
||||||
|
}) }}"/>
|
||||||
|
{{ video.name }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ form(form) }}
|
||||||
|
{% endblock %}
|
|
@ -92,6 +92,9 @@
|
||||||
videoId: link.video.customId
|
videoId: link.video.customId
|
||||||
}) }}')"><i class="fas fa-clipboard"></i>
|
}) }}')"><i class="fas fa-clipboard"></i>
|
||||||
</button>
|
</button>
|
||||||
|
<a class="btn btn-link" href="{{ path("app_edit_link") }}?link={{ link.customId }}">
|
||||||
|
<i class="fas fa-cog"></i>
|
||||||
|
</a>
|
||||||
<form action="{{ path("app_link_delete") }}" method="POST">
|
<form action="{{ path("app_link_delete") }}" method="POST">
|
||||||
<input type="hidden" name="linkId" value="{{ link.customId }}">
|
<input type="hidden" name="linkId" value="{{ link.customId }}">
|
||||||
<input type="hidden" name="csrfToken" value="{{ deleteCsrfToken }}">
|
<input type="hidden" name="csrfToken" value="{{ deleteCsrfToken }}">
|
||||||
|
|
Loading…
Reference in a new issue