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>
|
||||
<tbody id="properties"></tbody>
|
||||
</table>
|
||||
<button type="button" onclick="delete_part()">delete part (including children)</button>
|
||||
</div>
|
||||
</td>
|
||||
</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
|
||||
terms = params['terms'].split(" ")
|
||||
terms.keep_if {|term| term.length >= 3}
|
||||
halt 404 if terms.empty?
|
||||
halt 400 if terms.empty?
|
||||
# search in names, description, and category
|
||||
statements = []
|
||||
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.to_json
|
||||
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