Main/resources/[Developer]/[Max]/myDj/html/js/script.js
2025-06-15 22:49:55 +02:00

351 lines
No EOL
14 KiB
JavaScript

$(document).ready(function() {
$('body').hide()
// .click(function() {
// return;
// });
var btn = $(".PlayButton");
var PlayButton = $("#buttonOne");
var directPlay = $('#directPlay');
var currentSongLabel = '';
var buttonTwo = $('#buttonTwo');
var buttonThree = $('#buttonThree');
var buttonFour = $('#buttonFour');
var buttonFive = $('#buttonFive');
var buttonSix = $('#buttonSix');
var buttonSeven = $('#buttonSeven');
var addToPlaylist = $('#addToPlaylist');
var HighestPlayListId = 0
var isDropDownOpen = false
var perc = 0
btn.click(function() {
$.post('http://myDj/togglePlaystate', JSON.stringify({}));
btn.toggleClass("paused");
PlayButton.toggleClass("paused2")
return false;
});
PlayButton.click(function() {
$.post('http://myDj/togglePlaystate', JSON.stringify({}));
btn.toggleClass("paused");
PlayButton.toggleClass("paused2")
return false;
});
directPlay.click(function() {
$.post('http://myDj/playNewSong', JSON.stringify({
link: $('#linkInput').val()
}));
return;
});
buttonTwo.click(function() {
$.post('http://myDj/rewind', JSON.stringify({}));
$('#timeLineInside').width($('#timeLineInside').width()-(perc*10))
return;
});
buttonThree.click(function() {
$.post('http://myDj/forward', JSON.stringify({}));
$('#timeLineInside').width($('#timeLineInside').width()+(perc*10))
return;
});
buttonFour.click(function() {
$.post('http://myDj/down', JSON.stringify({}));
return;
});
buttonFive.click(function() {
$.post('http://myDj/up', JSON.stringify({}));
return;
});
var AddPlaylist = $('#PlayListAddButton');
AddPlaylist.click(function() {
// console.log($('#CreatePlaylistName').val())
if ($('#CreatePlaylistName').val() != '') {
var newHtml = $('#playlists').html()
// console.log(HighestPlayListId + ' ' + $('#CreatePlaylistName').val())
newHtml += `
<div class="playlist" data-id="${HighestPlayListId}">
<button id="playlist${HighestPlayListId}" class="playlistButton">${$('#CreatePlaylistName').val()}</button>
<div id="songSpace${HighestPlayListId} class="songs" data-id="${HighestPlayListId}" data-displayed="0"></div>
</div>`
$('#playlists').html(newHtml)
$.post('http://myDj/addPlayList', JSON.stringify({
id: HighestPlayListId,
name: $('#CreatePlaylistName').val()
}));
var newHtml = $('#addPlaylist').html()
newHtml += `<p class="addPlaylistButton" data-id="${HighestPlayListId}">${$('#CreatePlaylistName').val()}</p>`
$('#addPlaylist').html(newHtml)
}
return;
});
addToPlaylist.click(function() {
var addPlaylist = $('#addPlaylist')
if (isDropDownOpen) {
isDropDownOpen = false
addPlaylist.animate({height: '0', width: '0'});
setTimeout(function() {
addPlaylist.css('display', 'none');
}, 350);
} else {
console.log('Dropdown open')
isDropDownOpen = true
addPlaylist.css('display', 'block');
addPlaylist.animate({height: '100%', width: '100%'});
}
return;
});
$(document).on('click', '.deleteSongs', function() {
console.log($(this).parent().data('songid') + ' ' + $(this).parent().data('link') + ' ' + $(this).parent().parent().data('id'))
$.post('http://myDj/deleteSong', JSON.stringify({
id: $(this).parent().data('songid'),
playlistId: $(this).parent().parent().data('id')
}));
$(this).parent().remove()
});
$(document).on('click', '.deletePlaylist', function() {
// console.log($(this).parent().parent().data('id'))
$.post('http://myDj/deletePlaylist', JSON.stringify({
id: $(this).parent().parent().data('id'),
}));
if (PlaylistIsVisible) {
songs.remove()
$(this).html('')
}
$(this).parent().remove()
});
$(document).on('click', '.addPlaylistButton', function() {
if ($('#linkInput').val()) {
var i = $(this)
$.getJSON('https://noembed.com/embed?url=', {format: 'json', url: $('#linkInput').val()}, function (data) {
if (data.title) {
console.log(i.data('id'))
$.post('http://myDj/addSongToPlaylist', JSON.stringify({
id: i.data('id'),
link: $('#linkInput').val()
}));
var addPlaylist = $('#addPlaylist')
isDropDownOpen = false
addPlaylist.animate({height: '0', width: '0'});
setTimeout(function() {
addPlaylist.css('display', 'none');
}, 350);
$('#linkInput').val('')
} else {
$.post('http://myDj/noSongtitle', JSON.stringify({}));
}
});
}
});
$(document).on('click', '.song', function() {
// console.log($(this).data('songid') + ' ' + $(this).data('link') + ' ' + $(this).parent().data('id'))
$.post('http://myDj/playSongFromPlaylist', JSON.stringify({
id: $(this).data('id'),
link: $(this).data('link'),
playlistId: $(this).parent().data('id')
}));
});
window.addEventListener('message', (event) => {
const e = event.data
switch (e.type) {
case "open":
$('body').show();
break;
case "getPlaylists":
e.songs.forEach((s, i) => {
$.getJSON('https://noembed.com/embed?url=', {format: 'json', url: s.link}, function (data) {
currentSongLabel = data.title;
s.label = currentSongLabel;
// console.log(s.label)
});
})
setTimeout(function() {
$('#playlists').html('')
var newHtml = $('#playlists').html()
e.playlists.forEach((v) => {
var songsHtml = ''
e.songs.forEach((s, i) => {
// console.log(s.playlist + ' == ' + v.id)
if (s.playlist == v.id) {
songsHtml = songsHtml + `<p class="song" id="song${s.id}" data-songid="${s.id}" data-link="${s.link}">${s.label}<i class="fas fa-trash-alt deleteSongs"></i></p>
`
// // console.log(songsHtml)
}
if (i == (Object.keys(e.songs).length-1)) {
// // console.log(123)
HighestPlayListId = v.id
newHtml += `
<div class="playlist" data-id="${v.id}">
<button id="playlist${v.id}" class="playlistButton">${v.label}<i class="fas fa-trash-alt deletePlaylist"></i></button>
<div id="songSpace${v.id}" class="songs" data-id="${v.id}" data-displayed="0">
${songsHtml}
</div>
</div>`
}
})
})
$('#playlists').html(newHtml)
}, 500);
$('#addPlaylist').html('')
var newHtml = $('#addPlaylist').html()
e.playlists.forEach((v) => {
newHtml += `<p class="addPlaylistButton" data-id="${v.id}">${v.label}</p>`
})
$('#addPlaylist').html(newHtml)
break;
case "updateSeconds":
perc = parseInt($('#timeLineInside').css('max-width'))/e.maxDuration
// console.log($('#timeLineInside').width()+perc)
$('#timeLineInside').width($('#timeLineInside').width()+perc)
if (e.secs > 59) {
var secs = Math.round((e.secs/60-Math.floor(e.secs/60))*60)
var min = Math.floor(e.secs/60)
if (secs < 10 && min < 10) $('#currentTime').text('0' + min + ':0' + secs)
else if (secs > 10 && min < 10) $('#currentTime').text('0' + min + ':' + secs)
else if (secs < 10 && min > 10) $('#currentTime').text(min + ':0' + secs)
else $('#currentTime').text(min + ':' + secs)
} else {
if (e.secs < 10) {
$('#currentTime').text( '00:0' + e.secs)
} else {
$('#currentTime').text( '00:' + e.secs)
}
}
$('#maxTime').text(Math.floor(e.maxDuration/60) + ':' + Math.round((e.maxDuration/60-Math.floor(e.maxDuration/60))*60))
if (e.maxDuration > 59) {
var secs = Math.round((e.maxDuration/60-Math.floor(e.maxDuration/60))*60)
var min = Math.floor(e.maxDuration/60)
if (secs < 10 && min < 10) $('#maxTime').text('0' + min + ':0' + secs)
else if (secs > 10 && min < 10) $('#maxTime').text('0' + min + ':' + secs)
else if (secs < 10 && min > 10) $('#maxTime').text(min + ':0' + secs)
else $('#maxTime').text(min + ':' + secs)
} else {
if (e.maxDuration < 10) {
$('#maxTime').text('00:0' + e.maxDuration)
} else {
$('#maxTime').text('00:' + e.maxDuration)
}
}
break;
case "updateSonginfos":
$.getJSON('https://noembed.com/embed?url=', {format: 'json', url: e.link}, function (data) {
currentSongLabel = data.title;
// whenDone(e.link);
insertSonghistory(e.link, currentSongLabel);
$('#maxTime').text(e.maxDuration)
$('#currentSong').text(currentSongLabel);
});
$('#timeLineInside').width("3%")
break;
default:
// console.log("this event doesn't exist");
break;
}
});
document.addEventListener("keydown", Close);
function Close(event) {
if (event.keyCode === 27) {
$('body').hide()
$.post('http://myDj/close', JSON.stringify({}));
}
}
var songs
var PlaylistIsVisible = false
var currentPlaylistId = 0
$(document).on('click', '.playlist', function() {
songs = $(this).find('.songs')
var bla = songs.find('p')
// console.log(songs.data('id') + ' ' + $(this, '.songs').data('id') + ' | ' + bla.html())
if (songs.data('id') == 'songhistory' && PlaylistIsVisible == false) {
if (songs.data("displayed") == 0) {
songs.css('display', 'block');
songs.css('margin-bottom', '1vh');
currentPlaylistId = songs.data('id')
songs.animate({height: '100%'});
setTimeout(function() {
// console.log('playlistsonghistory is visible')
songs.data("displayed", "1");
PlaylistIsVisible = true
}, 500);
}
} else if ($(this, '.songs').data('id') == songs.data('id') && PlaylistIsVisible == false && bla.html()) {
if (songs.data("displayed") == 0) {
songs.css('display', 'block');
songs.css('margin-bottom', '1vh');
currentPlaylistId = songs.data('id')
songs.animate({height: '100%'});
setTimeout(function() {
// console.log('songs are visible')
songs.data("displayed", "1");
PlaylistIsVisible = true
}, 500);
}
}
});
$(window).click(function(e) {
target = document.getElementById(e.target.id)
// console.log('click1 playlist' + currentPlaylistId + ' ' + target + ' ' + songs + ' ' + PlaylistIsVisible)
if (document.getElementById('playlist' + currentPlaylistId) == target && songs && PlaylistIsVisible) {
songs.animate({height: '0'});
songs.data("displayed", "0");
songs.css('margin-bottom', '0');
PlaylistIsVisible = false
}
});
var outside = document.getElementById('timeLineOutside');
var inside = document.getElementById('timeLineInside');
outside.addEventListener('click', function(e) {
inside.style.width = e.offsetX + "px";
var pct = Math.floor((e.offsetX / outside.offsetWidth) * 100);
// $.post('http://myDj/close', JSON.stringify({
// pct: pct
// }));
}, false);
function insertSonghistory(link, label) {
var elem = $('#songSpacesonghistory');
var html = elem.html()
// console.log('!!!!HIER!!! ' + elem.html())
if (html) {
elem.html(html + '<p id="songsonghistory" data-link="' + link + '">' + label + '<i class="fas fa-trash-alt"></i></p>')
// console.log('song added | 1 | ' + html + '<p id="songsonghistory" data-link="' + link + '">' + label + '<i class="fas fa-trash-alt"></i></p>')
} else {
elem.html('<p id="songsonghistory" data-link="' + link + '">' + label + '<i class="fas fa-trash-alt"></i></p>')
// console.log('song added | 2 | ' + '<p id="songsonghistory" data-link="' + link + '">' + label + '<i class="fas fa-trash-alt"></i></p>')
}
}
});