diff --git a/public/index.css b/public/index.css
index 04f4a81..32296fc 100644
--- a/public/index.css
+++ b/public/index.css
@@ -16,6 +16,7 @@ div.resize {
}
td {
padding: 0;
+ padding-left: 2px;
margin: 0px;
align: top;
}
@@ -24,13 +25,12 @@ input.fill {
}
div.name {
float:left;
- margin-left: 2px;
margin-right: 5px;
}
div.justify {
overflow: hidden;
}
-input.justify {
+.full {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
diff --git a/public/index.html b/public/index.html
index 92ac846..8e05894 100644
--- a/public/index.html
+++ b/public/index.html
@@ -21,8 +21,15 @@
|
diff --git a/public/partdb.js b/public/partdb.js
index b3cc495..d1f5ef1 100644
--- a/public/partdb.js
+++ b/public/partdb.js
@@ -43,16 +43,41 @@ function results()
function select()
{
const results = document.getElementById('results');
- const variants_select = document.getElementById('variants');
- const pinout_preview = document.getElementById('pinout_preview');
if (results.selectedIndex >= 0) {
let part_selected = parseInt(results.options[results.selectedIndex].value);
for (const part of parts) {
if (part.id == part_selected) {
- const fields = ["name", "description"];
+ console.log(part);
+ // populate part fields
+ const fields = ["name", "description", "details", "package", "pincount", "manufacturer", "family", "datasheet", "page"];
for (const field of fields) {
const input = document.getElementById('part_' + field);
- input.value = part[field];
+ if (input.tagName == "INPUT") {
+ if (undefined === part[field]) {
+ input.value = "";
+ } else {
+ input.value = part[field];
+ }
+ } else if (input.tagName == "TEXTAREA") {
+ if (undefined === part[field]) {
+ input.innerHtml = null;
+ } else {
+ input.innerHtml = part[field];
+ }
+ }
+ }
+ // set URLs
+ const urls = ["page","datasheet"];
+ for (const field of urls) {
+ const a = document.getElementById('url_' + field);
+ if (null == a) {
+ continue;
+ }
+ if (undefined === part[field]) {
+ a.href = null;
+ } else {
+ a.href = part[field];
+ }
}
}
}
diff --git a/server.rb b/server.rb
index 1c54929..0cbb959 100755
--- a/server.rb
+++ b/server.rb
@@ -63,20 +63,21 @@ get '/' do
end
def get_part_by_id(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 family FROM part LEFT JOIN package ON package.id = part.package LEFT JOIN manufacturer ON manufacturer.id = part.manufacturer WHERE part.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 FROM part LEFT JOIN package ON package.id = part.package LEFT JOIN manufacturer ON manufacturer.id = part.manufacturer WHERE part.id = ?")
part = statement.execute(id, :as => :hash).to_a[0]
return nil unless part
# merge with family info
- while part and part["family"] do
- family = statement.execute(part["family"]).to_a[0]
- part["family"] = nil # reset info
+ while part and part["parent"] do
+ family = statement.execute(part["parent"]).to_a[0]
+ part["parent"] = nil # reset info
break unless family
+ part["family"] ||= family["name"]
family.each do |k,v|
part[k] ||= v
end
end
# clean up
- delete = ["family"]
+ delete = ["parent"]
delete.each do |k|
part.delete k
end