From d53e81a83ff8c691a10c3f416404b31a9f7b6d64 Mon Sep 17 00:00:00 2001 From: 2weiEmu Date: Tue, 2 Jun 2026 17:56:48 +0200 Subject: [PATCH] updated: filtering done --- public/js/index.js | 30 +++++++++++++++++- songmanager | Bin 11691100 -> 11691100 bytes ...+La+La+La+La).m4a => A touch of class.m4a} | 0 .../songs/{AC_DC_Thunderstruck.m4a => null} | 0 ...ce Girls_Mama.m4a => spice_girls_mama.m4a} | 0 5 files changed, 29 insertions(+), 1 deletion(-) rename testing/songs/{A Touch Of Class~Pete Konemann_Around+the+World+(La+La+La+La+La).m4a => A touch of class.m4a} (100%) rename testing/songs/{AC_DC_Thunderstruck.m4a => null} (100%) rename testing/songs/{Spice Girls_Mama.m4a => spice_girls_mama.m4a} (100%) diff --git a/public/js/index.js b/public/js/index.js index 5a2b537..b153b48 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -10,9 +10,21 @@ function sleep(ms) { */ let songFileList = [] let innerSongFileList = document.getElementById("innerSongFileList") +let songFileFilterName = document.getElementById("songFileFilterName") -function renameSongFile(songFileName) { +async function renameSongFile(songFileName) { + + let newSongFileName = prompt("What is the new file name you want?", songFileName) + // TODO: make some kind of check that it's a valid URL + // + let response = await fetch("/api/files/rename/" + songFileName + "/" + newSongFileName, { + method: "PUT" + }) + + if (response.status != 200) { + alert("Failed to update the file's name... harass admin") + } } /** @@ -47,6 +59,22 @@ function makeSongFileList(songFiles, appendElement) { } } +songFileFilterName.oninput = (_) => { filterSongFileList() } + +function filterSongFileList() { + console.log("called") + let fileFilter = songFileFilterName.value + + let filteredFileList = [...songFileList] + + filteredFileList = filteredFileList.filter((v, _i, _a) => { + return v.toLowerCase().includes(fileFilter.toLowerCase()) + }) + + innerSongFileList.innerHTML = "" + makeSongFileList(filteredFileList, innerSongFileList) +} + /** * Get the list of all named song files (raw filenames) using the API * The API endpoint is /api/files/get diff --git a/songmanager b/songmanager index 655e49eb710815f295b2fc9ad105a266446d6fde..5282f6f65a260063fde7f2270362157045bca602 100755 GIT binary patch delta 1047 zcmca};v_2wZ^+@VPmN0U2nZ=iPfQOtFv#&UD>u$c)OR+CEH*84uJDV@OD_q_cJVXu zkJK*?@(VMK$VfKI%gd>9G_K5!EYHyouS$*#%MH&C472pgEYZ!*D9tHhU}0cj5Mf|o zU}j)oaQ6#kP&J8SnxD2uuzt71qX%0THLWa|9;Kg?nPg_7-~5`t{WU*h`)hut_SgK( z?XUS++F$dtw!h|QYk$qp-u{}Oqy05MXZve@uJ+gb-0iRVdD>s|^R~a{=WBn>57H~p z{+eH~{WZT(`)hvT_SgI(?XUSo+h6mGwZG;UZ-31%(f*oWvi&u`RQqdw>Gs$BGVQPV zW!qo#%eBAemv4W~uh9OQU$Ol)zf${ae&zPp{3`9Q`BmFr^Q*PL=2vfj&9Bk^nqRa1 zHNRH-Ykuwa*Zex|ulaS`U-Rp=zvkC(f6Z^u{+i#g{WZT)`)hvV_SgI-?XUSw+h6mW zwZG;!Z-32i(f*p>vi&u`Rr_mx>-N|DHtnzZZQEb-+qJ*uw{L&V@6i65-?9BQzf=2b ze&_br{4VXU`CZ#z^Siab=6B!zn%_exRLso4$k5o-!o);3(Im~-#M0a_*(AwyduKz5 zFtY}-P>QiZVp58Qg?W;tL8@g+Vp>{qvRQJ9X|kzl+H}7R4>4XdT?3;KLt`sb3o8?o z_QDL0_QDL$_QDLW_QDMB_QDLG_QDL`_QDLm_QDMR_QH&S_QH(7_QH&y_QH(d_QH&i z_QH(N_QH&?_QH(t_QH&a_QH(F_QH&)_QH(l_QH&q_QH(V_QH&~_QH(#_QH&W_QH(B z_QH&$_QH(h_QH&m_QH(R_QH&`_QH(x_QH&e_QH(J_QH&;_QH(p_QH&u_QH(Z_QH(3 z_QH((_QH&U_QH(9_QH&!_QH(f?S&a7OcFE;j_HLN9{TNKEhX(@Ev4;ZEoJRuE#>WE zEfwuzEtTzJEmiGeE!FK}Ej8_8Ew$}pEp_c;E%ohUEe-8rEsgDBElurWEzRv>EiLV0 zEv@ZhEp6>$E$!`MEgkJ*EuHOREnV$mE#2*6Ej{gGExqkxEq(1`E&c6cEfdzi?z&Z7i*c_F4i)qU94qpyI9M- zcCnWE?P4tp+QnKHwu`kaY8Pu++%DF#q+P6KX}eg4mi6soEgQCrwQO{I007&Klr{hW delta 1047 zcmca};v_2wZ^+@V&j~P1c1q7G_A@RGcd^iQ3iNRE(yuaijjGJ>$qCeT_cr!R$*u4( zNz*S5@(VMK$VfKI%gd>9G_K5!EYHz5H_!G{+geu{WU*x z`)hud_SgKZ?XUUS+F$dtx4-7+Xn)Pm+5VcJtNk@Ucl&F8p7z)LyzQ^~`PyIegY*it zzvdTgf6Xt{{+eI7{WZTx`)hvD_SgJk?XUU8+h6lbw7=$;Y=6x!)&81ay8Si3O#5qo z+4k4`a_z7A<=bELE407nS8RXHuhjmUU%CA?ze@XSe%1EZ{A%s5`PJKB^J}!f=GSb0 z&9Bw|nqRy9HNQ^#YkuAK*Zg|zule=cU-KKZzvee=f6Z^y{+i#o{WZTy`)hvF_SgJo z?XUUG+h6lrw7=%JY=6yf)&82_y8Si3P5Wzp+xFM|cI~hE?b~1TJG8&%cWi&n@6`U9 z-?{xYzf1dTe%JQb{BG^9`Q5j_=JyZ^6*D!mFfueTHZavqN-<7JF-%IbFtRY;-q}zh z%&dVdWRhr-l4Ou(Xlam?Y>;A_Xl!AgY+z(!XkeLaJl!wDLyXr{*T^Eo$k58f*vi1P zy)eV0y)eVGy)eV8y)eVOy)eV4y)eVKy)eVCy)eVSy)Yx7y)YxNy)YxFy)YxVy)YxB zy)YxRy)YxJy)YxZy)Yx9y)YxPy)YxHy)YxXy)YxDy)YxTy)YxLy)Yxby)Yx8y)YxO zy)YxGy)YxWy)YxCy)YxSy)YxKy)Yxay)YxAy)YxQy)YxIy)YxYy)YxEy)YxUy)YxM zy)Yxcy)dJoy)dJ&y)dJwy)dJAdtpWilLXCzV|rnRhkmEOL@Ck zOGUd_OJ%!QOI5pAOLe!i?z&Y7i*c@F4i)y zU94q(yI9MDcCnU)?P4v9+QnKHw~MtbX%}l*+Ah|ztX-^SdAnH4igvM