72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
/* (1) Load professors
|
|
---------------------------------------------------------*/
|
|
/* (1) Initialize list */
|
|
gstore.add('professors', []);
|
|
|
|
/* (2) Get professors */
|
|
api.call('GET professor/1/', { vh: true }, function(rs){
|
|
|
|
// {1} If error -> abort //
|
|
if( rs.error !== 0 )
|
|
return console.log('No professor found, error: '+rs.error);
|
|
|
|
// {2} Store professors //
|
|
console.log(rs);
|
|
gstore.get.professors = rs.professors;
|
|
|
|
});
|
|
|
|
|
|
|
|
/* (2) Manage Instant Search (IS)
|
|
---------------------------------------------------------*/
|
|
/* (1) Define global timeout index */
|
|
gstore.add('is_to', null);
|
|
|
|
|
|
/* (2) Define search value buffer */
|
|
gstore.add('is_buf', null);
|
|
|
|
|
|
/* (3) Define instant search function */
|
|
gstore.add('is_handler', function(e){
|
|
|
|
/* (1) Remove last timeout */
|
|
if( gstore.get.is_to != null )
|
|
clearTimeout(gstore.get.is_to);
|
|
|
|
/* (2) Store value in buffer */
|
|
gstore.get.is_buf = e.target.value.trim().toLowerCase();
|
|
|
|
/* (3) Launch timeout (wait 1s) before filtering */
|
|
gstore.get.is_to = setTimeout(function(){
|
|
|
|
// 1. Fetch elements
|
|
var local_ptr = gstore.get.professors;
|
|
var l = gstore.get.professors.length;
|
|
|
|
// 2. For each element
|
|
for( var e = 0 ; e < l ; e++ ){
|
|
|
|
// 2.1. De-activate by default
|
|
var element = document.querySelector('section[data-id=\''+local_ptr[e].idProfesseur+'\']');
|
|
if( !element ) continue;
|
|
|
|
element.className = 'hidden';
|
|
|
|
// 2.2. Extract name components
|
|
var fname = local_ptr[e].firstName.trim().toLowerCase();
|
|
var lname = local_ptr[e].lastName.trim().toLowerCase();
|
|
|
|
// 2.3. Check if matches
|
|
if( gstore.get.is_buf.length == 0 || fname.search(gstore.get.is_buf) + lname.search(gstore.get.is_buf) > -2 )
|
|
element.className = '';
|
|
|
|
}
|
|
|
|
}, 250);
|
|
|
|
});
|
|
|
|
|