Added option to search in internal part number (enabled by default)

This should fix issue #232
This commit is contained in:
Jan Böhmer 2023-03-04 22:53:36 +01:00
parent 0efb32c891
commit 222e76ce47
3 changed files with 25 additions and 3 deletions

View file

@ -294,6 +294,7 @@ class PartListsController extends AbstractController
$filter->setTags($request->query->getBoolean('tags', true));
$filter->setStorelocation($request->query->getBoolean('storelocation', true));
$filter->setComment($request->query->getBoolean('comment', true));
$filter->setIPN($request->query->getBoolean('ipn', true));
$filter->setOrdernr($request->query->getBoolean('ordernr', true));
$filter->setSupplier($request->query->getBoolean('supplier', false));
$filter->setManufacturer($request->query->getBoolean('manufacturer', false));

View file

@ -65,6 +65,9 @@ class PartSearchFilter implements FilterInterface
/** @var bool Use footprint name for searching */
protected bool $footprint = false;
/** @var bool Use Internal Part number for searching */
protected bool $ipn = true;
public function __construct(string $query)
{
$this->keyword = $query;
@ -104,6 +107,9 @@ class PartSearchFilter implements FilterInterface
if($this->footprint) {
$fields_to_search[] = 'footprint.name';
}
if ($this->ipn) {
$fields_to_search[] = 'part.ipn';
}
return $fields_to_search;
}
@ -301,6 +307,17 @@ class PartSearchFilter implements FilterInterface
return $this;
}
public function isIPN(): bool
{
return $this->ipn;
}
public function setIPN(bool $ipn): PartSearchFilter
{
$this->ipn = $ipn;
return $this;
}
/**
* @return bool
*/

View file

@ -5,7 +5,7 @@
<span class="caret"></span>
</button>
<div class="dropdown-menu" aria-labelledby="navbar-search-options">
<div class="px-2">
<div class="px-2" style="width: max-content;">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="search_name" name="name" value="1" checked>
<label for="search_name" class="form-check-label justify-content-start">{% trans %}name.label{% endtrans %}</label>
@ -20,7 +20,7 @@
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="search_mpn" name="mpn" value="1" checked>
<label for="search_description" class="form-check-label justify-content-start">{% trans %}part.edit.mpn{% endtrans %}</label>
<label for="search_mpn" class="form-check-label justify-content-start">{% trans %}part.edit.mpn{% endtrans %}</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="search_tags" name="tags" value="1" checked>
@ -34,10 +34,14 @@
<input type="checkbox" class="form-check-input" id="search_comment" name="comment" value="1" checked>
<label for="search_comment" class="form-check-label justify-content-start">{% trans %}comment.label{% endtrans %}</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="search_ipn" name="ipn" value="1" checked>
<label for="search_ipn" class="form-check-label justify-content-start">{% trans %}part.edit.ipn{% endtrans %}</label>
</div>
{% if true %}
<div class="form-check">
<input type="checkbox" class="form-check-input" id="search_supplierpartnr" name="ordernr" value="1" checked>
<label for="search_supplierpartnr" class="form-check-label justify-content-start">{% trans %}ordernumber.label.short{% endtrans %}</label>
<label for="search_supplierpartnr" class="form-check-label justify-content-start">{% trans %}orderdetails.edit.supplierpartnr{% endtrans %}</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="search_supplier" name="supplier" value="1">