public function getAjaxProductSaleElementsImagesDocuments($id, $type)
 {
     if (null !== $this->checkAuth(AdminResources::PRODUCT, [], AccessManager::VIEW)) {
         return JsonResponse::createAuthError(AccessManager::VIEW);
     }
     $this->checkXmlHttpRequest();
     $pse = ProductSaleElementsQuery::create()->findPk($id);
     $errorMessage = $this->checkFileType($type);
     if (null === $pse && null === $errorMessage) {
         $type = null;
         $errorMessage = $this->getTranslator()->trans("The product sale elements id %id doesn't exist", ["%id" => $pse->getId()]);
     }
     switch ($type) {
         case "image":
             $modalTitle = $this->getTranslator()->trans("Associate images");
             $data = $this->getPSEImages($pse);
             break;
         case "document":
             $modalTitle = $this->getTranslator()->trans("Associate documents");
             $data = $this->getPSEDocuments($pse);
             break;
         case "virtual":
             $modalTitle = $this->getTranslator()->trans("Select the virtual document");
             $data = $this->getPSEVirtualDocument($pse);
             break;
         case null:
         default:
             $modalTitle = $this->getTranslator()->trans("Unsupported type");
             $data = [];
     }
     if (empty($data) && null === $errorMessage) {
         $errorMessage = $this->getTranslator()->trans("There are no files to associate.");
         if ($type === "virtual") {
             $errorMessage .= $this->getTranslator()->trans(" note: only non-visible documents can be associated.");
         }
     }
     $this->getParserContext()->set("items", $data)->set("type", $type)->set("error_message", $errorMessage)->set("modal_title", $modalTitle);
     return $this->render("ajax/pse-image-document-assoc-modal");
 }