in luigi/static/visualiser/js/visualiserApp.js [184:232]
function renderSidebar(tasks) {
// tasks is a list of task names
var counts = {};
$.each(tasks, function(i) {
var name = tasks[i];
if (counts[name] === undefined) {
counts[name] = 0;
}
counts[name] += 1;
});
var taskList = [];
$.each(counts, function (name) {
var dotIndex = name.indexOf('.');
var prefix = 'Others';
if (dotIndex > 0) {
prefix = name.slice(0, dotIndex);
}
var prefixList = taskList.find(function (pref) {
return pref.name == prefix;
})
if (prefixList) {
prefixList.tasks.push({name: name, count: counts[name]});
} else {
prefixList = {
name: prefix,
tasks: [{name: name, count: counts[name]}]
}
taskList.push(prefixList);
}
});
taskList.sort(function(a,b){
if (a.name == 'Others') {
if (b.name == 'Others') {
return 0;
}
return 1;
} else if (b.name == 'Others') {
return -1;
}
return a.name.localeCompare(b.name);
});
taskList.forEach(function(p){
p.tasks.sort(function(a,b){
return a.name.localeCompare(b.name);
});
});
return renderTemplate("sidebarTemplate", {"tasks": taskList});
}