Skip to content
Snippets Groups Projects
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();

// ----------------------------------------------------------------------