// ====================================================================== // // AAI LOGIN WITH SHIBBOLETH HANDLING MULTIPLE ORGANIZATIONS // // javascript functions for mode = "boxes" // // License: GNU GPL 3.0 // Source: https://git-repo.iml.unibe.ch/iml-open-source/login-aai // ====================================================================== // ---------------------------------------------------------------------- // VARS // ---------------------------------------------------------------------- var oFilter = document.getElementById('filterbox'); var sLsvar = 'aailogin-q'; // ---------------------------------------------------------------------- // FUNCTIONS // ---------------------------------------------------------------------- /** * Apply filter and reduce listed Idps */ function applyfilter(){ if(oFilter){ var q = document.getElementById('filter').value; for(var i=0; i<document.getElementsByClassName('idp').length; i++){ var idp = document.getElementsByClassName('idp')[i]; var bShow=idp.innerText.toLowerCase().indexOf(q.toLowerCase())>=0; if(q==""){ bShow=true; } idp.style.display = bShow ? 'block' : 'none'; document.getElementById('resetfilter').style.display = (q>"") ? 'inline': 'none'; } localStorage.setItem(sLsvar,q); }; } function resetFilter(){ document.getElementById('filter').value=""; applyfilter(); } /** * Enable filter box if static_link is in use * It renders an input field, reads the last search value from local storage * and apllies this filter */ function showFilterBox(){ if(oFilter){ var q=localStorage.getItem(sLsvar); if(!q){ q=''; } oFilter.style.display = 'block'; oFilter.innerHTML='<input type="text" id="filter" placeholder="" onchange="applyfilter()" onkeydown="applyfilter()" onkeyup="applyfilter()" value="'+q+'"/><button id="resetfilter" onclick="resetFilter(); return false;"> X </button>'; applyfilter(); for(var i=0; i<document.getElementsByClassName('idp').length; i++){ var idp = document.getElementsByClassName('idp')[i]; idp.setAttribute("onclick","localStorage.setItem(sLsvar,this.innerText);"); } }; }; // ---------------------------------------------------------------------- // INIT // ---------------------------------------------------------------------- showFilterBox(); // ----------------------------------------------------------------------