diff --git a/README b/README
index 96a16c7..51e6a6f 100644
--- a/README
+++ b/README
@@ -20,6 +20,7 @@ External Subsonic Music Player
1/9/2012 .018 added media keyboard bindings from @itchy
1/18/2012 .019 rating support, random playlist, new preferences added
1/25/2012 .020 table layout for songs, bug fixes, display tweaks
+2/22/2012 .021 added sidebar for chat and now playing, bug fixes
TO DO: (In no particular order...)
- Jukebox Control
diff --git a/images/arrow_left_gl_12x12.png b/images/arrow_left_gl_12x12.png
new file mode 100644
index 0000000..5619aab
Binary files /dev/null and b/images/arrow_left_gl_12x12.png differ
diff --git a/images/arrow_right_gl_12x12.png b/images/arrow_right_gl_12x12.png
new file mode 100644
index 0000000..fae3d98
Binary files /dev/null and b/images/arrow_right_gl_12x12.png differ
diff --git a/images/comment_stroke_gl_12x11.png b/images/comment_stroke_gl_12x11.png
new file mode 100644
index 0000000..9bcac04
Binary files /dev/null and b/images/comment_stroke_gl_12x11.png differ
diff --git a/index.html b/index.html
index 30e7f8d..3888813 100644
--- a/index.html
+++ b/index.html
@@ -100,7 +100,7 @@
$('#AutoAlbumContainer li').removeClass('selected');
$('#ArtistContainer li').removeClass('selected');
$(this).addClass('selected');
- getAlbums($(this).attr("id"), '#AlbumRows');
+ getAlbums($(this).attr("id"), '', '#AlbumRows');
});
$('#BottomIndex li a').live('click', function () {
var el = '#index_' + $(this).text();
@@ -116,13 +116,13 @@
$('tr.album a.play').live('click', function (e) {
var albumid = $(this).parent().parent().attr('childid');
var artistid = $(this).parent().parent().attr('parentid');
- getSongs(albumid, artistid, 'autoplay', '#CurrentPlaylistContainer');
+ 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');
- getSongs(albumid, artistid, 'add', '#CurrentPlaylistContainer');
+ getAlbums(albumid, 'add', '#CurrentPlaylistContainer');
return false;
});
$('tr.album a.rate').live('click', function (event) {
@@ -138,7 +138,7 @@
$('tr.album').live('click', function (e) {
var albumid = $(this).attr('childid');
var artistid = $(this).attr('parentid');
- getSongs(albumid, artistid, '', '#AlbumRows');
+ getAlbums(albumid, '', '#AlbumRows');
return false;
});
// Track - Click Events
@@ -379,49 +379,37 @@
changeTrack(prev);
return false;
});
- $('a#Chat').click(function () {
- var submenu = $('div#submenu_Chat');
- if (submenu.is(":visible")) {
- submenu.fadeOut();
- updater.cancel();
- } else {
- //loadChatMessages();
- updateChatMessages();
- $('div#submenu_NowPlaying').fadeOut();
- submenu.fadeIn(400);
- }
- $('input#ChatMsg').focus();
+ $("a#coverartimage").fancybox({
+ 'hideOnContentClick': true,
+ 'type': 'image'
});
- $('#action_AddChatMsg').click(function () {
- var msg = $('#ChatMsg').val();
- if (msg != '') {
- addChatMessage(msg);
+
+ // 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();
}
- $('#ChatMsg').val("");
+ resizeContent();
return false;
});
$('input#ChatMsg').keydown(function (e) {
var unicode = e.charCode ? e.charCode : e.keyCode;
if (unicode == 13) {
- $('#action_AddChatMsg').click();
+ var msg = $('#ChatMsg').val();
+ if (msg != '') {
+ addChatMessage(msg);
+ }
+ $('#ChatMsg').val("");
}
});
- $('a#NowPlaying').click(function () {
- var submenu = $('div#submenu_NowPlaying');
- if (submenu.is(":visible")) {
- submenu.fadeOut();
- updaterNowPlaying.cancel();
- } else {
- //loadChatMessages();
- updateNowPlaying();
- $('div#submenu_Chat').fadeOut();
- submenu.fadeIn(400);
- }
- });
- $("a#coverartimage").fancybox({
- 'hideOnContentClick': true,
- 'type': 'image'
- });
// Preferences Click Events
$('#SavePreferences').live('click', function () {
@@ -433,6 +421,14 @@
var AutoPlaylistSize = $('#AutoPlaylistSize').val();
$.cookie('AutoAlbumSize', AutoAlbumSize, { expires: 365 });
$.cookie('AutoPlaylistSize', AutoPlaylistSize, { expires: 365 });
+ var subdirectory = $('#SubDirectory').val();
+ if (subdirectory != "") {
+ $.cookie('subdirectory', subdirectory, { expires: 365 });
+ }
+ var applicationname = $('#ApplicationName').val();
+ if (applicationname != "") {
+ $.cookie('applicationname', applicationname, { expires: 365 });
+ }
location.reload(true);
});
$('input#Password').keydown(function (e) {
@@ -446,14 +442,9 @@
$.cookie('password', null);
$.cookie('AutoAlbumSize', null);
$.cookie('AutoPlaylistSize', null);
- });
- $('#SaveSubDirectory').live('click', function () {
- var subdirectory = $('#SubDirectory').val();
- if (subdirectory != "") {
- $.cookie('subdirectory', subdirectory, { expires: 365 });
- location.reload(true);
- }
- return false;
+ $.cookie('SubDirectory', null);
+ $.cookie('ApplicationName', null);
+ location.reload(true);
});
$('#StyleSwitcher').live('change', function () {
var style = $(this).val();
@@ -461,7 +452,7 @@
$.cookie('css', style, { expires: 365, path: '/' });
location.reload(true);
});
- }); // End document.ready
+ }); // End document.ready
$(window).load(function () {
if ($.cookie('defaultsmwidth')) {
@@ -473,21 +464,40 @@
$('#AlbumContainer').css({ 'margin-left': ulwidth + 'px' });
$('#TrackContainer').css({ 'margin-left': ulwidth + 'px' });
}
+ if ($.cookie('sidebar') && $.cookie('username') && $.cookie('password')) {
+ $('#SideBar').show();
+ updateChatMessages();
+ updateNowPlaying();
+ }
resizeContent();
});
$(window).resize(function () {
- resizeContent();
+ resizeContent();
});
function resizeContent() {
+ var screenwidth = $(window).width();
$('.tabcontent').css({ 'height': (($(window).height() - 160)) + 'px' });
$('.smsection').css({ 'height': (($(window).height() - 200)) + 'px' });
var smheight = $('.smsection').height();
var smwidth = $('.smsection').width();
$('#BottomContainer').css({ 'top': smheight + 75 + 'px' });
- var screenwidth = $(window).width();
- $('#AlbumContainer').css({ 'width': (screenwidth - smwidth - 35) + 'px' });
- $('#TrackContainer').css({ 'width': (screenwidth - smwidth - 35) + 'px' });
- $('#CurrentPlaylistContainer').css({ 'width': (screenwidth - 35) + 'px' });
+ if ($.cookie('sidebar')) {
+ var tabwidth = $(window).width() - 218;
+ if (tabwidth >= 700) {
+ $('.tabcontent').css({ 'width': tabwidth + 'px' });
+ }
+ var sbheight = $(window).height() - 160;
+ $('#SideBar').css({ 'height': sbheight + 'px' });
+ $('#ChatMsgs').css({ 'height': (sbheight - 270) + 'px' });
+ } else {
+ var tabwidth = $(window).width() - 11;
+ if (tabwidth >= 700) {
+ $('.tabcontent').css({ 'width': tabwidth + 'px' });
+ }
+ }
+ var tabwidth = $('.tabcontent').width();
+ $('#AlbumContainer, #TrackContainer, #CurrentPlaylistContainer').css({ 'width': (tabwidth - smwidth - 30) + 'px' });
+ $('#CurrentPlaylistContainer').css({ 'width': (tabwidth - 30) + 'px' });
}
function resizeSMSection(x) {
var smwidth = $('.smsection').width();
@@ -644,31 +654,21 @@
$('#AutoAlbumSize').val($.cookie('AutoAlbumSize'));
$('#AutoPlaylistSize').val($.cookie('AutoPlaylistSize'));
$('#SubDirectory').val($.cookie('subdirectory'));
+ $('#ApplicationName').val($.cookie('applicationname'));
});
-
+
-
+
-
-
-
-
*For custom installations
-
-
Save
-
-
- Keyboard Shortcuts
@@ -679,10 +679,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-

