1.9.8 - 4.7beta1 updates
This commit is contained in:
parent
e6f5c3a34d
commit
b0fe42ef3c
14 changed files with 395 additions and 11881 deletions
BIN
images/albumdefault_25.jpg
Normal file
BIN
images/albumdefault_25.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 776 B |
BIN
images/albumdefault_50.jpg
Normal file
BIN
images/albumdefault_50.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 973 B |
69
index.html
69
index.html
|
@ -3,17 +3,31 @@
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<title>Subsonic - MiniSub</title>
|
<title>Subsonic - MiniSub</title>
|
||||||
|
|
||||||
<link href="images/subsonic_32x32.ico" rel="shortcut icon" />
|
<link href="images/subsonic_32x32.ico" rel="shortcut icon" />
|
||||||
|
<link rel="icon" href="images/subsonic_48x48.png" sizes="48x48"/>
|
||||||
|
<link rel="icon" href="images/subsonic_32x32.png" sizes="32x32"/>
|
||||||
|
|
||||||
<link rel="icon" href="images/subsonic_48x48.png" sizes="48x48" />
|
|
||||||
<link rel="icon" href="images/subsonic_32x32.png" sizes="32x32" />
|
|
||||||
<link href="style/Style.css" rel="stylesheet" type="text/css" />
|
<link href="style/Style.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="js/fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
|
<link href="js/fancybox/jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
|
||||||
<link href="js/contextMenu/jquery.contextMenu.css" rel="stylesheet" type="text/css" />
|
<script src="js/plugins/jquery-1.7.2.min.js" type="text/javascript"></script>
|
||||||
<script src="js/require-jquery.js" data-main="js/main"></script>
|
<script src="js/plugins/jquery.base64.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.shuffle.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.cookie.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.dateFormat-1.0.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.disable.text.select.pack.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.hotkeys.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.linkify-1.0-min.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.periodic.js" type="text/javascript"></script>
|
||||||
|
<script src="js/plugins/jquery.scrollTo-1.4.2-min.js" type="text/javascript"></script>
|
||||||
|
<script src="js/sm/soundmanager2-jsmin.js" type="text/javascript"></script>
|
||||||
|
<script src="js/fancybox/jquery.fancybox-1.3.4.pack.js" type="text/javascript"></script>
|
||||||
|
<script src="js/libs/api.js" type="text/javascript"></script>
|
||||||
|
<script src="js/libs/utils.js" type="text/javascript"></script>
|
||||||
|
<script src="js/libs/chat.js" type="text/javascript"></script>
|
||||||
|
<script src="js/libs/generators.js" type="text/javascript"></script>
|
||||||
|
<script src="js/libs/player.js" type="text/javascript"></script>
|
||||||
|
<script src="js/app.js" type="text/javascript"></script>
|
||||||
|
<script src="js/ui-ready.js" type="text/javascript"></script>
|
||||||
|
<script src="js/ui-load.js" type="text/javascript"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
@ -36,6 +50,7 @@
|
||||||
<a href="#" class="button" id="action_IncreaseWidth" title="Increase Width"><img src="images/plus_8x8.png" /></a>
|
<a href="#" class="button" id="action_IncreaseWidth" title="Increase Width"><img src="images/plus_8x8.png" /></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="subactions floatleft">
|
<div class="subactions floatleft">
|
||||||
|
<div id="songactions">
|
||||||
<a href="#" class="button" id="action_SelectAll" title="Select All">All</a>
|
<a href="#" class="button" id="action_SelectAll" title="Select All">All</a>
|
||||||
<a href="#" class="button" id="action_SelectNone" title="Select None">None</a>
|
<a href="#" class="button" id="action_SelectNone" title="Select None">None</a>
|
||||||
<a href="#" class="button" id="action_AddToPlaylist" title="Add Selected To Playlist">+ Playlist</a>
|
<a href="#" class="button" id="action_AddToPlaylist" title="Add Selected To Playlist">+ Playlist</a>
|
||||||
|
@ -43,7 +58,13 @@
|
||||||
<a href="#" class="button" id="action_AddToCurrent" title="Add Selected To Current Playlist">+ Current</a>
|
<a href="#" class="button" id="action_AddToCurrent" title="Add Selected To Current Playlist">+ Current</a>
|
||||||
<a href="#" class="button" id="action_AddAllToCurrent" title="Add All to Current Playlist">+All</a>
|
<a href="#" class="button" id="action_AddAllToCurrent" title="Add All to Current Playlist">+All</a>
|
||||||
<a href="#" class="button" id="action_PlayAlbum" title="Play Album"><img src="images/play_gl_6x8.png" /></a>
|
<a href="#" class="button" id="action_PlayAlbum" title="Play Album"><img src="images/play_gl_6x8.png" /></a>
|
||||||
<input type="text" id="Search" class="medium" /><a href="#" class="button" id="action_Search" title="Search"><img src="images/magnifying_glass_alt_12x12.png" /></a>
|
</div>
|
||||||
|
<input type="text" id="Search" class="medium" />
|
||||||
|
<select id="SearchType" name="SearchType">
|
||||||
|
<option value="song">Song</option>
|
||||||
|
<option value="album">Album</option>
|
||||||
|
</select>
|
||||||
|
<a href="#" class="button" id="action_Search" title="Search"><img src="images/magnifying_glass_alt_12x12.png" /></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="Albums" class="lgsection floatleft">
|
<div id="Albums" class="lgsection floatleft">
|
||||||
<div class="loading"></div>
|
<div class="loading"></div>
|
||||||
|
@ -91,11 +112,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="tabPlaylists" class="tabcontent">
|
<div id="tabPlaylists" class="tabcontent">
|
||||||
<div class="actions floatleft">
|
<div class="actions floatleft">
|
||||||
<a href="#" class="button" id="action_NewPlaylist" onclick="newPlaylist(); return false;" title="New Playlist">+ New</a>
|
<a href="#" class="button" id="action_RefreshPlaylists" title="Refresh Playlists"><img src="images/reload_9x11.png" /></a>
|
||||||
<a href="#" class="button" id="action_DeletePlaylist" title="Delete Playlist">Delete</a>
|
|
||||||
<a href="#" class="button" id="action_SavePlaylist" title="Save Playlist">Save</a>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="subactions floatleft">
|
<div class="subactions floatleft">
|
||||||
|
<a href="#" class="button" id="action_NewPlaylist" onclick="newPlaylist(); return false;" title="New Playlist">+ New</a>
|
||||||
|
<a href="#" class="button" id="action_DeletePlaylist" title="Delete Selected Playlist">Delete</a>
|
||||||
|
<a href="#" class="button" id="action_SavePlaylist" title="Save Playlist">Save</a>
|
||||||
<a href="#" class="button" id="action_ShufflePlaylist" title="Shuffle Playlist"><img src="images/fork_11x12.png" /></a>
|
<a href="#" class="button" id="action_ShufflePlaylist" title="Shuffle Playlist"><img src="images/fork_11x12.png" /></a>
|
||||||
<a href="#" class="button" id="action_RemoveSongs" title="Remove selected song(s) from playlist">Remove Song(s)</a>
|
<a href="#" class="button" id="action_RemoveSongs" title="Remove selected song(s) from playlist">Remove Song(s)</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -165,8 +187,20 @@
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<div class="inputwrap"><input type="checkbox" id="ScrollTitle" name="ScrollTitle" value="1" title="Scroll the Title Once"/></div>
|
<div class="inputwrap"><input type="checkbox" id="ScrollTitle" name="ScrollTitle" value="1" title="Scroll the Title Once"/></div>
|
||||||
<label for="ScrollTitle">Scroll Title</label>
|
<label for="ScrollTitle">Scroll Title</label>
|
||||||
|
<div class="clear"></div>
|
||||||
|
<div class="inputwrap"><input type="checkbox" id="Debug" name="Debug" value="1" title="Enable Debug Mode (Events will be logged to the Javascript Console)"/></div>
|
||||||
|
<label for="Debug">Debug Mode</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="donate" class="subsection floatleft">
|
||||||
|
<h3 class="title">Buy me a beer! I'd like that :)</h3>
|
||||||
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
|
||||||
|
<input type="hidden" name="cmd" value="_s-xclick">
|
||||||
|
<input type="hidden" name="hosted_button_id" value="VMTENRSJWQ234">
|
||||||
|
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
|
||||||
|
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<div class="subsection floatleft">
|
<div class="subsection floatleft">
|
||||||
<h3 class="title">Change Log</h3>
|
<h3 class="title">Change Log</h3>
|
||||||
|
@ -176,6 +210,16 @@
|
||||||
<span class="changes"></span>
|
<span class="changes"></span>
|
||||||
</li>
|
</li>
|
||||||
-->
|
-->
|
||||||
|
<li class="log"><span class="version">5/21/2012 - 1.9.8</span>
|
||||||
|
<span class="changes">Support for 4.7beta1 in preparation for next full release</span>
|
||||||
|
<span class="changes">Ability to download Playlist or Song</span>
|
||||||
|
<span class="changes">Playing a song from a Playlist or Album will add the rest of the songs to the Current Playlist</span>
|
||||||
|
<span class="changes">Clicking an album takes you to the album (helpful from a playlist)</span>
|
||||||
|
<span class="changes">Added ability to search Albums or Songs</span>
|
||||||
|
<span class="changes">Ability to create new Playlist from any selected songs</span>
|
||||||
|
<span class="changes">Change track position while playing (lost after switch to SM2)</span>
|
||||||
|
<span class="changes">Added song rating to Player</span>
|
||||||
|
</li>
|
||||||
<li class="log"><span class="version">4/3/2012 - 1.9.4</span>
|
<li class="log"><span class="version">4/3/2012 - 1.9.4</span>
|
||||||
<span class="changes">URL Querystring support for setting of variables</span>
|
<span class="changes">URL Querystring support for setting of variables</span>
|
||||||
<span class="changes">Added legacy support for Subsonic 4.5</span>
|
<span class="changes">Added legacy support for Subsonic 4.5</span>
|
||||||
|
@ -258,6 +302,7 @@
|
||||||
<li id="songdetails_song" class="song"></li>
|
<li id="songdetails_song" class="song"></li>
|
||||||
<li id="songdetails_artist" class="album"></li>
|
<li id="songdetails_artist" class="album"></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<div class="rate"><a id="songdetails_rate" class="rate" href="" title="Add To Favorites"></a></div>
|
||||||
<div class="vertshade"></div>
|
<div class="vertshade"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
13
js/app.js
13
js/app.js
|
@ -3,6 +3,13 @@ var debug = false;
|
||||||
var audio;
|
var audio;
|
||||||
var hostURL = location.href;
|
var hostURL = location.href;
|
||||||
var baseURL;
|
var baseURL;
|
||||||
|
var version;
|
||||||
|
|
||||||
|
//Sound manager
|
||||||
|
soundManager.url = 'js/sm/swf';
|
||||||
|
soundManager.preferFlash = false;
|
||||||
|
soundManager.debugMode = false;
|
||||||
|
//soundManager.useHTML5Audio = true;
|
||||||
|
|
||||||
// Set auth cookies if specified in URL on launch
|
// Set auth cookies if specified in URL on launch
|
||||||
var u = getParameterByName('u');
|
var u = getParameterByName('u');
|
||||||
|
@ -38,7 +45,7 @@ var version = '1.6.0';
|
||||||
function loadTabContent(tab) {
|
function loadTabContent(tab) {
|
||||||
switch (tab) {
|
switch (tab) {
|
||||||
case '#tabLibrary':
|
case '#tabLibrary':
|
||||||
console.log("TAG LIBRARY");
|
if (debug) { console.log("TAG LIBRARY"); }
|
||||||
if ($.cookie('MusicFolders')) {
|
if ($.cookie('MusicFolders')) {
|
||||||
loadArtists($.cookie('MusicFolders'), false);
|
loadArtists($.cookie('MusicFolders'), false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -47,12 +54,12 @@ function loadTabContent(tab) {
|
||||||
getMusicFolders();
|
getMusicFolders();
|
||||||
break;
|
break;
|
||||||
case '#tabCurrent':
|
case '#tabCurrent':
|
||||||
console.log("TAG CURRENT");
|
if (debug) { console.log("TAG CURRENT"); }
|
||||||
var header = generateSongHeaderHTML();
|
var header = generateSongHeaderHTML();
|
||||||
$("#CurrentPlaylistContainer thead").html(header);
|
$("#CurrentPlaylistContainer thead").html(header);
|
||||||
break;
|
break;
|
||||||
case '#tabPlaylists':
|
case '#tabPlaylists':
|
||||||
console.log("TAG PLAYLIST");
|
if (debug) { console.log("TAG PLAYLIST"); }
|
||||||
loadPlaylists();
|
loadPlaylists();
|
||||||
break;
|
break;
|
||||||
case '#tabPreferences':
|
case '#tabPreferences':
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
/* Generic context menu styles */
|
|
||||||
.contextMenu {
|
|
||||||
position: absolute;
|
|
||||||
width: 115px;
|
|
||||||
z-index: 99999;
|
|
||||||
border: solid 1px #DEDEDE;
|
|
||||||
background: #fff;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contextMenu LI {
|
|
||||||
list-style: none;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contextMenu A {
|
|
||||||
color: #333;
|
|
||||||
text-decoration: none;
|
|
||||||
display: block;
|
|
||||||
line-height: 20px;
|
|
||||||
height: 20px;
|
|
||||||
background-position: 9px center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
outline: none;
|
|
||||||
padding: 3px 5px;
|
|
||||||
padding-left: 32px;
|
|
||||||
font-size: 16px;
|
|
||||||
font-variant: small-caps;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contextMenu LI.hover A {
|
|
||||||
color: #FFF;
|
|
||||||
background-color: #3399FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contextMenu LI.disabled A {
|
|
||||||
color: #AAA;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contextMenu LI.hover.disabled A {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contextMenu LI.separator {
|
|
||||||
border-top: solid 1px #CCC;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Adding Icons
|
|
||||||
|
|
||||||
You can add icons to the context menu by adding
|
|
||||||
classes to the respective LI element(s)
|
|
||||||
*/
|
|
||||||
|
|
||||||
.contextMenu LI.download A { background-image: url(../../images/download_gd_12x16.png); }
|
|
|
@ -1,209 +0,0 @@
|
||||||
// jQuery Context Menu Plugin
|
|
||||||
//
|
|
||||||
// Version 1.01
|
|
||||||
//
|
|
||||||
// Cory S.N. LaViska
|
|
||||||
// A Beautiful Site (http://abeautifulsite.net/)
|
|
||||||
//
|
|
||||||
// More info: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
|
|
||||||
//
|
|
||||||
// Terms of Use
|
|
||||||
//
|
|
||||||
// This plugin is dual-licensed under the GNU General Public License
|
|
||||||
// and the MIT License and is copyright A Beautiful Site, LLC.
|
|
||||||
//
|
|
||||||
if (jQuery) (function () {
|
|
||||||
$.extend($.fn, {
|
|
||||||
|
|
||||||
contextMenu: function (o, callback) {
|
|
||||||
// Defaults
|
|
||||||
if (o.menu == undefined) return false;
|
|
||||||
if (o.inSpeed == undefined) o.inSpeed = 150;
|
|
||||||
if (o.outSpeed == undefined) o.outSpeed = 75;
|
|
||||||
// 0 needs to be -1 for expected results (no fade)
|
|
||||||
if (o.inSpeed == 0) o.inSpeed = -1;
|
|
||||||
if (o.outSpeed == 0) o.outSpeed = -1;
|
|
||||||
// Loop each context menu
|
|
||||||
$(this).live("mousedown", function (e) {
|
|
||||||
var el = $(this);
|
|
||||||
var offset = $(el).offset();
|
|
||||||
// Add contextMenu class
|
|
||||||
$('#' + o.menu).addClass('contextMenu');
|
|
||||||
|
|
||||||
var evt = e;
|
|
||||||
evt.stopPropagation();
|
|
||||||
$(this).mouseup(function (e) {
|
|
||||||
e.stopPropagation();
|
|
||||||
var srcElement = $(this);
|
|
||||||
$(this).unbind('mouseup');
|
|
||||||
if (evt.button == 2) {
|
|
||||||
// Hide context menus that may be showing
|
|
||||||
$(".contextMenu").hide();
|
|
||||||
// Get this context menu
|
|
||||||
var menu = $('#' + o.menu);
|
|
||||||
|
|
||||||
if ($(el).hasClass('disabled')) return false;
|
|
||||||
|
|
||||||
// Detect mouse position
|
|
||||||
var d = {}, x, y;
|
|
||||||
if (self.innerHeight) {
|
|
||||||
d.pageYOffset = self.pageYOffset;
|
|
||||||
d.pageXOffset = self.pageXOffset;
|
|
||||||
d.innerHeight = self.innerHeight;
|
|
||||||
d.innerWidth = self.innerWidth;
|
|
||||||
} else if (document.documentElement &&
|
|
||||||
document.documentElement.clientHeight) {
|
|
||||||
d.pageYOffset = document.documentElement.scrollTop;
|
|
||||||
d.pageXOffset = document.documentElement.scrollLeft;
|
|
||||||
d.innerHeight = document.documentElement.clientHeight;
|
|
||||||
d.innerWidth = document.documentElement.clientWidth;
|
|
||||||
} else if (document.body) {
|
|
||||||
d.pageYOffset = document.body.scrollTop;
|
|
||||||
d.pageXOffset = document.body.scrollLeft;
|
|
||||||
d.innerHeight = document.body.clientHeight;
|
|
||||||
d.innerWidth = document.body.clientWidth;
|
|
||||||
}
|
|
||||||
(e.pageX) ? x = e.pageX : x = e.clientX + d.scrollLeft;
|
|
||||||
(e.pageY) ? y = e.pageY : y = e.clientY + d.scrollTop;
|
|
||||||
|
|
||||||
// Show the menu
|
|
||||||
//$(document).unbind('click');
|
|
||||||
$(menu).css({ top: y, left: x }).fadeIn(o.inSpeed);
|
|
||||||
// Hover events
|
|
||||||
$(menu).find('A').mouseover(function () {
|
|
||||||
$(menu).find('LI.hover').removeClass('hover');
|
|
||||||
$(this).parent().addClass('hover');
|
|
||||||
}).mouseout(function () {
|
|
||||||
$(menu).find('LI.hover').removeClass('hover');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Keyboard
|
|
||||||
$(document).keypress(function (e) {
|
|
||||||
switch (e.keyCode) {
|
|
||||||
case 38: // up
|
|
||||||
if ($(menu).find('LI.hover').size() == 0) {
|
|
||||||
$(menu).find('LI:last').addClass('hover');
|
|
||||||
} else {
|
|
||||||
$(menu).find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover');
|
|
||||||
if ($(menu).find('LI.hover').size() == 0) $(menu).find('LI:last').addClass('hover');
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 40: // down
|
|
||||||
if ($(menu).find('LI.hover').size() == 0) {
|
|
||||||
$(menu).find('LI:first').addClass('hover');
|
|
||||||
} else {
|
|
||||||
$(menu).find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover');
|
|
||||||
if ($(menu).find('LI.hover').size() == 0) $(menu).find('LI:first').addClass('hover');
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 13: // enter
|
|
||||||
$(menu).find('LI.hover A').trigger('click');
|
|
||||||
break;
|
|
||||||
case 27: // esc
|
|
||||||
$(document).trigger('click');
|
|
||||||
break
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// When items are selected
|
|
||||||
$('#' + o.menu).find('A').unbind('click');
|
|
||||||
$('#' + o.menu).find('LI:not(.disabled) A').click(function () {
|
|
||||||
//$(document).unbind('click').unbind('keypress');
|
|
||||||
$(".contextMenu").hide();
|
|
||||||
// Callback
|
|
||||||
if (callback) callback($(this).attr('href').substr(1), $(srcElement), { x: x - offset.left, y: y - offset.top, docX: x, docY: y });
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Hide bindings
|
|
||||||
setTimeout(function () { // Delay for Mozilla
|
|
||||||
$(document).click(function () {
|
|
||||||
//$(document).unbind('click').unbind('keypress');
|
|
||||||
$(menu).fadeOut(o.outSpeed);
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
}, 0);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Disable text selection
|
|
||||||
if ($.browser.mozilla) {
|
|
||||||
$('#' + o.menu).each(function () { $(this).css({ 'MozUserSelect': 'none' }); });
|
|
||||||
} else if ($.browser.msie) {
|
|
||||||
$('#' + o.menu).each(function () { $(this).bind('selectstart.disableTextSelect', function () { return false; }); });
|
|
||||||
} else {
|
|
||||||
$('#' + o.menu).each(function () { $(this).bind('mousedown.disableTextSelect', function () { return false; }); });
|
|
||||||
}
|
|
||||||
// Disable browser context menu (requires both selectors to work in IE/Safari + FF/Chrome)
|
|
||||||
$(el).add($('UL.contextMenu')).bind('contextmenu', function () { return false; });
|
|
||||||
|
|
||||||
});
|
|
||||||
return $(this);
|
|
||||||
},
|
|
||||||
|
|
||||||
// Disable context menu items on the fly
|
|
||||||
disableContextMenuItems: function (o) {
|
|
||||||
if (o == undefined) {
|
|
||||||
// Disable all
|
|
||||||
$(this).find('LI').addClass('disabled');
|
|
||||||
return ($(this));
|
|
||||||
}
|
|
||||||
$(this).each(function () {
|
|
||||||
if (o != undefined) {
|
|
||||||
var d = o.split(',');
|
|
||||||
for (var i = 0; i < d.length; i++) {
|
|
||||||
$(this).find('A[href="' + d[i] + '"]').parent().addClass('disabled');
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return ($(this));
|
|
||||||
},
|
|
||||||
|
|
||||||
// Enable context menu items on the fly
|
|
||||||
enableContextMenuItems: function (o) {
|
|
||||||
if (o == undefined) {
|
|
||||||
// Enable all
|
|
||||||
$(this).find('LI.disabled').removeClass('disabled');
|
|
||||||
return ($(this));
|
|
||||||
}
|
|
||||||
$(this).each(function () {
|
|
||||||
if (o != undefined) {
|
|
||||||
var d = o.split(',');
|
|
||||||
for (var i = 0; i < d.length; i++) {
|
|
||||||
$(this).find('A[href="' + d[i] + '"]').parent().removeClass('disabled');
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return ($(this));
|
|
||||||
},
|
|
||||||
|
|
||||||
// Disable context menu(s)
|
|
||||||
disableContextMenu: function () {
|
|
||||||
$(this).each(function () {
|
|
||||||
$(this).addClass('disabled');
|
|
||||||
});
|
|
||||||
return ($(this));
|
|
||||||
},
|
|
||||||
|
|
||||||
// Enable context menu(s)
|
|
||||||
enableContextMenu: function () {
|
|
||||||
$(this).each(function () {
|
|
||||||
$(this).removeClass('disabled');
|
|
||||||
});
|
|
||||||
return ($(this));
|
|
||||||
},
|
|
||||||
|
|
||||||
// Destroy context menu(s)
|
|
||||||
destroyContextMenu: function () {
|
|
||||||
// Destroy specified context menus
|
|
||||||
$(this).each(function () {
|
|
||||||
// Disable action
|
|
||||||
$(this).unbind('mousedown').unbind('mouseup');
|
|
||||||
});
|
|
||||||
return ($(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
})(jQuery);
|
|
|
@ -1,5 +1,5 @@
|
||||||
function loadArtists(id, refresh) {
|
function loadArtists(id, refresh) {
|
||||||
console.log("LOAD ARTISTS");
|
if (debug) { console.log("LOAD ARTISTS"); }
|
||||||
if (refresh) {
|
if (refresh) {
|
||||||
$('#ArtistContainer').empty();
|
$('#ArtistContainer').empty();
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ function loadArtists(id, refresh) {
|
||||||
} else {
|
} else {
|
||||||
url = baseURL + '/getIndexes.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp';
|
url = baseURL + '/getIndexes.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp';
|
||||||
}
|
}
|
||||||
console.log(url);
|
if (debug) { console.log(url); }
|
||||||
var content = $('#ArtistContainer').html();
|
var content = $('#ArtistContainer').html();
|
||||||
if (content === "") {
|
if (content === "") {
|
||||||
// Load Artist List
|
// Load Artist List
|
||||||
|
@ -20,13 +20,16 @@ function loadArtists(id, refresh) {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
dataType: 'jsonp',
|
dataType: 'jsonp',
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
done: function() { console.log("DONE!"); },
|
done: function () { if (debug) { console.log("DONE!"); } },
|
||||||
error: function() { console.log("ERROR!"); },
|
error: function () { if (debug) { console.log("ERROR!"); } },
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
console.log("SUCCESS");
|
if (debug) { console.log("SUCCESS"); }
|
||||||
if (data["subsonic-response"].status === 'ok') {
|
if (data["subsonic-response"].status === 'ok') {
|
||||||
var indexlist, indexname;
|
var indexlist, indexname;
|
||||||
|
|
||||||
|
if (data["subsonic-response"].version != '') {
|
||||||
|
version = data["subsonic-response"].version;
|
||||||
|
}
|
||||||
// There is a bug in the API that doesn't return a JSON array for one artist
|
// There is a bug in the API that doesn't return a JSON array for one artist
|
||||||
var indexes = [];
|
var indexes = [];
|
||||||
if (data["subsonic-response"].indexes.index.length > 0) {
|
if (data["subsonic-response"].indexes.index.length > 0) {
|
||||||
|
@ -110,6 +113,7 @@ function getMusicFolders() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function getAlbums(id, action, appendto) {
|
function getAlbums(id, action, appendto) {
|
||||||
|
$('.first').trigger('click');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: baseURL + '/getMusicDirectory.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp&id=' + id,
|
url: baseURL + '/getMusicDirectory.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp&id=' + id,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
@ -163,6 +167,7 @@ function getAlbums(id, action, appendto) {
|
||||||
}
|
}
|
||||||
if (appendto === '#AlbumRows' && isDir === false) {
|
if (appendto === '#AlbumRows' && isDir === false) {
|
||||||
header = generateSongHeaderHTML();
|
header = generateSongHeaderHTML();
|
||||||
|
$('#songactions').show();
|
||||||
}
|
}
|
||||||
$("#AlbumHeader").html(header);
|
$("#AlbumHeader").html(header);
|
||||||
if (action === 'autoplay') {
|
if (action === 'autoplay') {
|
||||||
|
@ -343,29 +348,44 @@ function search(type, query) {
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data["subsonic-response"].searchResult2 !== "") {
|
if (data["subsonic-response"].searchResult2 !== "") {
|
||||||
$("#AlbumRows").empty();
|
$("#AlbumRows").empty();
|
||||||
var header = generateSongHeaderHTML();
|
var header;
|
||||||
$("#AlbumHeader").html(header);
|
|
||||||
// There is a bug in the API that doesn't return a JSON array for one artist
|
|
||||||
var children = [];
|
var children = [];
|
||||||
|
if (type === 'song') {
|
||||||
|
header = generateSongHeaderHTML();
|
||||||
|
if (data["subsonic-response"].searchResult2.song !== undefined) {
|
||||||
if (data["subsonic-response"].searchResult2.song.length > 0) {
|
if (data["subsonic-response"].searchResult2.song.length > 0) {
|
||||||
children = data["subsonic-response"].searchResult2.song;
|
children = data["subsonic-response"].searchResult2.song;
|
||||||
} else {
|
} else {
|
||||||
children[0] = data["subsonic-response"].searchResult2.song;
|
children[0] = data["subsonic-response"].searchResult2.song;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
var rowcolor;
|
}
|
||||||
var albumhtml;
|
if (type === 'album') {
|
||||||
|
header = generateAlbumHeaderHTML();
|
||||||
|
if (data["subsonic-response"].searchResult2.album !== undefined) {
|
||||||
|
if (data["subsonic-response"].searchResult2.album.length > 0) {
|
||||||
|
children = data["subsonic-response"].searchResult2.album;
|
||||||
|
} else {
|
||||||
|
children[0] = data["subsonic-response"].searchResult2.album;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$("#AlbumHeader").html(header);
|
||||||
$.each(children, function (i, child) {
|
$.each(children, function (i, child) {
|
||||||
if (i % 2 === 0) {
|
if (i % 2 === 0) {
|
||||||
rowcolor = 'even';
|
rowcolor = 'even';
|
||||||
} else {
|
} else {
|
||||||
rowcolor = 'odd';
|
rowcolor = 'odd';
|
||||||
}
|
}
|
||||||
|
isDir = child.isDir;
|
||||||
|
if (isDir === true) {
|
||||||
|
albumhtml = generateAlbumHTML(rowcolor, child.id, child.parent, child.coverArt, child.title, child.artist, child.userRating);
|
||||||
|
} else {
|
||||||
var track;
|
var track;
|
||||||
if (child.track === undefined) { track = " "; } else { track = child.track; }
|
if (child.track === undefined) { track = " "; } else { track = child.track; }
|
||||||
var time = secondsToTime(child.duration);
|
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 = generateSongHTML(rowcolor, child.id, child.parent, track, child.title, child.artist, child.album, child.coverArt, child.userRating, time['m'], time['s']);
|
||||||
|
}
|
||||||
$(albumhtml).appendTo("#AlbumRows");
|
$(albumhtml).appendTo("#AlbumRows");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -374,6 +394,7 @@ function search(type, query) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPlaylists(refresh) {
|
function loadPlaylists(refresh) {
|
||||||
|
if (debug) { console.log("LOAD PLAYLISTS"); }
|
||||||
if (refresh) {
|
if (refresh) {
|
||||||
$('#PlaylistContainer').empty();
|
$('#PlaylistContainer').empty();
|
||||||
}
|
}
|
||||||
|
@ -400,6 +421,7 @@ function loadPlaylists(refresh) {
|
||||||
html += '<li id=\"' + playlist.id + '\" class=\"item\">';
|
html += '<li id=\"' + playlist.id + '\" class=\"item\">';
|
||||||
html += '<span>' + playlist.name + '</span>';
|
html += '<span>' + playlist.name + '</span>';
|
||||||
html += '<div class=\"floatright\"><a class=\"play\" href=\"\" title=\"Play\"></a></div>';
|
html += '<div class=\"floatright\"><a class=\"play\" href=\"\" title=\"Play\"></a></div>';
|
||||||
|
html += '<div class=\"floatright\"><a class=\"download\" href=\"\" title=\"Download\"></a></div>';
|
||||||
html += '<div class=\"floatright\"><a class=\"add\" href=\"\" title=\"Add To Current Playlist\"></a></div>';
|
html += '<div class=\"floatright\"><a class=\"add\" href=\"\" title=\"Add To Current Playlist\"></a></div>';
|
||||||
html += '</li>';
|
html += '</li>';
|
||||||
$(html).appendTo("#PlaylistContainer");
|
$(html).appendTo("#PlaylistContainer");
|
||||||
|
@ -425,6 +447,11 @@ function loadPlaylistsForMenu(menu) {
|
||||||
} else {
|
} else {
|
||||||
playlists[0] = data["subsonic-response"].playlists.playlist;
|
playlists[0] = data["subsonic-response"].playlists.playlist;
|
||||||
}
|
}
|
||||||
|
if (menu === 'submenu_AddCurrentToPlaylist') {
|
||||||
|
$("<a href=\"#\" onclick=\"javascript:addToPlaylist('new', 'current'); return false;\">+ New</a><br />").appendTo("#" + menu);
|
||||||
|
} else {
|
||||||
|
$("<a href=\"#\" onclick=\"javascript:addToPlaylist('new', ''); return false;\">+ New</a><br />").appendTo("#" + menu);
|
||||||
|
}
|
||||||
$.each(playlists, function (i, playlist) {
|
$.each(playlists, function (i, playlist) {
|
||||||
if (menu === 'submenu_AddCurrentToPlaylist') {
|
if (menu === 'submenu_AddCurrentToPlaylist') {
|
||||||
$("<a href=\"#\" onclick=\"javascript:addToPlaylist('" + playlist.id + "', 'current'); return false;\">" + playlist.name + "</a><br />").appendTo("#" + menu);
|
$("<a href=\"#\" onclick=\"javascript:addToPlaylist('" + playlist.id + "', 'current'); return false;\">" + playlist.name + "</a><br />").appendTo("#" + menu);
|
||||||
|
@ -432,6 +459,7 @@ function loadPlaylistsForMenu(menu) {
|
||||||
$("<a href=\"#\" onclick=\"javascript:addToPlaylist('" + playlist.id + "', ''); return false;\">" + playlist.name + "</a><br />").appendTo("#" + menu);
|
$("<a href=\"#\" onclick=\"javascript:addToPlaylist('" + playlist.id + "', ''); return false;\">" + playlist.name + "</a><br />").appendTo("#" + menu);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//$("<a href=\"#\" onclick=\"javascript:addToPlaylist('new'); return false;\">+ New Playlist</a><br />").appendTo("#submenu");
|
//$("<a href=\"#\" onclick=\"javascript:addToPlaylist('new'); return false;\">+ New Playlist</a><br />").appendTo("#submenu");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -534,12 +562,13 @@ function addToPlaylist(playlistid, from) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
var reply = prompt("Choose a name for your new playlist.", "");
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
url: baseURL + '/createPlaylist.view',
|
url: baseURL + '/createPlaylist.view',
|
||||||
dataType: 'jsonp',
|
dataType: 'jsonp',
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
data: { u: username, p: passwordenc, v: version, c: applicationName, f: "jsonp", name: 'New Playlist', songId: selected },
|
data: { u: username, p: passwordenc, v: version, c: applicationName, f: "jsonp", name: "" + reply + "", songId: selected },
|
||||||
beforeSend: function (req) {
|
beforeSend: function (req) {
|
||||||
req.setRequestHeader('Authorization', auth);
|
req.setRequestHeader('Authorization', auth);
|
||||||
},
|
},
|
||||||
|
@ -576,12 +605,25 @@ function addToCurrent(addAll) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function downloadItem(id) {
|
function downloadItem(id, type) {
|
||||||
|
var url;
|
||||||
|
if (type == 'item' && id) {
|
||||||
|
reqDownload = 'id=' + id;
|
||||||
|
}
|
||||||
|
if (type == 'playlist' && id) {
|
||||||
|
reqDownload = 'playlistUtf8Hex=' + id;
|
||||||
|
}
|
||||||
|
if (reqDownload) {
|
||||||
|
url = baseURL + '/download.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp&' + reqDownload;
|
||||||
|
window.location = url;
|
||||||
|
}
|
||||||
|
/* 20120520 OwnCloud Merge
|
||||||
var url;
|
var url;
|
||||||
if (id) {
|
if (id) {
|
||||||
url = baseURL + '/download.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp&id=' + id;
|
url = baseURL + '/download.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&f=jsonp&id=' + id;
|
||||||
window.location = url;
|
window.location = url;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
$('table.songlist tr.selected').each(function (index) {
|
$('table.songlist tr.selected').each(function (index) {
|
||||||
id = $(this).attr('childid');
|
id = $(this).attr('childid');
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
function auth()
|
|
||||||
{
|
|
||||||
$('#Username').val($.cookie('username'));
|
|
||||||
$('#Password').val($.cookie('password'));
|
|
||||||
$('#AutoAlbumSize').val($.cookie('AutoAlbumSize'));
|
|
||||||
$('#AutoPlaylistSize').val($.cookie('AutoPlaylistSize'));
|
|
||||||
$('#Server').val($.cookie('Server'));
|
|
||||||
$('#ApplicationName').val($.cookie('ApplicationName'));
|
|
||||||
}
|
|
|
@ -15,7 +15,11 @@ function generateAlbumHTML(rowcolor, childid, parentid, coverart, title, artist,
|
||||||
html += '<a class=\"rate\" href=\"\" title=\"Add To Favorites\"></a>';
|
html += '<a class=\"rate\" href=\"\" title=\"Add To Favorites\"></a>';
|
||||||
}
|
}
|
||||||
html += '</td>';
|
html += '</td>';
|
||||||
|
if (coverart == undefined) {
|
||||||
|
html += '<td class=\"albumart\"><img src=\"images/albumdefault_50.jpg\" /></td>';
|
||||||
|
} else {
|
||||||
html += '<td class=\"albumart\"><img src=\"' + baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart + '\" /></td>';
|
html += '<td class=\"albumart\"><img src=\"' + baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart + '\" /></td>';
|
||||||
|
}
|
||||||
html += '<td class=\"album\">' + title + '</td>';
|
html += '<td class=\"album\">' + title + '</td>';
|
||||||
html += '<td class=\"artist\">' + artist + '</td>';
|
html += '<td class=\"artist\">' + artist + '</td>';
|
||||||
html += '</tr>';
|
html += '</tr>';
|
||||||
|
@ -32,6 +36,7 @@ function generateSongHTML(rowcolor, childid, parentid, track, title, artist, alb
|
||||||
html += '<td class=\"itemactions\"><a class=\"add\" href=\"\" title=\"Add To Current Playlist\"></a>';
|
html += '<td class=\"itemactions\"><a class=\"add\" href=\"\" title=\"Add To Current Playlist\"></a>';
|
||||||
html += '<a class=\"remove\" href=\"\" title=\"Remove\"></a>';
|
html += '<a class=\"remove\" href=\"\" title=\"Remove\"></a>';
|
||||||
html += '<a class=\"play\" href=\"\" title=\"Play\"></a>';
|
html += '<a class=\"play\" href=\"\" title=\"Play\"></a>';
|
||||||
|
html += '<a class=\"download\" href=\"\" title=\"Download\"></a>';
|
||||||
if (rating === 5) {
|
if (rating === 5) {
|
||||||
html += '<a class=\"favorite\" href=\"\" title=\"Favorite\"></a>';
|
html += '<a class=\"favorite\" href=\"\" title=\"Favorite\"></a>';
|
||||||
} else {
|
} else {
|
||||||
|
@ -41,7 +46,13 @@ function generateSongHTML(rowcolor, childid, parentid, track, title, artist, alb
|
||||||
html += '<td class=\"track\">' + track + '</td>';
|
html += '<td class=\"track\">' + track + '</td>';
|
||||||
html += '<td class=\"title\">' + title + '</td>';
|
html += '<td class=\"title\">' + title + '</td>';
|
||||||
html += '<td class=\"artist\">' + artist + '</td>';
|
html += '<td class=\"artist\">' + artist + '</td>';
|
||||||
html += '<td class=\"album\">' + album + '<img src=\"' + baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=25&id=' + coverart + '\" /></td>';
|
var coverartSrc;
|
||||||
|
if (coverart == undefined) {
|
||||||
|
coverartSrc = 'images/albumdefault_25.jpg';
|
||||||
|
} else {
|
||||||
|
coverartSrc = baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=25&id=' + coverart;
|
||||||
|
}
|
||||||
|
html += '<td class=\"album\"><a href="javascript:getAlbums(\'' + parentid + '\',\'\',\'#AlbumRows\')">' + album + '<img src=\"' + coverartSrc + '\" /></a></td>';
|
||||||
html += '<td class=\"time\">' + m + ':' + s + '</td>';
|
html += '<td class=\"time\">' + m + ':' + s + '</td>';
|
||||||
html += '</tr>';
|
html += '</tr>';
|
||||||
return html;
|
return html;
|
||||||
|
|
|
@ -9,7 +9,7 @@ function playSong(el, songid, albumid) {
|
||||||
req.setRequestHeader('Authorization', auth);
|
req.setRequestHeader('Authorization', auth);
|
||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
var title, artist, album;
|
var title, artist, album, rating;
|
||||||
if (data["subsonic-response"].directory !== undefined) {
|
if (data["subsonic-response"].directory !== undefined) {
|
||||||
// There is a bug in the API that doesn't return a JSON array for one artist
|
// There is a bug in the API that doesn't return a JSON array for one artist
|
||||||
var children = [];
|
var children = [];
|
||||||
|
@ -19,20 +19,34 @@ function playSong(el, songid, albumid) {
|
||||||
children[0] = data["subsonic-response"].directory.child;
|
children[0] = data["subsonic-response"].directory.child;
|
||||||
}
|
}
|
||||||
$.each(children, function (i, child) {
|
$.each(children, function (i, child) {
|
||||||
if (child.id === songid) {
|
if (child.id == songid) {
|
||||||
title = child.title;
|
title = child.title;
|
||||||
artist = child.artist;
|
artist = child.artist;
|
||||||
album = child.album;
|
album = child.album;
|
||||||
coverart = child.coverArt;
|
coverart = child.coverArt;
|
||||||
|
rating = child.userRating;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (rating == 5) {
|
||||||
|
$('#songdetails_rate').attr('class', 'favorite');
|
||||||
|
} else {
|
||||||
|
$('#songdetails_rate').attr('class', 'rate');
|
||||||
|
}
|
||||||
$('#songdetails_song').html(title);
|
$('#songdetails_song').html(title);
|
||||||
$('#songdetails_song').attr('parentid', albumid);
|
$('#songdetails_song').attr('parentid', albumid);
|
||||||
$('#songdetails_song').attr('childid', songid);
|
$('#songdetails_song').attr('childid', songid);
|
||||||
$('#songdetails_artist').html(artist + ' - ' + album);
|
$('#songdetails_artist').html(artist + ' - ' + album);
|
||||||
$('#coverartimage').attr('href', baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&id=' + coverart);
|
var coverartSrc, coverartFullSrc;
|
||||||
$('#coverartimage img').attr('src', baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart);
|
if (coverart == undefined) {
|
||||||
|
coverartSrc = 'images/albumdefault_50.jpg';
|
||||||
|
coverartFullSrc = '';
|
||||||
|
} else {
|
||||||
|
coverartSrc = baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart;
|
||||||
|
coverartFullSrc = baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&id=' + coverart;
|
||||||
|
}
|
||||||
|
$('#coverartimage').attr('href', coverartFullSrc);
|
||||||
|
$('#coverartimage img').attr('src', coverartSrc);
|
||||||
$('#playermiddle').css('visibility', 'visible');
|
$('#playermiddle').css('visibility', 'visible');
|
||||||
$('#songdetails').css('visibility', 'visible');
|
$('#songdetails').css('visibility', 'visible');
|
||||||
// SoundManager Initialize
|
// SoundManager Initialize
|
||||||
|
@ -40,21 +54,26 @@ function playSong(el, songid, albumid) {
|
||||||
if (audio) {
|
if (audio) {
|
||||||
soundManager.destroySound('audio');
|
soundManager.destroySound('audio');
|
||||||
}
|
}
|
||||||
|
soundManager.onready(function () {
|
||||||
|
if (debug) {
|
||||||
|
console.log("SM HTML5 STATUS");
|
||||||
|
$.each(soundManager.html5, function (key, value) {
|
||||||
|
console.log(key + ': ' + value);
|
||||||
|
});
|
||||||
|
}
|
||||||
audio = soundManager.createSound({
|
audio = soundManager.createSound({
|
||||||
id: 'audio',
|
id: 'audio',
|
||||||
url: baseURL + '/stream.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&id=' + songid + '&salt=' + salt,
|
url: baseURL + '/stream.view?u=' + username + '&p=' + passwordenc + '&v=' + version + '&c=' + applicationName + '&id=' + songid + '&salt=' + salt,
|
||||||
stream: true,
|
stream: true,
|
||||||
whileloading: function () {
|
whileloading: function () {
|
||||||
if (debug) {
|
if (debug) { console.log('loaded:' + this.bytesLoaded + ' total:' + this.bytesTotal); }
|
||||||
console.log('loaded:' + this.bytesLoaded + ' total:' + this.bytesTotal);
|
|
||||||
}
|
|
||||||
var percent = this.bytesLoaded / this.bytesTotal;
|
var percent = this.bytesLoaded / this.bytesTotal;
|
||||||
var scrubber = $('#audio_wrapper0').find(".scrubber");
|
var scrubber = $('#audio_wrapper0').find(".scrubber");
|
||||||
var loaded = $('#audio_wrapper0').find(".loaded");
|
var loaded = $('#audio_wrapper0').find(".loaded");
|
||||||
loaded.css('width', (scrubber.get(0).offsetWidth * percent) + 'px');
|
loaded.css('width', (scrubber.get(0).offsetWidth * percent) + 'px');
|
||||||
},
|
},
|
||||||
whileplaying: function () {
|
whileplaying: function () {
|
||||||
//console.log('position:' + this.position + ' duration:' + this.duration);
|
if (debug) { console.log('position:' + this.position + ' duration:' + this.duration); }
|
||||||
var percent = this.position / this.duration;
|
var percent = this.position / this.duration;
|
||||||
var scrubber = $('#audio_wrapper0').find(".scrubber");
|
var scrubber = $('#audio_wrapper0').find(".scrubber");
|
||||||
var progress = $('#audio_wrapper0').find(".progress");
|
var progress = $('#audio_wrapper0').find(".progress");
|
||||||
|
@ -68,6 +87,7 @@ function playSong(el, songid, albumid) {
|
||||||
|
|
||||||
// Scrobble song once percentage is reached
|
// Scrobble song once percentage is reached
|
||||||
if (!scrobbled && p > 30 && (percent > 0.5 || p > 480)) {
|
if (!scrobbled && p > 30 && (percent > 0.5 || p > 480)) {
|
||||||
|
if (debug) { console.log("LAST.FM SCROBBLE"); }
|
||||||
scrobbleSong(true);
|
scrobbleSong(true);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -77,6 +97,15 @@ function playSong(el, songid, albumid) {
|
||||||
dm = Math.floor(dp / 60),
|
dm = Math.floor(dp / 60),
|
||||||
ds = Math.floor(dp % 60);
|
ds = Math.floor(dp % 60);
|
||||||
duration.html((dm < 10 ? '0' : '') + dm + ':' + (ds < 10 ? '0' : '') + ds);
|
duration.html((dm < 10 ? '0' : '') + dm + ':' + (ds < 10 ? '0' : '') + ds);
|
||||||
|
var scrubber = $('#audio_wrapper0').find(".scrubber");
|
||||||
|
scrubber.unbind("click");
|
||||||
|
scrubber.click(function (e) {
|
||||||
|
var x = (e.pageX - this.offsetLeft) / scrubber.width();
|
||||||
|
var position = Math.round(dp * 1000 * x);
|
||||||
|
audio.play({
|
||||||
|
position: position
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
onfinish: function () {
|
onfinish: function () {
|
||||||
var next = $('#CurrentPlaylistContainer tr.playing').next();
|
var next = $('#CurrentPlaylistContainer tr.playing').next();
|
||||||
|
@ -84,6 +113,7 @@ function playSong(el, songid, albumid) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
audio.play('audio');
|
audio.play('audio');
|
||||||
|
});
|
||||||
|
|
||||||
$('table.songlist tr.song').removeClass('playing');
|
$('table.songlist tr.song').removeClass('playing');
|
||||||
$(el).addClass('playing');
|
$(el).addClass('playing');
|
||||||
|
@ -93,7 +123,7 @@ function playSong(el, songid, albumid) {
|
||||||
scrobbled = false;
|
scrobbled = false;
|
||||||
|
|
||||||
if ($.cookie('EnableNotifications')) {
|
if ($.cookie('EnableNotifications')) {
|
||||||
showNotification(baseURL + '/getCoverArt.view?v=' + version + '&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart, toHTML.un(title), toHTML.un(artist + ' - ' + album));
|
showNotification(coverartSrc, toHTML.un(title), toHTML.un(artist + ' - ' + album));
|
||||||
}
|
}
|
||||||
if ($.cookie('ScrollTitle')) {
|
if ($.cookie('ScrollTitle')) {
|
||||||
scrollTitle(toHTML.un(artist) + ' - ' + toHTML.un(title));
|
scrollTitle(toHTML.un(artist) + ' - ' + toHTML.un(title));
|
||||||
|
|
39
js/main.js
39
js/main.js
|
@ -1,39 +0,0 @@
|
||||||
require(["jquery", "sm/soundmanager2-jsmin", "plugins/jquery.scrollTo-1.4.2-min", "plugins/jquery.disable.text.select.pack",
|
|
||||||
"plugins/jquery.cookie", "plugins/jquery.base64", "plugins/jquery.dateFormat-1.0", "plugins/jquery.periodic", "plugins/jquery.shuffle",
|
|
||||||
"fancybox/jquery.fancybox-1.3.4.pack",
|
|
||||||
"plugins/jquery.linkify-1.0-min", "libs/utils", "libs/api", "libs/generators", "libs/chat", "libs/player", "app", "ui-load", "ui-ready"
|
|
||||||
], function($) {
|
|
||||||
|
|
||||||
$(function() {
|
|
||||||
//Sound manager
|
|
||||||
soundManager.url = 'js/sm/swf';
|
|
||||||
soundManager.preferFlash = false;
|
|
||||||
soundManager.debugMode = false;
|
|
||||||
//soundManager.flashVersion = 9; // optional: shiny features (default = 8)
|
|
||||||
//soundManager.useFlashBlock = false; // optionally, enable when you're ready to dive in
|
|
||||||
|
|
||||||
//User config staff
|
|
||||||
$('#Username').val($.cookie('username'));
|
|
||||||
$('#Password').val($.cookie('password'));
|
|
||||||
$('#AutoAlbumSize').val($.cookie('AutoAlbumSize'));
|
|
||||||
$('#AutoPlaylistSize').val($.cookie('AutoPlaylistSize'));
|
|
||||||
$('#Server').val($.cookie('Server'));
|
|
||||||
$('#ApplicationName').val($.cookie('ApplicationName'));
|
|
||||||
|
|
||||||
if ($.cookie('HideAZ')) {
|
|
||||||
$('#HideAZ').attr('checked', true);
|
|
||||||
} else {
|
|
||||||
$('#HideAZ').attr('checked', false);
|
|
||||||
}
|
|
||||||
if ($.cookie('EnableNotifications')) {
|
|
||||||
$('#EnableNotifications').attr('checked', true);
|
|
||||||
} else {
|
|
||||||
$('#EnableNotifications').attr('checked', false);
|
|
||||||
}
|
|
||||||
if ($.cookie('ScrollTitle')) {
|
|
||||||
$('#ScrollTitle').attr('checked', true);
|
|
||||||
} else {
|
|
||||||
$('#ScrollTitle').attr('checked', false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
11467
js/require-jquery.js
11467
js/require-jquery.js
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,35 @@
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
//User config staff
|
||||||
|
$('#Username').val($.cookie('username'));
|
||||||
|
$('#Password').val($.cookie('password'));
|
||||||
|
$('#AutoAlbumSize').val($.cookie('AutoAlbumSize'));
|
||||||
|
$('#AutoPlaylistSize').val($.cookie('AutoPlaylistSize'));
|
||||||
|
$('#Server').val($.cookie('Server'));
|
||||||
|
$('#ApplicationName').val($.cookie('ApplicationName'));
|
||||||
|
|
||||||
|
// Set Preferences defaults
|
||||||
|
if ($.cookie('HideAZ')) {
|
||||||
|
$('#HideAZ').attr('checked', true);
|
||||||
|
} else {
|
||||||
|
$('#HideAZ').attr('checked', false);
|
||||||
|
}
|
||||||
|
if ($.cookie('EnableNotifications')) {
|
||||||
|
$('#EnableNotifications').attr('checked', true);
|
||||||
|
} else {
|
||||||
|
$('#EnableNotifications').attr('checked', false);
|
||||||
|
}
|
||||||
|
if ($.cookie('ScrollTitle')) {
|
||||||
|
$('#ScrollTitle').attr('checked', true);
|
||||||
|
} else {
|
||||||
|
$('#ScrollTitle').attr('checked', false);
|
||||||
|
}
|
||||||
|
if ($.cookie('Debug')) {
|
||||||
|
$('#Debug').attr('checked', true);
|
||||||
|
debug = true;
|
||||||
|
} else {
|
||||||
|
$('#Debug').attr('checked', false);
|
||||||
|
}
|
||||||
|
|
||||||
// Tabs
|
// Tabs
|
||||||
$(".tabcontent").hide(); //Hide all content
|
$(".tabcontent").hide(); //Hide all content
|
||||||
if (!$.cookie('username') && !$.cookie('password') && !$.cookie('Server')) {
|
if (!$.cookie('username') && !$.cookie('password') && !$.cookie('Server')) {
|
||||||
|
@ -113,7 +144,7 @@
|
||||||
});
|
});
|
||||||
$('tr.album a.download').live('click', function (event) {
|
$('tr.album a.download').live('click', function (event) {
|
||||||
var itemid = $(this).parent().parent().attr('childid');
|
var itemid = $(this).parent().parent().attr('childid');
|
||||||
downloadItem(itemid);
|
downloadItem(itemid, 'item');
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
$('tr.album a.rate').live('click', function (event) {
|
$('tr.album a.rate').live('click', function (event) {
|
||||||
|
@ -177,7 +208,36 @@
|
||||||
$('table.songlist tr.song a.play').live('click', function (event) {
|
$('table.songlist tr.song a.play').live('click', function (event) {
|
||||||
var songid = $(this).parent().parent().attr('childid');
|
var songid = $(this).parent().parent().attr('childid');
|
||||||
var albumid = $(this).parent().parent().attr('parentid');
|
var albumid = $(this).parent().parent().attr('parentid');
|
||||||
|
if (!$('#tabCurrent').is(':visible')) {
|
||||||
|
$('#CurrentPlaylistContainer tbody').empty();
|
||||||
|
var track = $(this).parent().parent();
|
||||||
|
$(track).clone().appendTo('#CurrentPlaylistContainer');
|
||||||
|
id = 0;
|
||||||
|
count = 0;
|
||||||
|
while (id !== undefined) {
|
||||||
|
track = track.next();
|
||||||
|
id = $(track).attr('childid');
|
||||||
|
$(track).clone().appendTo('#CurrentPlaylistContainer');
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
updateMessage(count + ' Song(s) Added');
|
||||||
|
var firstsong = $('#CurrentPlaylistContainer tr.song:first');
|
||||||
|
songid = $(firstsong).attr('childid');
|
||||||
|
albumid = $(firstsong).attr('parentid');
|
||||||
|
playSong(firstsong, songid, albumid);
|
||||||
|
} else {
|
||||||
playSong($(this).parent().parent(), songid, albumid);
|
playSong($(this).parent().parent(), songid, albumid);
|
||||||
|
}
|
||||||
|
/* 20120520 OwnCloud Merge
|
||||||
|
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.download').live('click', function (event) {
|
||||||
|
var itemid = $(this).parent().parent().attr('childid');
|
||||||
|
downloadItem(itemid, 'item');
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
$('table.songlist tr.song a.add').live('click', function (event) {
|
$('table.songlist tr.song a.add').live('click', function (event) {
|
||||||
|
@ -282,7 +342,8 @@
|
||||||
});
|
});
|
||||||
$('#action_Search').click(function () {
|
$('#action_Search').click(function () {
|
||||||
var query = $('#Search').val();
|
var query = $('#Search').val();
|
||||||
search('song', query);
|
var type = $('#SearchType').val();
|
||||||
|
search(type, query);
|
||||||
$('#Search').val("");
|
$('#Search').val("");
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
@ -347,10 +408,19 @@
|
||||||
getPlaylist($(this).parent().parent().attr("id"), 'autoplay', '#CurrentPlaylistContainer tbody');
|
getPlaylist($(this).parent().parent().attr("id"), 'autoplay', '#CurrentPlaylistContainer tbody');
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
$('#PlaylistContainer li.item a.download').live('click', function (event) {
|
||||||
|
var itemid = $(this).parent().parent().attr('id');
|
||||||
|
downloadItem(itemid, 'playlist');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
$('#PlaylistContainer li.item a.add').live('click', function () {
|
$('#PlaylistContainer li.item a.add').live('click', function () {
|
||||||
getPlaylist($(this).parent().parent().attr("id"), '', '#CurrentPlaylistContainer tbody');
|
getPlaylist($(this).parent().parent().attr("id"), '', '#CurrentPlaylistContainer tbody');
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
$('#action_RefreshPlaylists').click(function () {
|
||||||
|
loadPlaylists(true);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
$('#action_DeletePlaylist').click(function () {
|
$('#action_DeletePlaylist').click(function () {
|
||||||
if ($('#PlaylistContainer li.selected').length > 0) {
|
if ($('#PlaylistContainer li.selected').length > 0) {
|
||||||
if (confirmDelete()) {
|
if (confirmDelete()) {
|
||||||
|
@ -408,6 +478,20 @@
|
||||||
'hideOnContentClick': true,
|
'hideOnContentClick': true,
|
||||||
'type': 'image'
|
'type': 'image'
|
||||||
});
|
});
|
||||||
|
$('#songdetails a.rate').live('click', function (event) {
|
||||||
|
var itemid = $('#songdetails_song').attr('childid');
|
||||||
|
rateSong(itemid, 5);
|
||||||
|
$(this).removeClass('rate');
|
||||||
|
$(this).addClass('favorite');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
$('#songdetails a.favorite').live('click', function (event) {
|
||||||
|
var itemid = $('#songdetails_song').attr('childid');
|
||||||
|
rateSong(itemid, 0);
|
||||||
|
$(this).removeClass('favorite');
|
||||||
|
$(this).addClass('rate');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
// Side Bar Click Events
|
// Side Bar Click Events
|
||||||
$('#action_ToggleSideBar').live('click', function () {
|
$('#action_ToggleSideBar').live('click', function () {
|
||||||
|
@ -480,6 +564,12 @@
|
||||||
$.cookie('ScrollTitle', '1', { expires: 365 });
|
$.cookie('ScrollTitle', '1', { expires: 365 });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$('#Debug').live('click', function () {
|
||||||
|
if ($('#Debug').is(':checked')) {
|
||||||
|
$.cookie('Debug', '1', { expires: 365 });
|
||||||
|
debug = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
$('input#Password').keydown(function (e) {
|
$('input#Password').keydown(function (e) {
|
||||||
var unicode = e.charCode ? e.charCode : e.keyCode;
|
var unicode = e.charCode ? e.charCode : e.keyCode;
|
||||||
if (unicode == 13) {
|
if (unicode == 13) {
|
||||||
|
|
|
@ -274,6 +274,18 @@ ul.mainlist li.item a.play:hover
|
||||||
{
|
{
|
||||||
background: url('../images/play_6x8.png') no-repeat 6px center #DEECFB;
|
background: url('../images/play_6x8.png') no-repeat 6px center #DEECFB;
|
||||||
}
|
}
|
||||||
|
ul.mainlist li.item a.download
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
width: 20px;
|
||||||
|
height: 18px;
|
||||||
|
display: block;
|
||||||
|
background: url('../images/download_gl_9x12.png') no-repeat 5px center;
|
||||||
|
}
|
||||||
|
ul.mainlist li.item a.download:hover
|
||||||
|
{
|
||||||
|
background: url('../images/download_gd_9x12.png') no-repeat 5px center #DEECFB;
|
||||||
|
}
|
||||||
ul.mainlist li.item a.add
|
ul.mainlist li.item a.add
|
||||||
{
|
{
|
||||||
width: 20px;
|
width: 20px;
|
||||||
|
@ -456,6 +468,15 @@ table.songlist tr.song td.album
|
||||||
padding: 0;
|
padding: 0;
|
||||||
line-height: 31px;
|
line-height: 31px;
|
||||||
}
|
}
|
||||||
|
table.songlist tr.song td.album a
|
||||||
|
{
|
||||||
|
color: #829FC0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
table.songlist tr.song td.album a:hover
|
||||||
|
{
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
table.songlist tr.song td.album img
|
table.songlist tr.song td.album img
|
||||||
{
|
{
|
||||||
border: 1px solid #DEDEDE;
|
border: 1px solid #DEDEDE;
|
||||||
|
@ -484,6 +505,18 @@ table.songlist tr.song a.play:hover
|
||||||
{
|
{
|
||||||
background: url('../images/play_6x8.png') no-repeat 7px center #DEECFB;
|
background: url('../images/play_6x8.png') no-repeat 7px center #DEECFB;
|
||||||
}
|
}
|
||||||
|
table.songlist tr.song a.download
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
display: block;
|
||||||
|
background: url('../images/download_gl_9x12.png') no-repeat 5px center;
|
||||||
|
}
|
||||||
|
table.songlist tr.song a.download:hover
|
||||||
|
{
|
||||||
|
background: url('../images/download_gd_9x12.png') no-repeat 5px center #DEECFB;
|
||||||
|
}
|
||||||
table.songlist tr.song a.add
|
table.songlist tr.song a.add
|
||||||
{
|
{
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -537,6 +570,10 @@ table.songlist tr.selected td:first-child
|
||||||
{
|
{
|
||||||
background: url('../images/check_8x7.png') 10px 16px no-repeat;
|
background: url('../images/check_8x7.png') 10px 16px no-repeat;
|
||||||
}
|
}
|
||||||
|
table.songlist tr.selected td.album a
|
||||||
|
{
|
||||||
|
color: #f2f2f2;
|
||||||
|
}
|
||||||
/* tablesorter style */
|
/* tablesorter style */
|
||||||
table.tablesorter {
|
table.tablesorter {
|
||||||
font-family:arial;
|
font-family:arial;
|
||||||
|
@ -624,6 +661,11 @@ background-color: #8dbdd8;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
padding: 0 0 0 5px;
|
padding: 0 0 0 5px;
|
||||||
}
|
}
|
||||||
|
#songactions
|
||||||
|
{
|
||||||
|
display: none;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
.submenu
|
.submenu
|
||||||
{
|
{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -773,7 +815,7 @@ background-color: #8dbdd8;
|
||||||
.audiojs .scrubber
|
.audiojs .scrubber
|
||||||
{
|
{
|
||||||
height: 2px;
|
height: 2px;
|
||||||
margin: 26px 5px 0px 5px;
|
margin: 28px 5px 0px 5px;
|
||||||
float: none;
|
float: none;
|
||||||
width: auto;
|
width: auto;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -852,7 +894,7 @@ background-color: #8dbdd8;
|
||||||
}
|
}
|
||||||
#songdetails
|
#songdetails
|
||||||
{
|
{
|
||||||
width: 250px;
|
width: 280px;
|
||||||
margin: 0 8px;
|
margin: 0 8px;
|
||||||
float: left;
|
float: left;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
@ -891,6 +933,26 @@ background-color: #8dbdd8;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
width: 37px;
|
width: 37px;
|
||||||
}
|
}
|
||||||
|
#songdetails a.rate
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
height: 60px;
|
||||||
|
width: 30px;
|
||||||
|
display: block;
|
||||||
|
background: url('../images/star_wo_12x12.png') 10px center no-repeat;
|
||||||
|
}
|
||||||
|
#songdetails a.rate:hover
|
||||||
|
{
|
||||||
|
background: url('../images/star_lgo_12x12.png') 10px center no-repeat;
|
||||||
|
}
|
||||||
|
#songdetails a.favorite
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
height: 60px;
|
||||||
|
width: 30px;
|
||||||
|
display: block;
|
||||||
|
background: url('../images/star_yo_12x12.png') 10px center no-repeat;
|
||||||
|
}
|
||||||
.vertshade {
|
.vertshade {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -952,7 +1014,13 @@ span.code
|
||||||
font-family:"Courier New",Courier,mono;
|
font-family:"Courier New",Courier,mono;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
#donate
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
background: #f2f2f2;
|
||||||
|
border: 1px solid #E0E0E0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Button Style */
|
/* Button Style */
|
||||||
|
@ -998,12 +1066,6 @@ input
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
input.medium
|
|
||||||
{
|
|
||||||
border: 1px solid #DCDCDC;
|
|
||||||
width: 110px;
|
|
||||||
margin: 0 5px;
|
|
||||||
}
|
|
||||||
input.large
|
input.large
|
||||||
{
|
{
|
||||||
border: 1px solid #DCDCDC;
|
border: 1px solid #DCDCDC;
|
||||||
|
@ -1022,6 +1084,12 @@ input.chat
|
||||||
width: 150px;
|
width: 150px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
|
input#Search
|
||||||
|
{
|
||||||
|
border: 1px solid #DCDCDC;
|
||||||
|
width: 110px;
|
||||||
|
margin: 0 0 0 5px;
|
||||||
|
}
|
||||||
select
|
select
|
||||||
{
|
{
|
||||||
font-family: Calibri, Arial, Verdana;
|
font-family: Calibri, Arial, Verdana;
|
||||||
|
@ -1029,6 +1097,10 @@ select
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
border: 1px solid #d6d6d6;
|
border: 1px solid #d6d6d6;
|
||||||
}
|
}
|
||||||
|
select#SearchType
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
select#MusicFolders
|
select#MusicFolders
|
||||||
{
|
{
|
||||||
width: 94%;
|
width: 94%;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue