add delete button
This commit is contained in:
parent
8f2027ca6e
commit
18d5aed9de
|
@ -40,6 +40,7 @@
|
||||||
<thead><tr><th>property</th><th>value(s)</th></tr></thead>
|
<thead><tr><th>property</th><th>value(s)</th></tr></thead>
|
||||||
<tbody id="properties"></tbody>
|
<tbody id="properties"></tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<button type="button" onclick="delete_part()">delete part (including children)</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -144,3 +144,24 @@ function select()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function delete_part()
|
||||||
|
{
|
||||||
|
if (null == parts) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const results = document.getElementById('results');
|
||||||
|
if (results.selectedIndex < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const part_selected = parseInt(results.options[results.selectedIndex].value);
|
||||||
|
const xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('GET', '/delete/' + part_selected, true);
|
||||||
|
xhr.onload = function() {
|
||||||
|
search(); // refresh search
|
||||||
|
};
|
||||||
|
xhr.onerror = function() {
|
||||||
|
console.log("delete part failed");
|
||||||
|
};
|
||||||
|
xhr.send();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
34
server.rb
34
server.rb
|
@ -142,7 +142,7 @@ end
|
||||||
get '/search/:terms' do
|
get '/search/:terms' do
|
||||||
terms = params['terms'].split(" ")
|
terms = params['terms'].split(" ")
|
||||||
terms.keep_if {|term| term.length >= 3}
|
terms.keep_if {|term| term.length >= 3}
|
||||||
halt 404 if terms.empty?
|
halt 400 if terms.empty?
|
||||||
# search in names, description, and category
|
# search in names, description, and category
|
||||||
statements = []
|
statements = []
|
||||||
statements << @db.prepare("SELECT id FROM part WHERE name LIKE ?")
|
statements << @db.prepare("SELECT id FROM part WHERE name LIKE ?")
|
||||||
|
@ -177,3 +177,35 @@ get '/search/:terms' do
|
||||||
parts.sort! {|x,y| x["name"] <=> y["name"]}
|
parts.sort! {|x,y| x["name"] <=> y["name"]}
|
||||||
parts.to_json
|
parts.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete_part(id)
|
||||||
|
# first delete all children
|
||||||
|
statement = @db.prepare("SELECT id FROM part WHERE family = ?")
|
||||||
|
statement.execute(id).each do |row|
|
||||||
|
puts "child: #{row['id']}"
|
||||||
|
delete_part(row['id'])
|
||||||
|
puts "deleted"
|
||||||
|
end
|
||||||
|
# delete all fields
|
||||||
|
statements = []
|
||||||
|
statements << @db.prepare("DELETE FROM property_value WHERE part = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM assembly WHERE assembled = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM assembly WHERE component = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM drawing WHERE part = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM attachment WHERE part = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM distribution WHERE part = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM property_value WHERE part = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM inventory WHERE part = ?")
|
||||||
|
statements << @db.prepare("DELETE FROM part WHERE id = ?")
|
||||||
|
statements.each do |statement|
|
||||||
|
statement.execute(id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/delete/:id' do
|
||||||
|
statement = @db.prepare("SELECT id FROM part WHERE id = ?")
|
||||||
|
result = statement.execute(params['id'])
|
||||||
|
halt 400 if result.to_a.empty?
|
||||||
|
delete_part(params['id'])
|
||||||
|
return 200
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue