autotools / static /js /explorer-index.js
ABC
Upload 25 files
15b7a79 verified
$(document).ready(function() {
// Check for click events on the navbar burger icon
$(".navbar-burger").click(function() {
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
$(".navbar-burger").toggleClass("is-active");
$(".navbar-menu").toggleClass("is-active");
});
var options = {
slidesToScroll: 1,
slidesToShow: 1,
loop: true,
infinite: true,
autoplay: false,
autoplaySpeed: 3000,
}
// Initialize all div with carousel class
var carousels = bulmaCarousel.attach('.carousel', options);
// Loop on each carousel initialized
for(var i = 0; i < carousels.length; i++) {
// Add listener to event
carousels[i].on('before:show', state => {
console.log(state);
});
}
// Access to bulmaCarousel instance of an element
var element = document.querySelector('#my-element');
if (element && element.bulmaCarousel) {
// bulmaCarousel instance is available as element.bulmaCarousel
element.bulmaCarousel.on('before-show', function(state) {
console.log(state);
});
}
var dropdowns = document.getElementsByClassName('dropdown');
for (let dropdown of dropdowns) {
dropdown.addEventListener('click', function(event) {
event.stopPropagation();
event.preventDefault();
dropdown.classList.toggle('is-active');
});
}
// load and display default models
let qids = getRandomSubarray(num_output_qs);
let [folder , output_data] = read_data('Multimodal Bard');
output_data.addEventListener('load', function() {
refresh_table(qids);
});
[folder , output_data] = read_data('CoT GPT4 (Caption+OCR)');
output_data.addEventListener('load', function() {
refresh_table(qids);
});
// refresh_table(qids);
let dropdown_displays = document.getElementsByClassName('dropdown-display');
let refresh_button = document.getElementById('refresh-qids');
refresh_button.addEventListener('click', function(event) {
qids = getRandomSubarray(num_output_qs);
refresh_table(qids);
});
// let dropdown_displays = document.getElementsByClassName('dropdown-display');
let dropdown_contents = document.getElementsByClassName('dropdown-content');
for (let i = 0; i < dropdown_contents.length; i++) {
// add an <a> tag to the dropdown-content for each key in model_output_folder_list
let dropdown_content = dropdown_contents[i];
for (let name in model_output_folder_list) {
let a = document.createElement('a');
a.classList.add('dropdown-item');
a.innerHTML = '<b> ' + name + ' </b>';
dropdown_content.appendChild(a);
a.addEventListener('click', function(event) {
dropdown_displays[i].innerHTML = name;
let [folder, script_tag] = read_data(name);
script_tag.addEventListener('load', function() {
refresh_table(qids);
});
});
a.style.padding = '0.375em 1em';
}
}
// // create the leaderboard
// let leaderboard = new Tabulator("#score-table", {
// data:score_table, //assign data to table
// layout:"fitDataTable",
// // layout:"fitColumns",
// initialSort:[
// {column:"ALL", dir:"desc"}, //sort by this first
// ],
// autoColumns:true, //create columns from data field names
// });
})
var cache = {};
var num_output_qs = 5;
// var
// dynamically links a js data file
function read_data(model_name) {
console.log('loading data for ' + model_name);
let folder = model_output_folder_list[model_name];
// dynamically link the js file
let script = document.createElement('script');
script.src = './data/results/' + folder + '/data.js';
document.body.appendChild(script);
return [folder, script];
}
function getRandomSubarray(size, arr=null) {
if (arr == null) {
arr = [];
for (let i = 1; i < 1001; i++) {
arr.push(i);
}
}
var shuffled = arr.slice(0), i = arr.length, temp, index;
while (i--) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(0, size);
}
function refresh_table(qids) {
let table = document.getElementById('result-table');
let dropdown_displays = document.getElementsByClassName('dropdown-display');
let model_names = [];
for (let i = 0; i < dropdown_displays.length; i++) {
model_names.push(dropdown_displays[i].innerText);
}
console.log(qids);
console.log(model_names);
while (table.children.length > 3)
table.removeChild(table.lastChild);
for (let qid of qids) {
let row = generate_row(qid, model_names);
// console.log('inserting' + row);
table.insertAdjacentHTML('beforeend', row);
}
}
function generate_row(qid, model_names) {
let responses = [];
for (let model_name of model_names) {
if (model_name in cache)
responses.push(cache[model_name][qid.toString()]);
else
responses.push({'response': ''});
}
let html = `
<div class="level has-text-justified box question-level" style="background: rgba(0, 0, 0, 0.02);">
<div class='leve-item container m-3' style='width: 30%;'>
${create_number(test_data[qid.toString()])}
</div>
<div class='leve-item container m-3' style='width: 30%; white-space: pre-wrap;'>${responses[0]['response']}</div>
<div class='leve-item container m-3' style='width: 30%; white-space: pre-wrap;'>${responses[1]['response']}</div>
</div>`;
return html;
}