add mpn field

This commit is contained in:
King Kévin 2023-01-28 00:20:29 +01:00
parent 0e835807ac
commit 423af78241
4 changed files with 5 additions and 2 deletions

View File

@ -27,6 +27,7 @@
<div class="justify"><textarea class="full" id="part_details" rows="4"></textarea></div>
<div>package: <input type="text" id="part_package" size="4">-<input type="text" id="part_pincount" size="2"></div>
<div class="name">manufacturer:</div><div class="justify"><input class="full" type="text" id="part_manufacturer"></div>
<div class="name">mpn:</div><div class="justify"><input class="full" type="text" id="part_mpn"></div>
<div class="name">family:</div><div class="justify"><input class="full" type="text" id="part_family"></div>
<div class="name"><a id="url_datasheet">datasheet</a>:</div><div class="justify"><input class="full" type="text" id="part_datasheet"></div>
<div class="name"><a id="url_page">page</a>:</div><div class="justify"><input class="full" type="text" id="part_page"></div>

View File

@ -5,7 +5,7 @@ var last_search = null;
// the collection of parts
var parts = null;
// part field to populate
const fields = ["name", "description", "details", "package", "pincount", "manufacturer", "family", "datasheet", "page", "location", "stock"];
const fields = ["name", "description", "details", "package", "pincount", "manufacturer", "mpn", "family", "datasheet", "page", "location", "stock"];
// URLs to set
const urls = ["page","datasheet"];

View File

@ -35,6 +35,7 @@ CREATE TABLE IF NOT EXISTS part (
description TEXT, -- a short (searchable) description
details TEXT, -- even more part details than just in the description
manufacturer INTEGER,
mpn TEXT,
family INTEGER, -- if this part is part of a part family
datasheet TEXT, -- URL to datasheet
package INTEGER,

View File

@ -72,7 +72,7 @@ end
def get_part_by_id(id)
return nil unless id
statement = @db.prepare("SELECT part.id, part.name, part.description, part.datasheet, manufacturer.name AS manufacturer, package.name AS package, part.pincount AS pincount, part.page AS page, part.family AS parent, p2.name AS family FROM part LEFT JOIN package ON package.id = part.package LEFT JOIN manufacturer ON manufacturer.id = part.manufacturer LEFT JOIN part AS p2 ON p2.id = part.family WHERE part.id = ?")
statement = @db.prepare("SELECT part.id, part.name, part.description, part.datasheet, manufacturer.name AS manufacturer, part.mpn AS mpn, package.name AS package, part.pincount AS pincount, part.page AS page, part.family AS parent, p2.name AS family FROM part LEFT JOIN package ON package.id = part.package LEFT JOIN manufacturer ON manufacturer.id = part.manufacturer LEFT JOIN part AS p2 ON p2.id = part.family WHERE part.id = ?")
part = statement.execute(id).to_a[0]
return nil unless part
parent = get_part_by_id(part["parent"])
@ -159,6 +159,7 @@ get '/search/:terms' do
# search in names, description, and category
statements = []
statements << @db.prepare("SELECT id FROM part WHERE name LIKE ?")
statements << @db.prepare("SELECT id FROM part WHERE mpn LIKE ?")
statements << @db.prepare("SELECT id FROM part WHERE description LIKE ?")
statements << @db.prepare("SELECT property_value.part AS id FROM property_value JOIN property ON property.id = property_value.property WHERE property.name = 'category' AND property_value.value LIKE ?")
term_ids = []