Turned "search in notes" into "has docs". Added cool icons. Fixed animation of No results.

master
Davide Bongiovanni 6 years ago
parent 005ea98f59
commit 257a8d9754

@ -131,31 +131,30 @@ def query(filter_dummy, query):
kw_dict["kw" + str(i)] = keywords[i] kw_dict["kw" + str(i)] = keywords[i]
s = 'select p.id,partno,description, c.name || l.name as location_descriptor from parts as p inner join locations as l on p.location_id = l.id inner join containers as c on l.container_id = c.id where ' s = 'select p.id,partno,description, c.name || l.name as location_descriptor from parts as p inner join locations as l on p.location_id = l.id inner join containers as c on l.container_id = c.id where '
if filter['l']:
if filter['l'] == 'true':
s += '(' s += '('
for i in range(len(keywords)): for i in range(len(keywords)):
s += 'LOWER(l.name) like LOWER(:kw'+ str(i) +') AND ' s += 'LOWER(l.name) like LOWER(:kw'+ str(i) +') AND '
s = s[:-5] s = s[:-5]
s += ') OR ' s += ') OR '
if filter['p']: if filter['p'] == 'true':
s += '(' s += '('
for i in range(len(keywords)): for i in range(len(keywords)):
s += 'LOWER(partno) like LOWER(:kw'+ str(i) +') AND ' s += 'LOWER(partno) like LOWER(:kw'+ str(i) +') AND '
s = s[:-5] s = s[:-5]
s += ') OR ' s += ') OR '
if filter['d']: if filter['d'] == 'true':
s += '(' s += '('
for i in range(len(keywords)): for i in range(len(keywords)):
s += 'LOWER(description) like LOWER(:kw'+ str(i) +') AND ' s += 'LOWER(description) like LOWER(:kw'+ str(i) +') AND '
s = s[:-5] s = s[:-5]
s += ') OR ' s += ') OR '
if filter['n']: if filter['n'] == 'true':
s += '(' s = s[:-4]
for i in range(len(keywords)): s += "AND (datasheet='' IS NOT FALSE) IS FALSE OR "
s += 'LOWER(notes) like LOWER(:kw'+ str(i) +') AND '
s = s[:-5]
s += ') OR '
s = s[:-4] + ';' s = s[:-4] + ';'
print(s)
s = text(s) s = text(s)
r = db_engine.execute(s, kw_dict) r = db_engine.execute(s, kw_dict)
l = [] l = []

@ -169,13 +169,14 @@ function show_part_info(partID) {
} }
function perform_query() { function perform_query() {
$('#no-results').stop();
$('#no-results').css("opacity", 0); $('#no-results').css("opacity", 0);
var query = $('.search-bar').val(); var query = $('.search-bar').val();
var data = { var data = {
l:$('#type').is(':checked'), l:$('#type').is(':checked'),
p:$('#partno').is(':checked'), p:$('#partno').is(':checked'),
d:$('#description').is(':checked'), d:$('#description').is(':checked'),
n:$('#notes').is(':checked') n:$('#has-docs').is(':checked')
}; };
filter = '0'; filter = '0';
$("#results").find("tr:not(:first)").remove(); // Delete all table rows $("#results").find("tr:not(:first)").remove(); // Delete all table rows
@ -192,10 +193,7 @@ function perform_query() {
$('#no-results').animate({opacity:1},2000); $('#no-results').animate({opacity:1},2000);
} }
}).fail(function() { }).fail(function() {
var newResults = '<div class="results">'; $('#no-results').animate({opacity:1},2000);
newResults += '<h3>No results.</h3>';
newResults += '</div>';
$('.results').replaceWith(newResults);
console.log( "Query failed" ); console.log( "Query failed" );
}); });
} }
@ -222,7 +220,7 @@ $(document).ready(function() {
if ( !$('#location').is(':checked') if ( !$('#location').is(':checked')
&& !$('#partno').is(':checked') && !$('#partno').is(':checked')
&& !$('#description').is(':checked') && !$('#description').is(':checked')
&& !$('#notes').is(':checked')) && !$('#has-docs').is(':checked'))
$(this).prop('checked', true); $(this).prop('checked', true);
else else
perform_query(); perform_query();

@ -59,7 +59,6 @@ input[type=text].search-bar {
padding: 10pt 15pt 10pt 15pt; padding: 10pt 15pt 10pt 15pt;
margin-top: 10pt; margin-top: 10pt;
margin-bottom: 10pt; margin-bottom: 10pt;
border-radius: 2pt;
display: inline-block; display: inline-block;
} }
@ -81,7 +80,6 @@ input[type=checkbox]{
} }
input[type=checkbox] + label.toggle-btn { input[type=checkbox] + label.toggle-btn {
border-radius: 3pt;
display: inline-block; display: inline-block;
padding: 5pt; padding: 5pt;
color: #D7E2E2; color: #D7E2E2;
@ -89,7 +87,8 @@ input[type=checkbox] + label.toggle-btn {
margin-bottom: 6pt; margin-bottom: 6pt;
margin-left: 3pt; margin-left: 3pt;
margin-right: 3pt; margin-right: 3pt;
width: 100pt; width: 80pt;
line-height: 300%;
text-align: center; text-align: center;
border: 1pt solid #D7E2E2; border: 1pt solid #D7E2E2;
transition: 0.2s; transition: 0.2s;

@ -22,10 +22,10 @@
<div class="filter-concontainertainer"> <div class="filter-concontainertainer">
<div class="filter-container"> <div class="filter-container">
<p>Search in:</p> <p>Search in:</p>
<input type="checkbox" class="checkbox" id="location"></input><label class="toggle-btn" for="location">Locations</label> <input type="checkbox" class="checkbox" id="location"></input><label class="toggle-btn" for="location">Locations<br/><i class="fa fa-map" style="font-size:28pt"></i></label>
<input type="checkbox" class="checkbox" id="partno" checked></input><label class="toggle-btn" for="partno">Part Number</label> <input type="checkbox" class="checkbox" id="partno" checked></input><label class="toggle-btn" for="partno">Part Number<br/><i class="fa fa-hashtag" style="font-size:28pt"></i></label>
<input type="checkbox" class="checkbox" id="description" checked></input><label class="toggle-btn" for="description">Description</label> <input type="checkbox" class="checkbox" id="description" checked></input><label class="toggle-btn" for="description">Description<br/><i class="fa fa-edit" style="font-size:28pt"></i></label>
<input type="checkbox" class="checkbox" id="notes" checked></input><label class="toggle-btn" for="notes">Notes</label> <input type="checkbox" class="checkbox" id="has-docs"></input><label class="toggle-btn" for="has-docs">Has docs<br/><i class="fa fa-paperclip" style="font-size:28pt"></i></label>
</div> </div>
</div> </div>
<table id="results"> <table id="results">

Loading…
Cancel
Save