Search & Filtering for the achievements overview

Hey there,

I’d like to file a feature request about searching and filtering at the achievements overview.

Thoughts?

P.S.: I nearly referred 50 people, maybe add a new badge :wink:

I was looking for the same thing. Here is a function I made to group the achievements into three blocks and sort the incomplete achievements by progress. Just enter it in the javascript console on the achievements overview.

var sortAchievementsByProgress = function () {

    var root = $x("//div[@class='elements_w_wrapper']")[0];

    var elements = root.children[0].children;

    var started = [];
    for (var i=0; i<elements.length; i++) {
        if (elements[i].children.length===2)
            started.push(elements[i]);
    }

    // best first
    started.sort(function (a,b) {
        var awidth = Number.parseFloat(a.children[1].children[0].style.width);
        var bwidth = Number.parseFloat(b.children[1].children[0].style.width);
        return awidth>bwidth ? -1 : (awidth<bwidth ? +1 : 0);
    });

    root.innerHTML = "<div class='elements_wrapper'></div><div class='elements_wrapper'></div><div class='elements_wrapper'></div>";
    
    for (var i=0; i<started.length; i++) {
        root.children[0].appendChild(started[i]);

        var span = document.createElement("SPAN");
        span.innerText = Number.parseInt(started[i].children[1].children[0].style.width)+" %";
        span.className = "progress_bar_text ng-binding";
        started[i].appendChild(span);
    }

    for (var i=0; i<elements.length; i++) {
        if (elements[i].children.length===1) {
            if (elements[i].className==="element ng-scope locked")
                root.children[2].appendChild(elements[i]);
            else
                root.children[1].appendChild(elements[i]);
        }
    }
}();
1 Like

The achievement page have been reworked quite a lot recently and you should see that new page next week :).

1 Like