MememaView/media_info_presenter.js
2024-05-26 00:52:58 +02:00

93 lines
2.5 KiB
JavaScript

function create_info_table(obj, fields) {
let table = document.createElement('table');
table.classList.add("table", "table-striped");
let header = table.createTHead();
let headerRow = header.insertRow(0);
let cell1 = headerRow.insertCell(0);
cell1.innerHTML = "<b>" + obj[0]["type"] + "</b>";
let cell2 = headerRow.insertCell(1);
cell2.innerHTML = "<b>" + "lang" + "</b>";
let i=0;
let keys = [];
for (let key of fields) {
let new_cell = headerRow.insertCell(i+2);
new_cell.innerHTML = "<b>" + key + "</b>";
keys.push(key);
i = i+1;
}
let last = headerRow.insertCell(i+2);
last.innerHTML = "<b>" + "keep" + "</b>";
let tbody = table.createTBody();
obj.forEach(el => {
let row = tbody.insertRow();
let cell1 = row.insertCell(0);
cell1.innerHTML = el["id"] ;
let cell2 = row.insertCell(1);
cell2.innerHTML = el["language"];
keys.forEach((k,j) => {
let cell_j = row.insertCell(j+2);
cell_j.innerHTML = el[k];
});
let keep = row.insertCell(i+2);
keep.innerHTML = '<input type="checkbox" checked="checked">' ;
});
return table;
}
function create_media_info(data) {
if(Object.keys( data).length < 2) {
return;
}
let info_ct = document.createElement("div");
info_ct.classList.add("container","text-center");
if (data["title"] ) {
let title = document.createElement("div");
title.innerHTML="<b>title:: </b>" + data["title"] ;
info_ct.appendChild(title);
}
let video = document.createElement("div");
video.classList.add("row");
video.appendChild(create_info_table(data["video"], ["codec", "display_dimensions"]))
info_ct.appendChild(video);
let audio = document.createElement("div");
audio.classList.add("row");
audio.appendChild(create_info_table(data["audio"], ["codec", "track_name"]))
info_ct.appendChild(audio);
if ( data["subtitles"] && data["subtitles"].length > 0 ) {
let subs = document.createElement("div");
subs.classList.add("row");
subs.appendChild(create_info_table(data["subtitles"], ["codec"]))
info_ct.appendChild(subs);
}
info_ct.id=data["side"]+"_info";
info_ct.classList.add(data["side"]+"_info");
let info_obj = document.getElementById("info-"+data["side"]);
// New selection so rm convert btn
let btn_div = document.getElementById("convert-button-"+ data["side"]);
btn_div.innerHTML ="";
info_obj.innerHTML = "";
info_obj.appendChild(info_ct);
}
function remove_info(side) {
let info_div = document.getElementById("info-" + side);
if ( info_div) {
info_div.innerHTML = ""
}
}