mux.HandleFunc("/api/db_status_update", DBwrapper.GetDBStatus)
mux.HandleFunc("/api/renameSong", DBwrapper.UpdateSongsFilename)
mux.HandleFunc("/api/updateSong", DBwrapper.UpdateSongStats)
+ mux.HandleFunc("/api/renameSongRaw", DBwrapper.RenameFileRaw)
mux.HandleFunc("/api/getSongFiles", DBwrapper.GetSongFiles)
mux.Handle("/", http.FileServer(http.Dir("./public/")))
}
w.Write(b)
}
+
+type RenameFileRaw struct {
+ OldFileName string
+ NewFileName string
+}
+
+func (dbw *DBWrapper) RenameFileRaw(w http.ResponseWriter, r *http.Request) {
+ if r.Method != "POST" {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+
+ rename := RenameFileRaw{}
+ json.NewDecoder(r.Body).Decode(&rename)
+
+ err := os.Rename(
+ filepath.Join(dbw.PathToSongs, rename.OldFileName),
+ filepath.Join(dbw.PathToSongs, rename.NewFileName),
+ )
+
+ if err != nil {
+ panic(err)
+ }
+
+ w.WriteHeader(http.StatusOK)
+}
for (let filename of body.SongFileList) {
let li = document.createElement("li")
li.innerText = filename
+ li.onclick = (event) => { renameFileItself(event) }
songFileList.appendChild(li)
}
get_updated_status()
//await fetch("https://binb.sis50.nl/reloadRooms")
}
+
+async function renameFileItself(event) {
+ let oldFilename = event.srcElement.innerText
+ let newFile = prompt("Change the file name", oldFilename)
+
+ await fetch("/api/renameSongRaw", {
+ method: "POST",
+ body: JSON.stringify({
+ OldFileName: oldFilename,
+ NewFileName: newFile
+ })
+ })
+
+ get_updated_status()
+}