2.3.8 play queue scroll fix

This commit is contained in:
Trevor Squillario 2012-12-21 01:27:24 -05:00
parent 77831e1ef6
commit 8d5629e752
7 changed files with 17 additions and 21 deletions

View file

@ -21,7 +21,7 @@
<script src="js/plugins/jquery.stupidtable.js" type="text/javascript"></script> <script src="js/plugins/jquery.stupidtable.js" type="text/javascript"></script>
<script src="js/plugins/jquery.linkify-1.0-min.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.periodic.js" type="text/javascript"></script>
<script src="js/plugins/jquery.scrollTo-1.4.2-min.js" type="text/javascript"></script> <script src="js/plugins/jquery.scrollTo.min.js" type="text/javascript"></script>
<script src="js/jplayer/jquery.jplayer.min.js" type="text/javascript"></script> <script src="js/jplayer/jquery.jplayer.min.js" type="text/javascript"></script>
<script src="js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script> <script src="js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script>
<script src="js/plugins/UnityShim.js" type="text/javascript"></script> <script src="js/plugins/UnityShim.js" type="text/javascript"></script>
@ -118,8 +118,8 @@
<a href="#" class="button" id="action_AutoPilot" title="Autopilot"><img class="pad" src="images/steering_wheel_gd_12x12.png" /></a> <a href="#" class="button" id="action_AutoPilot" title="Autopilot"><img class="pad" src="images/steering_wheel_gd_12x12.png" /></a>
<a href="#" class="button" id="action_Preview" title="Turn on Album Preview"><img class="pad" src="images/aperture_gd_12x12.png" /></a> <a href="#" class="button" id="action_Preview" title="Turn on Album Preview"><img class="pad" src="images/aperture_gd_12x12.png" /></a>
</div> </div>
<div id="CurrentPlaylist" class="section fullsection floatleft noselect"> <div class="section fullsection floatleft noselect">
<div class="tablecontainerfull"> <div id="CurrentPlaylist" class="tablecontainerfull">
<table id="CurrentPlaylistContainer" class="simplelist songlist" cellspacing="1"> <table id="CurrentPlaylistContainer" class="simplelist songlist" cellspacing="1">
<thead></thead> <thead></thead>
<tbody></tbody> <tbody></tbody>
@ -316,7 +316,7 @@
<span class="changes">- </span> <span class="changes">- </span>
</li> </li>
--> -->
<li class="log"><span class="version">12/21/2012 - 2.3.7</span> <li class="log"><span class="version">12/21/2012 - 2.3.8</span>
<span class="changes">- Added support for the <a href="https://chrome.google.com/webstore/detail/swayfm-unified-music-medi/icckhjgjjompfgoiidainoapgjepncej" target="_blank">Sway.fm Unified Music Media Keys</a> Chrome extension</span> <span class="changes">- Added support for the <a href="https://chrome.google.com/webstore/detail/swayfm-unified-music-medi/icckhjgjjompfgoiidainoapgjepncej" target="_blank">Sway.fm Unified Music Media Keys</a> Chrome extension</span>
<span class="changes">- Added Artist links</span> <span class="changes">- Added Artist links</span>
<span class="changes">- Fixed click behavior of song notification popup</span> <span class="changes">- Fixed click behavior of song notification popup</span>

View file

@ -12,7 +12,7 @@ var passwordenc;
var server; var server;
var smwidth; var smwidth;
var apiVersion = '1.6.0'; var apiVersion = '1.6.0';
var currentVersion = '2.3.7'; var currentVersion = '2.3.8';
var applicationName; var applicationName;
var unity; var unity;

View file

@ -1123,6 +1123,10 @@ function loadCurrentPlaylist() {
var html = localStorage.getItem('CurrentPlaylist'); var html = localStorage.getItem('CurrentPlaylist');
if (html != '' && html !== undefined && html !== null) { if (html != '' && html !== undefined && html !== null) {
$('#CurrentPlaylistContainer tbody').html(html); $('#CurrentPlaylistContainer tbody').html(html);
var songid = $('#CurrentPlaylistContainer tbody tr.playing').attr('childid');
if (typeof songid != 'undefined') {
$('#CurrentPlaylist').scrollTo($('#' + songid), 400);
}
if (debug) { console.log('Load Play Queue From localStorage: ' + html.length + ' characters'); } if (debug) { console.log('Load Play Queue From localStorage: ' + html.length + ' characters'); }
} }
} else { } else {

View file

@ -1,11 +0,0 @@
/**
* jQuery.ScrollTo - Easy element scrolling using jQuery.
* Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 5/25/2009
* @author Ariel Flesler
* @version 1.4.2
*
* http://flesler.blogspot.com/2007/10/jqueryscrollto.html
*/
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

7
js/plugins/jquery.scrollTo.min.js vendored Normal file
View file

@ -0,0 +1,7 @@
/**
* Copyright (c) 2007-2012 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* @author Ariel Flesler
* @version 1.4.5 BETA
*/
;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

View file

@ -130,10 +130,6 @@
if (count > 0) { if (count > 0) {
$('#currentActions a.button').removeClass('disabled'); $('#currentActions a.button').removeClass('disabled');
} }
var songid = $('#CurrentPlaylistContainer tbody tr.playing').attr('childid');
if (songid !== undefined) {
$('#CurrentPlaylist').scrollTo($('#' + songid), 400);
}
break; break;
case '#tabPlaylists': case '#tabPlaylists':
if (debug) { console.log("TAG PLAYLIST"); } if (debug) { console.log("TAG PLAYLIST"); }

View file

@ -2,7 +2,7 @@
"manifest_version": 2, "manifest_version": 2,
"name": "MiniSub", "name": "MiniSub",
"description": "MiniSub - HTML5 Mini Player for Subsonic", "description": "MiniSub - HTML5 Mini Player for Subsonic",
"version": "2.3.7", "version": "2.3.8",
"app": { "app": {
"launch": { "launch": {
"local_path": "index.html" "local_path": "index.html"