diff --git a/assets/controllers/elements/part_select_controller.js b/assets/controllers/elements/part_select_controller.js index 4b2edd82..ee13b4b9 100644 --- a/assets/controllers/elements/part_select_controller.js +++ b/assets/controllers/elements/part_select_controller.js @@ -13,12 +13,13 @@ export default class extends Controller { let settings = { allowEmptyOption: true, plugins: ['dropdown_input'], - searchField: "name", + searchField: ["name", "description", "category", "footprint"], valueField: "id", labelField: "name", + preload: "focus", render: { item: (data, escape) => { - return '' + (data.image ? "" : "") + escape(data.name) + ''; + return '' + (data.image ? "" : "") + escape(data.name) + ''; }, option: (data, escape) => { if(data.text) { diff --git a/src/Controller/TypeaheadController.php b/src/Controller/TypeaheadController.php index 87d0f4ff..37ff6ec1 100644 --- a/src/Controller/TypeaheadController.php +++ b/src/Controller/TypeaheadController.php @@ -136,14 +136,14 @@ class TypeaheadController extends AbstractController * @param EntityManagerInterface $entityManager * @return JsonResponse */ - public function parts(string $query, EntityManagerInterface $entityManager, PartPreviewGenerator $previewGenerator, - AttachmentURLGenerator $attachmentURLGenerator): JsonResponse + public function parts(EntityManagerInterface $entityManager, PartPreviewGenerator $previewGenerator, + AttachmentURLGenerator $attachmentURLGenerator, string $query = ""): JsonResponse { $this->denyAccessUnlessGranted('@parts.read'); $repo = $entityManager->getRepository(Part::class); - $parts = $repo->autocompleteSearch($query); + $parts = $repo->autocompleteSearch($query, 100); $data = []; foreach ($parts as $part) { diff --git a/src/Repository/PartRepository.php b/src/Repository/PartRepository.php index c88f7c70..5dfb8f45 100644 --- a/src/Repository/PartRepository.php +++ b/src/Repository/PartRepository.php @@ -72,11 +72,12 @@ class PartRepository extends NamedDBElementRepository $qb = $this->createQueryBuilder('part'); $qb->select('part') ->leftJoin('part.category', 'category') + ->leftJoin('part.footprint', 'footprint') ->where('part.name LIKE :query') ->orWhere('part.description LIKE :query') ->orWhere('category.name LIKE :query') - + ->orWhere('footprint.name LIKE :query') ; $qb->setParameter('query', '%'.$query.'%');