vendor/uvdesk/support-center-bundle/Controller/Folder.php line 80

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\SupportCenterBundle\Controller;
  3. use Doctrine\Common\Collections\Criteria;
  4. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Webkul\UVDesk\SupportCenterBundle\Entity\Solutions;
  8. class Folder extends Controller
  9. {
  10.     public function listFolders(Request $request)
  11.     {
  12.         if (!$this->get('user.service')->isAccessAuthorized('ROLE_AGENT_MANAGE_KNOWLEDGEBASE')) {
  13.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  14.         }
  15.         $entityManager $this->getDoctrine()->getManager();
  16.         $totalKnowledgebaseFolders count($entityManager->getRepository('UVDeskSupportCenterBundle:Solutions')->findAll());
  17.         $totalKnowledgebaseCategories count($entityManager->getRepository('UVDeskSupportCenterBundle:SolutionCategory')->findAll());
  18.         $totalKnowledgebaseArticles count($entityManager->getRepository('UVDeskSupportCenterBundle:Article')->findAll());
  19.         return $this->render('@UVDeskSupportCenter/Staff/Folders/listFolders.html.twig', [
  20.             'articleCount' => $totalKnowledgebaseArticles,
  21.             'categoryCount' => $totalKnowledgebaseCategories,
  22.             'solutionCount' => $totalKnowledgebaseFolders,
  23.         ]);
  24.     }
  25.     public function createFolder(Request $request)
  26.     {
  27.         if (!$this->get('user.service')->isAccessAuthorized('ROLE_AGENT_MANAGE_KNOWLEDGEBASE')) {
  28.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  29.         }
  30.         $folder = new Solutions();
  31.         $errors = [];
  32.         if ($request->getMethod() == "POST") {
  33.             $entityManager $this->getDoctrine()->getManager();
  34.             $solutionImage $request->files->get('solutionImage');
  35.             if ($imageFile $request->files->get('solutionImage')) {
  36.                 if (!preg_match('#^(image/)(?!(tif)|(svg) )#'$imageFile->getMimeType()) && !preg_match('#^(image/)(?!(tif)|(svg))#'$imageFile->getClientMimeType())) {
  37.                     $message $this->get('translator')->trans('Warning! Provide valid image file. (Recommened: PNG, JPG or GIF Format).');
  38.                     $this->addFlash('warning'$message);
  39.                     return $this->redirect($this->generateUrl('helpdesk_member_knowledgebase_create_folder'));
  40.                 }
  41.             }
  42.             $data $request->request->all();
  43.             $folder->setName($data['name']);
  44.             $folder->setDescription($data['description']);
  45.             $folder->setvisibility($data['visibility']);
  46.             if(isset($solutionImage)){
  47.                 $assetDetails $this->container->get('uvdesk.core.file_system.service')->getUploadManager()->uploadFile($solutionImage'knowledgebase');
  48.                 $folder->setSolutionImage($assetDetails['path']);
  49.             }
  50.             $folder->setDateAdded( new \DateTime());
  51.             $folder->setDateUpdated( new \DateTime());
  52.             $folder->setSortOrder(1);
  53.             $entityManager->persist($folder);
  54.             $entityManager->flush();
  55.             $message $this->get('translator')->trans('Success! Folder has been added successfully.');
  56.             $this->addFlash('success'$message);
  57.             return $this->redirect($this->generateUrl('helpdesk_member_knowledgebase_folders_collection'));
  58.         }
  59.         return $this->render('@UVDeskSupportCenter/Staff/Folders/createFolder.html.twig', [
  60.             'folder' => $folder,
  61.             'errors' => json_encode($errors)
  62.         ]);
  63.     }
  64.     public function updateFolder($folderId)
  65.     {
  66.         if (!$this->get('user.service')->isAccessAuthorized('ROLE_AGENT_MANAGE_KNOWLEDGEBASE')) {
  67.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  68.         }
  69.         $entityManager $this->getDoctrine()->getManager();
  70.         $request $this->container->get('request_stack')->getCurrentRequest();
  71.         $knowledgebaseFolder $entityManager->getRepository('UVDeskSupportCenterBundle:Solutions')->findSolutionById(['id' => $folderId]);
  72.         if (empty($knowledgebaseFolder)) {
  73.             $this->noResultFound();
  74.         }
  75.         if ($request->getMethod() == "POST") {
  76.             $formData $request->request->all();
  77.             $solutionImage $request->files->get('solutionImage');
  78.             if ($imageFile $request->files->get('solutionImage')) {
  79.                 if (!preg_match('#^(image/)(?!(tif)|(svg) )#'$imageFile->getMimeType()) && !preg_match('#^(image/)(?!(tif)|(svg))#'$imageFile->getClientMimeType())) {
  80.                     $message $this->get('translator')->trans('Warning! Provide valid image file. (Recommened: PNG, JPG or GIF Format).');
  81.                     $this->addFlash('warning'$message);
  82.                     return $this->render('@UVDeskSupportCenter/Staff/Folders/updateFolder.html.twig', [
  83.                         'folder' => $folder
  84.                     ]);
  85.                 }
  86.             }
  87.             $formData $request->request->all();
  88.             if (isset($solutionImage)) {
  89.                 $assetDetails $this->container->get('uvdesk.core.file_system.service')->getUploadManager()->uploadFile($solutionImage'knowledgebase');
  90.                 $knowledgebaseFolder->setSolutionImage($assetDetails['path']);
  91.             }
  92.             $knowledgebaseFolder
  93.                 ->setName($formData['name'])
  94.                 ->setDescription($formData['description'])
  95.                 ->setvisibility($formData['visibility'])
  96.                 ->setDateUpdated( new \DateTime())
  97.                 ->setSortOrder(1);
  98.             $entityManager->persist($knowledgebaseFolder);
  99.             $entityManager->flush();
  100.             $this->addFlash('success''Folder updated successfully.');
  101.             return $this->redirect($this->generateUrl('helpdesk_member_knowledgebase_folders_collection'));
  102.         }
  103.         return $this->render('@UVDeskSupportCenter/Staff/Folders/updateFolder.html.twig', [
  104.             'folder' => $knowledgebaseFolder,
  105.             'errors' => json_encode(!empty($errors) ? $errors : [])
  106.         ]);
  107.     }
  108. }