input {
background-color: var(--lighter-background);
border: none;
- padding: 12px;
+ padding: 12px 24px 12px 24px;
border-radius: 15px;
color: var(--green-background);
+ font-size: 16px;
+ font-family: "Sansita", sans-serif;
}
input:focus {
#songFilterInputs {
display: flex;
+ justify-content: space-between;
+ margin: 0 0 20px 0;
+
+ input {
+ width: 33%;
+ }
}
-#songFilterInputs * {
- margin: 10px;
+#filterDBImage, #updateSongsButton, #addSongButton {
+ height: 42px;
+ width: 42px;
}
overflow-y: scroll;
height: 50vh;
max-width: 50vw;
- border: 1px solid grey;
- border-radius: 10px;
}
<div id="songFilterInputs">
<input placeholder="Song Name..." id="songFilterName"></input>
- <input placeholder="Aritst Name..." id="songFilterArtist"></input>
- <input id="songFilterInDB" type="checkbox">In DB</input>
- <input id="songFilterNotInDB" type="checkbox">Not In DB</input>
- <button id="" onclick="getSongList()">Update Songs</button>
- <button onclick="openCreationMenu()">Create New Song</button>
+ <input placeholder="Artist Name..." id="songFilterArtist"></input>
+ <img id="filterDBImage" src="/img/music-present.png"></img>
+ <img id="updateSongsButton" src="/img/reload-button.png"></img>
+ <img id="addSongButton" src="/img/add-song-button.png"></img>
</div>
<div id="innerSongList">
</div>
</div>
- <hr>
<div>
<h1><u>File List</u></h1>
<div id="songFileFilterInputs">
})
}
-
+let updateSongsButton = document.getElementById("updateSongsButton")
+updateSongsButton.addEventListener("click", (_) => { getSongList() } )
/**
* SONG FILTERING LOGIC
**/
let songFilterName = document.getElementById("songFilterName")
let songFilterArtist = document.getElementById("songFilterArtist")
-let songFilterInDB = document.getElementById("songFilterInDB")
-let songFilterNotInDB = document.getElementById("songFilterNotInDB")
+
+let filterDBImage = document.getElementById("filterDBImage")
+let dbFilterState = "inDB"
+
/**
* Get the current state of filters, with fields NameFilter, ArtistFilter, DBFilter
filterStates.NameFilter = songFilterName.value.toLowerCase()
filterStates.ArtistFilter = songFilterArtist.value.toLowerCase()
- filterStates.DBFilter = songFilterInDB.checked
- filterStates.NotDBFilter = songFilterNotInDB.checked
+ filterStates.DBFilter = dbFilterState == "inDB"
+ filterStates.NotDBFilter = dbFilterState == "notInDB"
return filterStates
}
songFilterName.oninput = (event) => {updateSongListWithFilter(event)}
songFilterArtist.oninput = (event) => {updateSongListWithFilter(event)}
-songFilterInDB.oninput = (event) => {updateSongListWithFilter(event)}
-songFilterNotInDB.oninput = (event) => {updateSongListWithFilter(event)}
+
+filterDBImage.addEventListener("click", (_) => {
+ if (dbFilterState == "inDB") {
+ dbFilterState = "notInDB"
+ filterDBImage.src = "/img/music-not-present.png"
+ }
+ else {
+ dbFilterState = "inDB"
+ filterDBImage.src = "/img/music-present.png"
+ }
+
+ updateSongListWithFilter(_)
+})
+
/**
* EDIT MENU FOR SONGS
let createSongDisplayTrackName = document.getElementById("createSongDisplayTrackName")
let createSongCreateButton = document.getElementById("createSongCreateButton")
+let addSongButton = document.getElementById("addSongButton")
+
+addSongButton.addEventListener("click", (_) => { openCreationMenu() })
+
// making a song -> I want to make clear that there is a strong lack of formatting checking anywhere
async function createNewSong() {