vendor/uvdesk/support-center-bundle/Controller/Announcement.php line 35

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\SupportCenterBundle\Controller;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Webkul\UVDesk\SupportCenterBundle\Entity as SupportEntites;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Webkul\UVDesk\CoreFrameworkBundle\Services\UserService;
  8. use Webkul\UVDesk\CoreFrameworkBundle\FileSystem\FileSystem;
  9. use Webkul\UVDesk\CoreFrameworkBundle\Entity as CoreEntites;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. use Symfony\Component\DependencyInjection\ContainerInterface;
  12. Class Announcement extends AbstractController
  13. {
  14.     private $translator;
  15.     private $userService;
  16.     public function __construct(TranslatorInterface $translatorUserService $userService)
  17.     {
  18.         $this->translator $translator;
  19.         $this->userService $userService;
  20.     }
  21.     public function listAnnouncement(Request $request)    
  22.     {
  23.         if (!$this->userService->isAccessAuthorized('ROLE_AGENT_MANAGE_KNOWLEDGEBASE')) {
  24.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  25.         }
  26.         return $this->render('@UVDeskSupportCenter/Staff/Announcement/listAnnouncement.html.twig');
  27.     }
  28.     public function listAnnouncementXHR(Request $requestContainerInterface $container)    
  29.     {
  30.         $json = array();
  31.         $repository $this->getDoctrine()->getRepository(SupportEntites\Announcement::class);
  32.         $json =  $repository->getAllAnnouncements($request->query$container);
  33.         $response = new Response(json_encode($json));
  34.         $response->headers->set('Content-Type''application/json');
  35.         return $response;
  36.     }
  37.     public function updateAnnouncement(Request $request)
  38.     {
  39.         if (!$this->userService->isAccessAuthorized('ROLE_AGENT_MANAGE_KNOWLEDGEBASE')) {
  40.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  41.         }
  42.         
  43.         $em $this->getDoctrine()->getManager();
  44.         
  45.         if($request->attributes->get('announcementId')){
  46.             $announcement $this->getDoctrine()->getRepository(SupportEntites\Announcement::class)
  47.                         ->findOneBy([
  48.                                 'id' => $request->attributes->get('announcementId')
  49.                             ]);
  50.             $announcement->setCreatedAt(new \DateTime('now'));          
  51.             if(!$announcement)
  52.                 $this->noResultFound();
  53.         } else {
  54.             $announcement = new SupportEntites\Announcement();
  55.             $announcement->setCreatedAt(new \DateTime('now'));
  56.         }
  57.         
  58.         if($request->getMethod() == "POST") {
  59.             $request $request->request->get('announcement_form');
  60.             $group $em->getRepository(CoreEntites\SupportGroup::class)->find($request['group']);
  61.             $announcement->setTitle($request['title']);
  62.             $announcement->setPromoText($request['promotext']);
  63.             $announcement->setPromotag($request['promotag']);
  64.             $announcement->setTagColor($request['tagColor']);
  65.             $announcement->setLinkText($request['linkText']);
  66.             $announcement->setLinkURL($request['linkURL']);
  67.             $announcement->setIsActive($request['status']);
  68.             $announcement->setGroup($group);
  69.             $em->persist($announcement);
  70.             $em->flush();
  71.             $this->addFlash('success''Success! Announcement data saved successfully.');
  72.             return $this->redirect($this->generateUrl('helpdesk_member_knowledgebase_marketing_announcement'));
  73.             
  74.         }
  75.         return $this->render('@UVDeskSupportCenter/Staff/Announcement/announcementForm.html.twig', [
  76.                 'announcement' => $announcement,
  77.                 'errors' => ''
  78.         ]);
  79.     }
  80.     public function removeAnnouncementXHR(Request $request)
  81.     {
  82.         if (!$this->userService->isAccessAuthorized('ROLE_AGENT_MANAGE_KNOWLEDGEBASE')) {
  83.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  84.         }
  85.         $entityManager $this->getDoctrine()->getManager();
  86.         $knowledgebaseAnnouncementId $request->attributes->get('announcementId');
  87.         $knowledgebaseAnnouncement $this->getDoctrine()->getRepository(SupportEntites\Announcement::class)
  88.             ->findOneBy([
  89.                 'id' => $request->attributes->get('announcementId')
  90.             ]);
  91.         if ($knowledgebaseAnnouncement) {
  92.             $entityManager->remove($knowledgebaseAnnouncement);
  93.             $entityManager->flush();
  94.             $json = [
  95.                 'alertClass' => 'success',
  96.                 'alertMessage' => 'Announcement deleted successfully!',
  97.             ];
  98.             $responseCode 200;
  99.         } else {
  100.             $json = [
  101.                 'alertClass' => 'warning',
  102.                 'alertMessage' => 'Announcement not found!',
  103.             ];
  104.         }
  105.         $response = new Response(json_encode($json));
  106.         $response->headers->set('Content-Type''application/json');
  107.         return $response;
  108.     }
  109. }