Implement play mode as dropdown button

This commit is contained in:
Tyler Vigario
2020-04-27 20:18:28 -07:00
parent 7766b15ea1
commit 504a5786d8
2 changed files with 57 additions and 55 deletions

View File

@ -46,6 +46,13 @@ var last_volume = 0;
var playing = false;
var playPauseBtn = $("#play-pause-btn");
var playModeBtns = {
'one-shot': $('#one-shot-mode-btn'),
random: $('#random-mode-btn'),
repeat: $('#repeat-mode-btn'),
autoplay: $('#autoplay-mode-btn')
};
function request(_url, _data, refresh = false) {
console.log(_data);
$.ajax({
@ -255,27 +262,14 @@ function updateControls(empty, play, mode, volume) {
playPauseBtn.find('[data-fa-i2svg]').removeClass('fa-pause').addClass('fa-play');
}
}
if (mode === "one-shot") {
$("#oneshot-btn").removeClass("btn-secondary").addClass("btn-primary").prop("disabled", true);
$("#repeat-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#random-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#autoplay-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
} else if (mode === "repeat") {
$("#oneshot-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#repeat-btn").removeClass("btn-secondary").addClass("btn-primary").prop("disabled", true);
$("#random-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#autoplay-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
} else if (mode === "random") {
$("#oneshot-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#repeat-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#random-btn").removeClass("btn-secondary").addClass("btn-primary").prop("disabled", false); // This is a feature.
$("#autoplay-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
} else if (mode === "autoplay") {
$("#oneshot-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#repeat-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#random-btn").removeClass("btn-primary").addClass("btn-secondary").prop("disabled", false);
$("#autoplay-btn").removeClass("btn-secondary").addClass("btn-primary").prop("disabled", true);
let otherModes = Object.assign({}, playModeBtns);
delete otherModes[mode];
for (_mode in otherModes) {
otherModes[_mode].removeClass('active');
}
playModeBtns[mode].addClass('active');
if (volume != last_volume) {
last_volume = volume;
if (volume > 1) {
@ -321,6 +315,10 @@ function togglePlayPause() {
}
}
function changePlayMode(mode) {
request('post', {action: mode});
}
// Check the version of playlist to see if update is needed.
setInterval(checkForPlaylistUpdate, 3000);