[data.ue] added formation list to search bar + fixed proccess time (algo exit first)
This commit is contained in:
parent
9bd58eb460
commit
1ead035f0e
|
@ -76,8 +76,7 @@ gstore.add('is_buf', null);
|
||||||
gstore.add('is_handler', function(e){
|
gstore.add('is_handler', function(e){
|
||||||
|
|
||||||
/* (1) Remove last timeout */
|
/* (1) Remove last timeout */
|
||||||
if( gstore.get.is_to != null )
|
!isNaN(gstore.get.is_to) && clearTimeout(gstore.get.is_to);
|
||||||
clearTimeout(gstore.get.is_to);
|
|
||||||
|
|
||||||
/* (2) Store value in buffer */
|
/* (2) Store value in buffer */
|
||||||
gstore.get.is_buf = e.target.value.trim().toLowerCase();
|
gstore.get.is_buf = e.target.value.trim().toLowerCase();
|
||||||
|
@ -86,27 +85,55 @@ gstore.add('is_handler', function(e){
|
||||||
gstore.get.is_to = setTimeout(function(){
|
gstore.get.is_to = setTimeout(function(){
|
||||||
|
|
||||||
// 1. Fetch elements
|
// 1. Fetch elements
|
||||||
var local_ptr = gstore.get.ues;
|
let local_ptr = gstore.get.ues;
|
||||||
var l = gstore.get.ues.length;
|
let l = gstore.get.ues.length;
|
||||||
|
let buf = gstore.get.is_buf.replace(/[.?*+^$[\]\\(\){}|-]/g, "\\$&"); // Escape errorful regex characters
|
||||||
|
|
||||||
// 2. For each element
|
// 2. For each element
|
||||||
for( var e = 0 ; e < l ; e++ ){
|
main_loop: for( let e = 0 ; e < l ; e++ ){
|
||||||
|
|
||||||
// 2.1. Show by default
|
// 2.1. Set visible by default
|
||||||
var element = document.querySelector('section[data-id=\''+local_ptr[e].code+'\']');
|
let element = document.querySelector('section[data-id=\''+local_ptr[e].code+'\']');
|
||||||
if( !element ) continue;
|
|
||||||
|
if( !(element instanceof Element) )
|
||||||
|
continue;
|
||||||
|
|
||||||
element.remClass('search-hidden');
|
element.remClass('search-hidden');
|
||||||
|
|
||||||
// 2.2. Extract name components
|
// 2.2. Empty text -> let visible
|
||||||
var code = local_ptr[e].code.trim().toLowerCase();
|
if( buf.length == 0 )
|
||||||
var label = local_ptr[e].label.trim().toLowerCase();
|
continue;
|
||||||
|
|
||||||
// 2.3. Hide if does not match
|
// 2.3. Extract name components
|
||||||
var match_offset = gstore.get.is_buf.length == 0 || code.search(gstore.get.is_buf) + label.search(gstore.get.is_buf);
|
let code = local_ptr[e].code.toLowerCase();
|
||||||
|
let label = local_ptr[e].label.toLowerCase();
|
||||||
|
let forms = local_ptr[e].formations;
|
||||||
|
|
||||||
if( match_offset <= -2 )
|
// 2.4-1. Match code -> let visible
|
||||||
element.addClass('search-hidden');
|
if( code.search(buf) >= 0 )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// 2.4-2. Match label -> let visible
|
||||||
|
if( label.search(buf) >= 0 )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// 2.4-3. Check for each formation
|
||||||
|
for( let f of forms ){
|
||||||
|
|
||||||
|
let fetched_form = gstore.get.form_by_id(f);
|
||||||
|
|
||||||
|
// if formation not found -> ignore
|
||||||
|
if( fetched_form == null )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// if formation LABEL matches -> let visible
|
||||||
|
if( fetched_form.labelForm.toLowerCase().search(buf) >= 0 )
|
||||||
|
continue main_loop;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXXX. Hide all that did not match
|
||||||
|
element.addClass('search-hidden');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue