async function search_fetch()

in htdocs/js/boxer.js [329:397]


async function search_fetch(obj) {
    if (search_query == previous_query) return;
    previous_query = search_query;
    obj.innerHTML = "";
    let res = await GET('api/users.json?query=' + search_query);
    history.pushState({}, "Search Results", '?action=search&query=' + search_query);
    if (res.results) {
        if (res.results.length == 0) {
            obj.innerText = `No results matching ${search_query} could be found.`;
        }
        for (let i = 0; i < res.results.length; i++) {
            let result = res.results[i];
            let tr = document.createElement('tr');

            let td;
            // ASF ID
            td = document.createElement('td');
            td.innerText = result.asf_id;
            tr.appendChild(td);

            // GitHub ID
            td = document.createElement('td');
            td.innerText = result.github_id;
            tr.appendChild(td);

            // GitHub MFA
            td = document.createElement('td');
            td.style.textAlign = 'center';
            let img = document.createElement('img');
            img.style.height = "16px";
            if (result.github_mfa) {
                img.setAttribute('src', 'images/mfa_enabled.png');
            } else {
                img.setAttribute('src', 'images/mfa_disabled.png');
            }
            td.appendChild(img);
            tr.appendChild(td);

            // GitHub repos
            td = document.createElement('td');
            td.style.textAlign = 'right';
            td.innerText = result.repositories.length;
            tr.appendChild(td);

            // GitHub status
            td = document.createElement('td');
            td.innerText = "Accounts linked";
            if (!result.github_id || result.github_id.length == 0) {
                td.innerHTML = "Not authed on GitHub <sup>[1]</sup>";
            }
            else if (result.github_invited == false) {
                td.innerHTML = "Not part of GiHub org <sup>[2]</sup>";
            } else if (result.github_mfa == false) {
                td.innerHTML= "MFA not enabled on GitHub <sup>[3]</sup>";
            }
            tr.appendChild(td);

            // Admin links
            td = document.createElement('td');
            let a_lock = document.createElement('a');
            a_lock.innerText = "lock account";
            a_lock.href = `javascript:void(lock_account('${result.asf_id}'));`
            td.appendChild(a_lock);
            tr.appendChild(td);

            obj.appendChild(tr);
        }
    }
}