1.8 display changes, folder picker
This commit is contained in:
parent
ed43a7875d
commit
c79720b923
18 changed files with 1627 additions and 1165 deletions
488
js/ui-ready.js
Normal file
488
js/ui-ready.js
Normal file
|
@ -0,0 +1,488 @@
|
|||
$(document).ready(function () {
|
||||
// Tabs
|
||||
$(".tabcontent").hide(); //Hide all content
|
||||
if ($.cookie('username') == null) {
|
||||
$('ul.tabs li a').each(function () {
|
||||
if ($(this).attr("href") == '#tabPreferences') {
|
||||
$(this).addClass("active"); //Add "active" class to selected tab
|
||||
}
|
||||
});
|
||||
$("#tabPreferences").show(); //Show first tab content
|
||||
loadTabContent('#tabPreferences');
|
||||
} else {
|
||||
if (window.location.hash) {
|
||||
var hash = window.location.hash;
|
||||
$('ul.tabs li a').each(function () {
|
||||
if ($(this).attr("href") == hash) {
|
||||
$(this).addClass("active"); //Add "active" class to selected tab
|
||||
}
|
||||
});
|
||||
$(hash).show(); //Fade in the active ID content
|
||||
loadTabContent(hash);
|
||||
} else {
|
||||
$("ul.tabs li:first a").addClass("active").show(); //Activate first tab
|
||||
$(".tabcontent:first").show(); //Show first tab content
|
||||
var firstTab = $("ul.tabs li:first a").attr("href");
|
||||
loadTabContent(firstTab);
|
||||
}
|
||||
}
|
||||
|
||||
// Tabs - Click Event
|
||||
$("ul.tabs li a").click(function () {
|
||||
$("ul.tabs li a").removeClass("active"); //Remove any "active" class
|
||||
$(this).addClass("active"); //Add "active" class to selected tab
|
||||
$(".tabcontent").hide(); //Hide all tab content
|
||||
|
||||
var activeTab = $(this).attr("href"); //Find the href attribute value to identify the active tab + content
|
||||
$(activeTab).show(); //Fade in the active ID content
|
||||
loadTabContent(activeTab);
|
||||
});
|
||||
|
||||
// Ajax Loading Screen
|
||||
$(".toploading").ajaxStart(function () {
|
||||
$(this).show();
|
||||
});
|
||||
$(".toploading").ajaxStop(function () {
|
||||
$(this).hide();
|
||||
});
|
||||
|
||||
// Keyboard shortcuts
|
||||
$(document).keydown(function (e) {
|
||||
var source = e.target.id;
|
||||
if (source != 'Search' && source != 'ChatMsg') {
|
||||
var unicode = e.charCode ? e.charCode : e.keyCode;
|
||||
// a-z
|
||||
if (unicode >= 65 && unicode <= 90) {
|
||||
var key = findKeyForCode(unicode);
|
||||
var el = '#index_' + key.toUpperCase();
|
||||
$('#Artists').stop().scrollTo(el, 400);
|
||||
// right arrow
|
||||
} else if (unicode == 39 || unicode == 176) {
|
||||
var next = $('#CurrentPlaylistContainer tr.playing').next();
|
||||
if (!next.length) next = $('#CurrentPlaylistContainer li').first();
|
||||
changeTrack(next);
|
||||
// back arrow
|
||||
} else if (unicode == 37 || unicode == 177) {
|
||||
var prev = $('#CurrentPlaylistContainer tr.playing').prev();
|
||||
if (!prev.length) prev = $('#CurrentPlaylistContainer tr').last();
|
||||
changeTrack(prev);
|
||||
// spacebar
|
||||
} else if (unicode == 32 || unicode == 179 || unicode == 0179) {
|
||||
playPauseSong();
|
||||
} else if (unicode == 36) {
|
||||
$('#Artists').stop().scrollTo('#auto', 400);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Main Click Events
|
||||
// Albums Click Event
|
||||
$('#MusicFolders').live('change', function () {
|
||||
var folder = $(this).val();
|
||||
loadArtists(folder, true);
|
||||
$.cookie('MusicFolders', folder, { expires: 365 });
|
||||
});
|
||||
$('#ArtistContainer li.item').live('click', function () {
|
||||
$('#AutoAlbumContainer li').removeClass('selected');
|
||||
$('#ArtistContainer li').removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
getAlbums($(this).attr("id"), '', '#AlbumRows');
|
||||
});
|
||||
$('#BottomIndex li a').live('click', function () {
|
||||
var el = '#index_' + $(this).text();
|
||||
$('#Artists').stop().scrollTo(el, 400);
|
||||
return false;
|
||||
});
|
||||
$('#AutoAlbumContainer li.item').live('click', function () {
|
||||
$('#AutoAlbumContainer li').removeClass('selected');
|
||||
$('#ArtistContainer li').removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
getAlbumListBy($(this).attr("id"));
|
||||
});
|
||||
$('tr.album a.play').live('click', function (e) {
|
||||
var albumid = $(this).parent().parent().attr('childid');
|
||||
var artistid = $(this).parent().parent().attr('parentid');
|
||||
getAlbums(albumid, 'autoplay', '#CurrentPlaylistContainer');
|
||||
return false;
|
||||
});
|
||||
$('tr.album a.add').live('click', function (e) {
|
||||
var albumid = $(this).parent().parent().attr('childid');
|
||||
var artistid = $(this).parent().parent().attr('parentid');
|
||||
getAlbums(albumid, 'add', '#CurrentPlaylistContainer');
|
||||
return false;
|
||||
});
|
||||
$('tr.album a.download').live('click', function (event) {
|
||||
var itemid = $(this).parent().parent().attr('childid');
|
||||
downloadItem(itemid);
|
||||
return false;
|
||||
});
|
||||
$('tr.album a.rate').live('click', function (event) {
|
||||
var itemid = $(this).parent().parent().attr('childid');
|
||||
rateSong(itemid, 5);
|
||||
$(this).removeClass('rate');
|
||||
$(this).addClass('favorite');
|
||||
return false;
|
||||
});
|
||||
$('tr.album a.favorite').live('click', function (event) {
|
||||
var itemid = $(this).parent().parent().attr('childid');
|
||||
rateSong(itemid, 0);
|
||||
$(this).removeClass('favorite');
|
||||
$(this).addClass('rate');
|
||||
return false;
|
||||
});
|
||||
$('tr.album').live('click', function (e) {
|
||||
var albumid = $(this).attr('childid');
|
||||
var artistid = $(this).attr('parentid');
|
||||
getAlbums(albumid, '', '#AlbumRows');
|
||||
return false;
|
||||
});
|
||||
|
||||
// Track - Click Events
|
||||
// Multiple Select
|
||||
$('.noselect').disableTextSelect();
|
||||
var lastChecked = null;
|
||||
$('table.songlist tr.song').live('click', function (event) {
|
||||
var checkboxclass = 'table.songlist tr.song';
|
||||
var songid = $(this).attr('childid');
|
||||
var albumid = $(this).attr('parentid');
|
||||
if (!event.ctrlKey) {
|
||||
$(checkboxclass).removeClass('selected');
|
||||
}
|
||||
if ($(this).hasClass('selected')) {
|
||||
$(this).removeClass('selected');
|
||||
} else {
|
||||
$(this).addClass('selected');
|
||||
}
|
||||
if (!lastChecked) {
|
||||
lastChecked = this;
|
||||
return;
|
||||
}
|
||||
if (event.shiftKey) {
|
||||
var start = $(checkboxclass).index(this);
|
||||
var end = $(checkboxclass).index(lastChecked);
|
||||
for (i = Math.min(start, end); i <= Math.max(start, end); i++) {
|
||||
$(checkboxclass).eq(i).addClass('selected');
|
||||
}
|
||||
}
|
||||
lastChecked = this;
|
||||
});
|
||||
// Double Click
|
||||
$('table.songlist tr.song').live('dblclick', function (e) {
|
||||
e.preventDefault();
|
||||
//$(this).addClass('playing').siblings().removeClass('playing');
|
||||
var songid = $(this).attr('childid');
|
||||
var albumid = $(this).attr('parentid');
|
||||
playSong('', this, songid, albumid);
|
||||
});
|
||||
$('table.songlist tr.song a.play').live('click', function (event) {
|
||||
var songid = $(this).parent().parent().attr('childid');
|
||||
var albumid = $(this).parent().parent().attr('parentid');
|
||||
playSong($(this).parent().parent(), songid, albumid);
|
||||
return false;
|
||||
});
|
||||
$('table.songlist tr.song a.add').live('click', function (event) {
|
||||
var track = $(this).parent().parent();
|
||||
$(track).clone().appendTo('#CurrentPlaylistContainer');
|
||||
return false;
|
||||
});
|
||||
$('table.songlist tr.song a.remove').live('click', function (event) {
|
||||
var track = $(this).parent().parent();
|
||||
$(track).remove();
|
||||
refreshRowColor();
|
||||
return false;
|
||||
});
|
||||
$('table.songlist tr.song a.rate').live('click', function (event) {
|
||||
var songid = $(this).parent().parent().attr('childid');
|
||||
rateSong(songid, 5);
|
||||
$(this).removeClass('rate');
|
||||
$(this).addClass('favorite');
|
||||
return false;
|
||||
});
|
||||
$('table.songlist tr.song a.favorite').live('click', function (event) {
|
||||
var songid = $(this).parent().parent().attr('childid');
|
||||
rateSong(songid, 0);
|
||||
$(this).removeClass('favorite');
|
||||
$(this).addClass('rate');
|
||||
return false;
|
||||
});
|
||||
$('li.index').live('click', function (e) {
|
||||
$('#Artists').stop().scrollTo('#auto', 400);
|
||||
return false;
|
||||
});
|
||||
|
||||
// Music Library Click Events
|
||||
$('a#action_AddToPlaylist').click(function () {
|
||||
var submenu = $('div#submenu_AddToPlaylist');
|
||||
if (submenu.is(":visible")) {
|
||||
submenu.fadeOut();
|
||||
} else {
|
||||
loadPlaylistsForMenu('submenu_AddToPlaylist');
|
||||
//get the position of the placeholder element
|
||||
pos = $(this).offset();
|
||||
width = $(this).width();
|
||||
height = $(this).height();
|
||||
//show the menu directly over the placeholder
|
||||
submenu.css({ "left": (pos.left) + "px", "top": (pos.top + height + 14) + "px" }).fadeIn(400);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
var submenu_active = false;
|
||||
$('div.submenu').mouseenter(function () {
|
||||
submenu_active = true;
|
||||
});
|
||||
$('div.submenu').mouseleave(function () {
|
||||
submenu_active = false;
|
||||
setTimeout(function () { if (submenu_active == false) $('div.submenu').fadeOut(); }, 400);
|
||||
});
|
||||
$('a#action_AddToCurrent').click(function () {
|
||||
addToCurrent();
|
||||
return false;
|
||||
});
|
||||
$('#action_RefreshArtists').click(function () {
|
||||
loadArtists("", true);
|
||||
return false;
|
||||
});
|
||||
$('#action_IncreaseWidth').click(function () {
|
||||
resizeSMSection(50);
|
||||
return false;
|
||||
});
|
||||
$('#action_DecreaseWidth').click(function () {
|
||||
resizeSMSection(-50);
|
||||
return false;
|
||||
});
|
||||
$('#action_SelectAll').click(function () {
|
||||
$('#Albums tr.song').each(function () {
|
||||
$(this).addClass('selected');
|
||||
});
|
||||
return false;
|
||||
});
|
||||
$('#action_SelectNone').click(function () {
|
||||
$('#Albums tr.song').each(function () {
|
||||
$(this).removeClass('selected');
|
||||
});
|
||||
return false;
|
||||
});
|
||||
$('input#Search').keydown(function (e) {
|
||||
var unicode = e.charCode ? e.charCode : e.keyCode;
|
||||
if (unicode == 13) {
|
||||
$('#action_Search').click();
|
||||
}
|
||||
});
|
||||
$('#action_Search').click(function () {
|
||||
var query = $('#Search').val();
|
||||
search('song', query);
|
||||
$('#Search').val("");
|
||||
return false;
|
||||
});
|
||||
// Current Playlist Click Events
|
||||
$('#action_Shuffle').live('click', function () {
|
||||
$('#CurrentPlaylistContainer tr.song').shuffle();
|
||||
refreshRowColor();
|
||||
return false;
|
||||
});
|
||||
$('#action_Empty').live('click', function () {
|
||||
$('#CurrentPlaylistContainer tbody').empty();
|
||||
return false;
|
||||
});
|
||||
$('a#action_AddCurrentToPlaylist').click(function () {
|
||||
var submenu = $('div#submenu_AddCurrentToPlaylist');
|
||||
if (submenu.is(":visible")) {
|
||||
submenu.fadeOut();
|
||||
} else {
|
||||
loadPlaylistsForMenu('submenu_AddCurrentToPlaylist');
|
||||
//get the position of the placeholder element
|
||||
pos = $(this).offset();
|
||||
width = $(this).width();
|
||||
height = $(this).height();
|
||||
//show the menu directly over the placeholder
|
||||
submenu.css({ "left": (pos.left) + "px", "top": (pos.top + height + 14) + "px" }).fadeIn(400);
|
||||
}
|
||||
});
|
||||
$('#action_CurrentSelectAll').click(function () {
|
||||
$('#CurrentPlaylist tr.song').each(function () {
|
||||
$(this).addClass('selected');
|
||||
});
|
||||
return false;
|
||||
});
|
||||
$('#action_CurrentSelectNone').click(function () {
|
||||
$('#CurrentPlaylist tr.song').each(function () {
|
||||
$(this).removeClass('selected');
|
||||
});
|
||||
return false;
|
||||
});
|
||||
// Playlist Click Events
|
||||
$('#AutoPlaylistContainer li.item').live('click', function () {
|
||||
$('#AutoPlaylistContainer li').removeClass('selected');
|
||||
$('#PlaylistContainer li').removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
getRandomSongList('', '#TrackContainer');
|
||||
});
|
||||
$('#AutoPlaylistContainer li.item a.play').live('click', function () {
|
||||
getRandomSongList('autoplay', '#CurrentPlaylistContainer');
|
||||
return false;
|
||||
});
|
||||
$('#AutoPlaylistContainer li.item a.add').live('click', function () {
|
||||
getRandomSongList('', '#CurrentPlaylistContainer');
|
||||
return false;
|
||||
});
|
||||
$('#PlaylistContainer li.item').live('click', function () {
|
||||
$('#AutoPlaylistContainer li').removeClass('selected');
|
||||
$('#PlaylistContainer li').removeClass('selected');
|
||||
$(this).addClass('selected');
|
||||
getPlaylist($(this).attr("id"), '', '#TrackContainer tbody');
|
||||
});
|
||||
$('#PlaylistContainer li.item a.play').live('click', function () {
|
||||
getPlaylist($(this).parent().parent().attr("id"), 'autoplay', '#CurrentPlaylistContainer tbody');
|
||||
return false;
|
||||
});
|
||||
$('#PlaylistContainer li.item a.add').live('click', function () {
|
||||
getPlaylist($(this).parent().parent().attr("id"), '', '#CurrentPlaylistContainer tbody');
|
||||
return false;
|
||||
});
|
||||
$('#action_DeletePlaylist').click(function () {
|
||||
if ($('#PlaylistContainer li.selected').length > 0) {
|
||||
if (confirmDelete()) {
|
||||
$('#PlaylistContainer li.selected').each(function () {
|
||||
deletePlaylist($(this).attr("id"));
|
||||
});
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
$('#action_SavePlaylist').click(function () {
|
||||
if ($('#PlaylistContainer li.selected').length > 0) {
|
||||
$('#PlaylistContainer li.selected').each(function () {
|
||||
savePlaylist($(this).attr("id"));
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
$('#action_RemoveSongs').click(function () {
|
||||
if ($('#TrackContainer tr.selected').length > 0) {
|
||||
$('#TrackContainer tr.selected').each(function () {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
$('#action_ShufflePlaylist').live('click', function () {
|
||||
$('#TrackContainer tr.song').shuffle();
|
||||
refreshRowColor();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Player Click Events
|
||||
$('#PlayTrack').live('click', function () {
|
||||
playPauseSong();
|
||||
return false;
|
||||
});
|
||||
$('#NextTrack').live('click', function () {
|
||||
var next = $('#CurrentPlaylistContainer tr.playing').next();
|
||||
changeTrack(next);
|
||||
return false;
|
||||
});
|
||||
$('#PreviousTrack').live('click', function () {
|
||||
var prev = $('#CurrentPlaylistContainer tr.playing').prev();
|
||||
changeTrack(prev);
|
||||
return false;
|
||||
});
|
||||
$("a#coverartimage").fancybox({
|
||||
'hideOnContentClick': true,
|
||||
'type': 'image'
|
||||
});
|
||||
|
||||
// Side Bar Click Events
|
||||
$('#action_ToggleSideBar').live('click', function () {
|
||||
if ($.cookie('sidebar')) {
|
||||
$.cookie('sidebar', null);
|
||||
$('#SideBar').hide();
|
||||
stopUpdateChatMessages();
|
||||
stopUpdateNowPlaying();
|
||||
} else {
|
||||
$.cookie('sidebar', true, { expires: 365 });
|
||||
$('#SideBar').show();
|
||||
updateChatMessages();
|
||||
updateNowPlaying();
|
||||
}
|
||||
resizeContent();
|
||||
return false;
|
||||
});
|
||||
$('input#ChatMsg').keydown(function (e) {
|
||||
var unicode = e.charCode ? e.charCode : e.keyCode;
|
||||
if (unicode == 13) {
|
||||
var msg = $('#ChatMsg').val();
|
||||
if (msg != '') {
|
||||
addChatMessage(msg);
|
||||
}
|
||||
$('#ChatMsg').val("");
|
||||
}
|
||||
});
|
||||
|
||||
// Preferences Click Events
|
||||
$('#SavePreferences').live('click', function () {
|
||||
var username = $('#Username').val();
|
||||
var password = $('#Password').val();
|
||||
$.cookie('username', username, { expires: 365 });
|
||||
$.cookie('password', password, { expires: 365 });
|
||||
var AutoAlbumSize = $('#AutoAlbumSize').val();
|
||||
var AutoPlaylistSize = $('#AutoPlaylistSize').val();
|
||||
$.cookie('AutoAlbumSize', AutoAlbumSize, { expires: 365 });
|
||||
$.cookie('AutoPlaylistSize', AutoPlaylistSize, { expires: 365 });
|
||||
var server = $('#Server').val();
|
||||
if (server != "") {
|
||||
$.cookie('Server', server, { expires: 365 });
|
||||
}
|
||||
var applicationname = $('#ApplicationName').val();
|
||||
if (applicationname != "") {
|
||||
$.cookie('ApplicationName', applicationname, { expires: 365 });
|
||||
}
|
||||
location.reload(true);
|
||||
});
|
||||
$('#HideAZ').live('click', function () {
|
||||
if ($('#HideAZ').is(':checked')) {
|
||||
$.cookie('HideAZ', '1', { expires: 365 });
|
||||
$('#BottomContainer').hide();
|
||||
} else {
|
||||
$.cookie('HideAZ', null);
|
||||
$('#BottomContainer').show();
|
||||
}
|
||||
});
|
||||
$('#EnableNotifications').live('click', function () {
|
||||
if ($('#EnableNotifications').is(':checked')) {
|
||||
requestPermissionIfRequired();
|
||||
if (hasNotificationPermission()) {
|
||||
$.cookie('EnableNotifications', '1', { expires: 365 });
|
||||
}
|
||||
} else {
|
||||
$.cookie('EnableNotifications', null);
|
||||
}
|
||||
});
|
||||
$('#ScrollTitle').live('click', function () {
|
||||
if ($('#ScrollTitle').is(':checked')) {
|
||||
$.cookie('ScrollTitle', '1', { expires: 365 });
|
||||
}
|
||||
});
|
||||
$('input#Password').keydown(function (e) {
|
||||
var unicode = e.charCode ? e.charCode : e.keyCode;
|
||||
if (unicode == 13) {
|
||||
$('#SavePreferences').click();
|
||||
}
|
||||
});
|
||||
$('#ResetPreferences').live('click', function () {
|
||||
$.cookie('username', null);
|
||||
$.cookie('password', null);
|
||||
$.cookie('AutoAlbumSize', null);
|
||||
$.cookie('AutoPlaylistSize', null);
|
||||
$.cookie('Server', null);
|
||||
$.cookie('ApplicationName', null);
|
||||
$.cookie('HideAZ', null);
|
||||
location.reload(true);
|
||||
});
|
||||
$('#ChangeLogShowMore').live('click', function () {
|
||||
$('ul#ChangeLog li.log').each(function (i, el) {
|
||||
$(el).show();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
}); // End document.ready
|
Loading…
Add table
Add a link
Reference in a new issue