You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.6 KiB
73 lines
1.6 KiB
var OSU_FILES = [];
|
|
|
|
const global = new Dispatcher();
|
|
|
|
function _removeFile(id) {
|
|
//TODO: Remove from bars too
|
|
let elem = document.getElementById(id);
|
|
const file_id = elem.dataset.index;
|
|
elem.remove();
|
|
|
|
if(file_id!==undefined && OSU_FILES[file_id])
|
|
{
|
|
global.signal("FILE_REMOVE", {id: file_id, osu: OSU_FILES[file_id]});
|
|
OSU_FILES[file_id] = null;
|
|
}
|
|
}
|
|
|
|
const READ_WHOLE_BUFFER = true;
|
|
|
|
function _readfile(event) {
|
|
var input = event.target;
|
|
|
|
if(READ_WHOLE_BUFFER) {
|
|
var reader = new FileReader();
|
|
|
|
reader.onload = () => {
|
|
var osu = new OsuFile();
|
|
osu.LoadString(reader.result).then(result => {
|
|
console.log("Read version "+osu.version);
|
|
if(osu.okay()) {
|
|
//TODO: Push to read osu files
|
|
|
|
OSU_FILES.push(osu);
|
|
global.signal("FILE_ADD", {id: OSU_FILES.length-1, osu: osu});
|
|
} else {
|
|
var er = osu.errors;
|
|
console.log("Parsing .osu file failed: "+JSON.stringify(er));
|
|
//TODO: Signal error
|
|
}
|
|
});
|
|
};
|
|
reader.readAsText(input.files[0]);
|
|
} else {
|
|
var nav = new LineNavigator(input.files[0]);
|
|
}
|
|
}
|
|
|
|
|
|
function _onload() {
|
|
|
|
// --- Set up collapsers --- //
|
|
const collapsers = document.getElementsByClassName('collapse');
|
|
|
|
for(const elem of collapsers) {
|
|
elem.addEventListener('click', function() {
|
|
let block;
|
|
if(this.dataset.collapse) {
|
|
block = document.getElementById(this.dataset.collapse);
|
|
}
|
|
else block = this.parentElement.nextSibling.nextSibling;
|
|
if(block.style.display === "none") {
|
|
removeClass(this, "collapsed");
|
|
block.style.display = "";
|
|
}
|
|
else {
|
|
addClass(this, "collapsed");
|
|
block.style.display = "none";
|
|
}
|
|
}, false);
|
|
}
|
|
// --- End collapsers --- //
|
|
}
|