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.'%');