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 --- // }