-
Hahn Axel (hahn) authoredHahn Axel (hahn) authored
functions.js 2.53 KiB
// ======================================================================
//
// 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();
// ----------------------------------------------------------------------