-
-
-
-
+
diff --git a/js/app.js b/js/app.js
index a7ea6fd..f345145 100644
--- a/js/app.js
+++ b/js/app.js
@@ -6,6 +6,12 @@ if ($.cookie('subdirectory')) {
} else {
baseURL = location.protocol + '//' + location.host + '/rest';
}
+var applicationName;
+if ($.cookie('applicationname')) {
+ applicationName = $.cookie('applicationname');
+} else {
+ applicationName = 'MiniSub';
+}
var username = $.cookie('username');
var password = $.cookie('password');
var auth = makeBaseAuth(username, password);
@@ -38,7 +44,7 @@ function loadArtists(refresh) {
if (content == "") {
// Load Artist List
$.ajax({
- url: baseURL + '/getIndexes.view?v=1.6.0&c=subweb&f=json',
+ url: baseURL + '/getIndexes.view?v=1.6.0&c=' + applicationName + '&f=json',
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -86,58 +92,20 @@ function loadArtists(refresh) {
});
}
}
-function getAlbums(id, appendto) {
+function getAlbums(id, action, appendto) {
$.ajax({
- url: baseURL + '/getMusicDirectory.view?v=1.6.0&c=subweb&f=json&id=' + id,
+ url: baseURL + '/getMusicDirectory.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + id,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
req.setRequestHeader('Authorization', auth);
},
success: function (data) {
- $("#AlbumRows").empty();
- if (data["subsonic-response"].directory.child != undefined) {
- // There is a bug in the API that doesn't return a JSON array for one artist
- var children = [];
- if (data["subsonic-response"].directory.child.length > 0) {
- children = data["subsonic-response"].directory.child;
- } else {
- children[0] = data["subsonic-response"].directory.child;
- }
-
- var rowcolor;
- var albumhtml;
- $.each(children, function (i, child) {
- if (i % 2 == 0) {
- rowcolor = 'even';
- } else {
- rowcolor = 'odd';
- }
- albumhtml = generateAlbumHTML(rowcolor, child.id, child.parent, child.coverArt, child.title, child.artist, child.userRating);
- $(albumhtml).appendTo("#AlbumRows");
- });
- var header = generateAlbumHeaderHTML();
- $("#AlbumHeader").html(header);
- }
- }
- });
-}
-function getSongs(id, artistid, action, appendto) {
- $.ajax({
- url: baseURL + '/getMusicDirectory.view?v=1.6.0&c=subweb&f=json&id=' + id,
- method: 'GET',
- dataType: 'json',
- beforeSend: function (req) {
- req.setRequestHeader('Authorization', auth);
- },
- success: function (data) {
- if (appendto == '#AlbumRows' && action == '') {
+ if (action == '') {
$('#AlbumRows').empty();
- var header = generateSongHeaderHTML();
- $("#AlbumHeader").html(header);
}
if (action == 'autoplay') {
- $('#CurrentPlaylistContainer').empty();
+ $('#CurrentPlaylistContainer tbody').empty();
}
if (data["subsonic-response"].directory.child != undefined) {
// There is a bug in the API that doesn't return a JSON array for one artist
@@ -150,27 +118,31 @@ function getSongs(id, artistid, action, appendto) {
var rowcolor;
var albumhtml;
+ var isDir;
$.each(children, function (i, child) {
if (i % 2 == 0) {
rowcolor = 'even';
} else {
rowcolor = 'odd';
}
- var track;
- if (child.track === undefined) { track = " "; } else { track = child.track; }
- var time = secondsToTime(child.duration);
- albumhtml = generateSongHTML(rowcolor, child.id, child.parent, track, child.title, child.artist, child.album, child.coverArt, child.userRating, time['m'], time['s']);
- /*
- if (appendto == '#AlbumRows') {
- if (i == 0) {
- //var backhtml = '« Back to ' + child.artist + ' |
';
- var backhtml = '' + child.artist + '';
- $("#BreadCrumb").html($(backhtml));
- }
+ isDir = child.isDir;
+ if (isDir == true) {
+ albumhtml = generateAlbumHTML(rowcolor, child.id, child.parent, child.coverArt, child.title, child.artist, child.userRating);
+ } else {
+ var track;
+ if (child.track === undefined) { track = " "; } else { track = child.track; }
+ var time = secondsToTime(child.duration);
+ albumhtml = generateSongHTML(rowcolor, child.id, child.parent, track, child.title, child.artist, child.album, child.coverArt, child.userRating, time['m'], time['s']);
}
- */
$(albumhtml).appendTo(appendto);
});
+ if (appendto == '#AlbumRows' && isDir == true) {
+ var header = generateAlbumHeaderHTML();
+ }
+ if (appendto == '#AlbumRows' && isDir == false) {
+ var header = generateSongHeaderHTML();
+ }
+ $("#AlbumHeader").html(header);
if (action == 'autoplay') {
autoPlay();
}
@@ -186,7 +158,7 @@ function getAlbumListBy(id) {
size = $.cookie('AutoAlbumSize');
}
$.ajax({
- url: baseURL + '/getAlbumList.view?v=1.6.0&c=subweb&f=json&size=' + size + '&type=' + id,
+ url: baseURL + '/getAlbumList.view?v=1.6.0&c=' + applicationName + '&f=json&size=' + size + '&type=' + id,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -234,7 +206,7 @@ function getRandomSongList(action, appendto) {
size = $.cookie('AutoPlaylistSize');
}
$.ajax({
- url: baseURL + '/getRandomSongs.view?v=1.5.0&c=subweb&f=json&size=' + size,
+ url: baseURL + '/getRandomSongs.view?v=1.6.0&c=' + applicationName + '&f=json&size=' + size,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -295,7 +267,7 @@ function generateAlbumHTML(rowcolor, childid, parentid, coverart, title, artist,
html += '';
}
html += '';
- html += ' | ';
+ html += ' | ';
html += '' + title + ' | ';
html += '' + artist + ' | ';
html += '';
@@ -321,7 +293,7 @@ function generateSongHTML(rowcolor, childid, parentid, track, title, artist, alb
html += '' + track + ' | ';
html += '' + title + ' | ';
html += '' + artist + ' | ';
- html += '' + album + ' | ';
+ html += '' + album + ' | ';
html += '' + m + ':' + s + ' | ';
html += '';
return html;
@@ -342,7 +314,7 @@ function refreshRowColor() {
var scrobbled = false;
function playSong(el, songid, albumid) {
$.ajax({
- url: baseURL + '/getMusicDirectory.view?v=1.6.0&c=subweb&f=json&id=' + albumid,
+ url: baseURL + '/getMusicDirectory.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + albumid,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -365,10 +337,9 @@ function playSong(el, songid, albumid) {
$('#songdetails_song').attr('parentid', albumid);
$('#songdetails_song').attr('childid', songid);
$('#songdetails_artist').html(artist + ' - ' + album);
- //$('#songdetails_artist').html('« Back to ' + artist + '');
- $('#coverartimage').attr('href', baseURL + '/getCoverArt.view?v=1.6.0&c=subweb&f=json&id=' + songid);
- $('#coverartimage img').attr('src', baseURL + '/getCoverArt.view?v=1.6.0&c=subweb&f=json&size=56&id=' + songid);
- audio.load(baseURL + '/stream.view?v=1.6.0&c=subweb&f=json&id=' + songid);
+ $('#coverartimage').attr('href', baseURL + '/getCoverArt.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + songid);
+ $('#coverartimage img').attr('src', baseURL + '/getCoverArt.view?v=1.6.0&c=' + applicationName + '&f=json&size=56&id=' + songid);
+ audio.load(baseURL + '/stream.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + songid);
audio.play();
$('table.songlist tr.song').removeClass('playing');
$(el).addClass('playing');
@@ -382,7 +353,7 @@ function playSong(el, songid, albumid) {
function scrobbleSong(submission) {
var songid = $('#songdetails_song').attr('childid');
$.ajax({
- url: baseURL + '/scrobble.view?v=1.6.0&c=subweb&f=json&id=' + songid + "&submission=" + submission,
+ url: baseURL + '/scrobble.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + songid + "&submission=" + submission,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -397,7 +368,7 @@ function scrobbleSong(submission) {
}
function rateSong(songid, rating) {
$.ajax({
- url: baseURL + '/setRating.view?v=1.6.0&c=subweb&f=json&id=' + songid + "&rating=" + rating,
+ url: baseURL + '/setRating.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + songid + "&rating=" + rating,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -452,7 +423,7 @@ function autoPlay() {
}
function search(type, query) {
$.ajax({
- url: baseURL + '/search2.view?v=1.6.0&c=subweb&f=json&query=' + query,
+ url: baseURL + '/search2.view?v=1.6.0&c=' + applicationName + '&f=json&query=' + query,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -493,7 +464,7 @@ function search(type, query) {
var starttime;
function loadChatMessages() {
$.ajax({
- url: baseURL + '/getChatMessages.view?v=1.6.0&c=subweb&f=json',
+ url: baseURL + '/getChatMessages.view?v=1.6.0&c=' + applicationName + '&f=json',
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -520,10 +491,10 @@ function loadChatMessages() {
}
var updater;
function updateChatMessages() {
- updater = $.periodic({ period: 2000, decay: 1.5, max_period: 1800000 }, function () {
+ updater = $.periodic({ period: 1000, decay: 1.5, max_period: 1800000 }, function () {
$.ajax({
periodic: this,
- url: baseURL + '/getChatMessages.view?v=1.6.0&c=subweb&f=json&since=' + starttime,
+ url: baseURL + '/getChatMessages.view?v=1.6.0&c=' + applicationName + '&f=json&since=' + starttime,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -554,16 +525,20 @@ function updateChatMessages() {
starttime = msg.time;
}
});
+ $("#ChatMsgs").attr({ scrollTop: $("#ChatMsgs").attr("scrollHeight") });
}
}
});
});
}
+function stopUpdateChatMessages() {
+ updater.cancel();
+}
function addChatMessage(msg) {
$.ajax({
type: 'POST',
url: baseURL + '/addChatMessage.view',
- data: { v: "1.5.0", c: "subweb", f: "json", message: msg },
+ data: { v: "1.6.0", c: applicationName, f: "json", message: msg },
beforeSend: function (req) {
req.setRequestHeader('Authorization', auth);
},
@@ -577,10 +552,10 @@ function addChatMessage(msg) {
var updaterNowPlaying;
var updaterNowPlayingData;
function updateNowPlaying() {
- updaterNowPlaying = $.periodic({ period: 2000, decay: 1.5, max_period: 1800000 }, function () {
+ updaterNowPlaying = $.periodic({ period: 4000, decay: 1.5, max_period: 1800000 }, function () {
$.ajax({
periodic: this,
- url: baseURL + '/getNowPlaying.view?v=1.6.0&c=subweb&f=json',
+ url: baseURL + '/getNowPlaying.view?v=1.6.0&c=' + applicationName + '&f=json',
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -622,6 +597,9 @@ function updateNowPlaying() {
});
});
}
+function stopUpdateNowPlaying() {
+ updaterNowPlaying.cancel();
+}
function loadPlaylists(refresh) {
if (refresh) {
@@ -631,7 +609,7 @@ function loadPlaylists(refresh) {
if (content == "") {
// Load Playlists
$.ajax({
- url: baseURL + '/getPlaylists.view?v=1.6.0&c=subweb&f=json',
+ url: baseURL + '/getPlaylists.view?v=1.6.0&c=' + applicationName + '&f=json',
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -654,7 +632,7 @@ function loadPlaylists(refresh) {
function loadPlaylistsForMenu(menu) {
$('#' + menu).empty();
$.ajax({
- url: baseURL + '/getPlaylists.view?v=1.6.0&c=subweb&f=json',
+ url: baseURL + '/getPlaylists.view?v=1.6.0&c=' + applicationName + '&f=json',
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -676,7 +654,7 @@ function newPlaylist() {
var reply = prompt("Choose a name for your new playlist.", "");
if (reply) {
$.ajax({
- url: baseURL + '/createPlaylist.view?v=1.6.0&c=subweb&f=json&name=' + reply,
+ url: baseURL + '/createPlaylist.view?v=1.6.0&c=' + applicationName + '&f=json&name=' + reply,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -690,7 +668,7 @@ function newPlaylist() {
}
function deletePlaylist(id) {
$.ajax({
- url: baseURL + '/deletePlaylist.view?v=1.6.0&c=subweb&f=json&id=' + id,
+ url: baseURL + '/deletePlaylist.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + id,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -718,7 +696,7 @@ function addToPlaylist(playlistid, from) {
// Get songs from playlist
var currentsongs = [];
$.ajax({
- url: baseURL + '/getPlaylist.view?v=1.6.0&c=subweb&f=json&id=' + playlistid,
+ url: baseURL + '/getPlaylist.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + playlistid,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
@@ -749,7 +727,7 @@ function addToPlaylist(playlistid, from) {
$.ajax({
type: 'POST',
url: baseURL + '/createPlaylist.view',
- data: { v: "1.5.0", c: "subweb", f: "json", playlistId: playlistid, songId: currentsongs },
+ data: { v: "1.6.0", c: applicationName, f: "json", playlistId: playlistid, songId: currentsongs },
beforeSend: function (req) {
req.setRequestHeader('Authorization', auth);
},
@@ -768,7 +746,7 @@ function addToPlaylist(playlistid, from) {
$.ajax({
type: 'POST',
url: baseURL + '/createPlaylist.view',
- data: { v: "1.5.0", c: "subweb", f: "json", name: 'New Playlist', songId: selected },
+ data: { v: "1.6.0", c: applicationName, f: "json", name: 'New Playlist', songId: selected },
beforeSend: function (req) {
req.setRequestHeader('Authorization', auth);
},
@@ -799,7 +777,7 @@ function savePlaylist(playlistid) {
$.ajax({
type: 'POST',
url: baseURL + '/createPlaylist.view',
- data: { v: "1.5.0", c: "subweb", f: "json", playlistId: playlistid, songId: songs },
+ data: { v: "1.6.0", c: applicationName, f: "json", playlistId: playlistid, songId: songs },
beforeSend: function (req) {
req.setRequestHeader('Authorization', auth);
},
@@ -813,7 +791,7 @@ function savePlaylist(playlistid) {
}
function getPlaylist(id, action, appendto) {
$.ajax({
- url: baseURL + '/getPlaylist.view?v=1.6.0&c=subweb&f=json&id=' + id,
+ url: baseURL + '/getPlaylist.view?v=1.6.0&c=' + applicationName + '&f=json&id=' + id,
method: 'GET',
dataType: 'json',
beforeSend: function (req) {
diff --git a/style/Style.css b/style/Style.css
index b6678ae..cb7b98b 100644
--- a/style/Style.css
+++ b/style/Style.css
@@ -89,11 +89,13 @@ img
}
.tabcontent
{
+ min-height: 400px;
+ min-width: 700px;
}
.smsection
{
width: 200px;
- min-height: 200px;
+ min-height: 360px;
padding: 0 0 40px 0;
float: left;
overflow-y: auto;
@@ -108,7 +110,7 @@ img
{
height: 100%;
width: 100%;
- min-height: 200px;
+ min-height: 400px;
overflow: auto;
background: #fff;
border: 1px solid #cbcbcb;
@@ -119,7 +121,7 @@ img
height: 100%;
width: 100%;
min-width: 450px;
- min-height: 200px;
+ min-height: 400px;
overflow: auto;
background: #fff;
border: 1px solid #cbcbcb;
@@ -129,14 +131,9 @@ img
{
padding: 5px;
}
-.nosection
-{
- height: 100%;
- margin: 5px 5px 0 5px;
-}
.subsection
{
- margin: 5px 10px;
+ margin: 15px 20px;
}
.subsection small
{
@@ -311,7 +308,7 @@ table.songlist tr.album td.albumart img
{
margin: 5px 10px 0 10px;
padding: 2px;
- border: 1px solid #F0F0F0;
+ border: 1px solid #DEDEDE;
}
table.songlist tr.album a.play
{
@@ -395,7 +392,7 @@ table.songlist tr.song td.album
}
table.songlist tr.song td.album img
{
- border: 1px solid #F0F0F0;
+ border: 1px solid #DEDEDE;
display: block;
float: left;
margin: 0 5px;
@@ -458,14 +455,21 @@ table.songlist tr.song a.favorite
}
table.songlist tr.playing
{
- background: url('../images/play_alt_16x16.png') 6px 10px no-repeat #DEEBFA;
+ background-color: #DEEBFA;
+}
+table.songlist tr.playing td:first-child
+{
+ background: url('../images/play_alt_16x16.png') 6px 10px no-repeat;
}
table.songlist tr.selected
{
color: #f2f2f2;
- background: url('../images/check_8x7.png') 10px 16px no-repeat;
- background-color: #4B95E5;
border-bottom: 1px solid #73ABE7;
+ background-color: #4B95E5;
+}
+table.songlist tr.selected td:first-child
+{
+ background: url('../images/check_8x7.png') 10px 16px no-repeat;
}
/* tablesorter style */
table.tablesorter {
@@ -507,12 +511,17 @@ table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSo
background-color: #8dbdd8;
}
+#ArtistContainer
+{
+ min-height: 360px;
+}
#BottomContainer
{
border-top: 1px solid #F2F2F2;
background: #fff;
position: fixed;
height: 43px;
+ width: 184px;
}
#BottomContainer ul
{
@@ -571,10 +580,33 @@ background-color: #8dbdd8;
width: 220px;
text-align: right;
}
-#ChatMsgs
+#SideBar
+{
+ display: none;
+ width: 200px;
+ position: fixed;
+ top: 78px;
+ right: 4px;
+ background: none repeat scroll 0 0 #FFFFFF;
+ border: 1px solid #CBCBCB;
+ min-height: 400px;
+}
+#SideBar .header
{
padding: 5px;
+ font-size: 12px;
+ color: #545454;
+ font-variant: small-caps;
+ font-weight: bold;
+}
+#ChatMsgs
+{
+ border-bottom: 1px solid #F2F2F2;
+ padding: 5px;
+ margin: 0 0 2px;
text-align: right;
+ overflow-y: auto;
+ overflow-x: hidden;
}
#ChatMsgs .msg
{
@@ -594,6 +626,10 @@ background-color: #8dbdd8;
font-size: 9px;
color: #CAD0D7;
}
+#Chat .submit
+{
+ padding: 0 2px;
+}
#submenu_NowPlaying
{
left: 605px;
@@ -603,10 +639,18 @@ background-color: #8dbdd8;
width: 220px;
text-align: right;
}
+#NowPlaying
+{
+ border-bottom: 1px solid #F2F2F2;
+ margin: 2px 0;
+}
#NowPlayingList
{
+ height: 150px;
padding: 5px;
text-align: right;
+ overflow-y: auto;
+ overflow-x: hidden;
}
#NowPlayingList .msg
{
@@ -679,7 +723,7 @@ background-color: #8dbdd8;
margin: 2px 0 2px 0;
float: left;
padding: 2px;
- border: 1px solid #F0F0F0;
+ border: 1px solid #DEDEDE;
}
#songdetails
{
@@ -710,7 +754,7 @@ ul.preferences
{
list-style-type: none;
padding: 0;
- margin: 5px;
+ margin: 0 5px;
}
ul.preferences li
{
@@ -723,6 +767,7 @@ ul.preferences li.title
font-weight: bold;
font-size: 14px;
font-variant: small-caps;
+ padding: 0;
}
ul.preferences li span
{
@@ -800,6 +845,12 @@ input.large
width: 180px;
margin: 5px;
}
+input.chat
+{
+ border: 1px solid #ffffff;
+ width: 150px;
+ margin: 5px;
+}
select
{
font-family: Calibri, Arial, Verdana;