A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: rename playlists -> playlist items import/export

+16 -16
+2 -2
src/facets/tools/export-import/index.html
··· 24 24 </button> 25 25 </div> 26 26 <div class="row"> 27 - <button id="import-playlists" disabled> 28 - <span class="with-icon"><i class="ph-bold ph-playlist"></i> Import playlists</span> 27 + <button id="import-playlist-items" disabled> 28 + <span class="with-icon"><i class="ph-bold ph-playlist"></i> Import playlist items</span> 29 29 </button> 30 30 </div> 31 31 <div class="row">
+6 -6
src/facets/tools/export-import/index.inline.js
··· 12 12 /** @type {HTMLInputElement} */ (document.querySelector("#file")); 13 13 const importTracksBtn = 14 14 /** @type {HTMLButtonElement} */ (document.querySelector("#import-tracks")); 15 - const importPlaylistsBtn = 15 + const importPlaylistItemsBtn = 16 16 /** @type {HTMLButtonElement} */ (document.querySelector( 17 - "#import-playlists", 17 + "#import-playlist-items", 18 18 )); 19 19 const importFacetsBtn = 20 20 /** @type {HTMLButtonElement} */ (document.querySelector("#import-facets")); ··· 78 78 json = null; 79 79 statusEl.hidden = true; 80 80 importTracksBtn.disabled = true; 81 - importPlaylistsBtn.disabled = true; 81 + importPlaylistItemsBtn.disabled = true; 82 82 importFacetsBtn.disabled = true; 83 83 importThemesBtn.disabled = true; 84 84 ··· 100 100 } 101 101 102 102 if (Array.isArray(json?.playlistItems) && json.playlistItems.length > 0) { 103 - importPlaylistsBtn.disabled = false; 103 + importPlaylistItemsBtn.disabled = false; 104 104 } 105 105 106 106 if (Array.isArray(json?.facets) && json.facets.length > 0) { ··· 127 127 } 128 128 }; 129 129 130 - // Import playlists 131 - importPlaylistsBtn.onclick = async () => { 130 + // Import playlist items 131 + importPlaylistItemsBtn.onclick = async () => { 132 132 /** @type {any[]} */ 133 133 const playlistItems = json?.playlistItems; 134 134 if (!Array.isArray(playlistItems) || playlistItems.length === 0) return;
+2 -2
src/facets/tools/v3-import/index.html
··· 18 18 </button> 19 19 </div> 20 20 <div class="row"> 21 - <button id="import-playlists" disabled> 22 - <span class="with-icon"><i class="ph-bold ph-playlist"></i> Import playlists</span> 21 + <button id="import-playlist-items" disabled> 22 + <span class="with-icon"><i class="ph-bold ph-playlist"></i> Import playlist items</span> 23 23 </button> 24 24 </div> 25 25 <div id="status" class="status" hidden></div>
+6 -6
src/facets/tools/v3-import/index.inline.js
··· 18 18 /** @type {HTMLButtonElement} */ (document.querySelector( 19 19 "#import-favourites", 20 20 )); 21 - const importPlaylistsBtn = 21 + const importPlaylistItemsBtn = 22 22 /** @type {HTMLButtonElement} */ (document.querySelector( 23 - "#import-playlists", 23 + "#import-playlist-items", 24 24 )); 25 25 const statusEl = /** @type {HTMLElement} */ (document.querySelector("#status")); 26 26 ··· 45 45 json = null; 46 46 statusEl.hidden = true; 47 47 importFavouritesBtn.disabled = true; 48 - importPlaylistsBtn.disabled = true; 48 + importPlaylistItemsBtn.disabled = true; 49 49 50 50 if (!file) return; 51 51 ··· 65 65 } 66 66 67 67 if (json?.playlists?.data?.length > 0) { 68 - importPlaylistsBtn.disabled = false; 68 + importPlaylistItemsBtn.disabled = false; 69 69 } 70 70 }; 71 71 ··· 95 95 } 96 96 }; 97 97 98 - // Import playlists on button click 99 - importPlaylistsBtn.onclick = async () => { 98 + // Import playlist items on button click 99 + importPlaylistItemsBtn.onclick = async () => { 100 100 /** @type {any[]} */ 101 101 const items = json?.playlists?.data; 102 102 if (!items || items.length === 0) return;