From 8006d62f55627db1d066f2dcf6f7f29f852d5e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Thu, 16 Jun 2016 00:30:31 +0200 Subject: [PATCH 01/10] Restored most keyboard shortcuts from Subsonic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: François-Xavier Thomas --- .../src/main/webapp/WEB-INF/jsp/head.jsp | 28 ++++++ .../src/main/webapp/WEB-INF/jsp/playQueue.jsp | 99 +++++++++++++++++-- .../src/main/webapp/WEB-INF/jsp/top.jsp | 8 ++ .../src/main/webapp/script/mousetrap-1.6.0.js | 11 +++ 4 files changed, 136 insertions(+), 10 deletions(-) create mode 100644 libresonic-main/src/main/webapp/script/mousetrap-1.6.0.js diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp index b14d62a2..5331458b 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp @@ -10,3 +10,31 @@ Libresonic + + + diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp index 7f539ddd..7e6cb2b9 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp @@ -37,6 +37,7 @@ var songs = null; var currentStreamUrl = null; var repeatEnabled = false; + var isVisible = ${model.autoHidePlayQueue ? 'false' : 'true'}; var CastPlayer = new CastPlayer(); var ignore = false; @@ -86,17 +87,30 @@ getPlayQueue(); } + function onHidePlayQueue() { + setFrameHeight(50); + isVisible = false; + } + + function onShowPlayQueue() { + var height = $("body").height() + 25; + height = Math.min(height, window.top.innerHeight * 0.8); + setFrameHeight(height); + isVisible = true; + } + + function onTogglePlayQueue() { + if (isVisible) onHidePlayQueue(); + else onShowPlayQueue(); + } + function initAutoHide() { $(window).mouseleave(function (event) { - if (event.clientY < 30) { - setFrameHeight(50); - } + if (event.clientY < 30) onHidePlayQueue(); }); $(window).mouseenter(function () { - var height = $("body").height() + 25; - height = Math.min(height, window.top.innerHeight * 0.8); - setFrameHeight(height); + onShowPlayQueue(); }); } @@ -155,12 +169,56 @@ playQueueService.clear(playQueueCallback); } } + + /** + * Start playing from the current playlist + */ function onStart() { - playQueueService.start(playQueueCallback); + if (CastPlayer.castSession) { + CastPlayer.playCast(); + } else if (jwplayer()) { + if (jwplayer().getState() == "IDLE") { + skip(0); + } else if (jwplayer().getState() == "PAUSED") { + jwplayer().play(true); + } + } else { + playQueueService.start(playQueueCallback); + } } + + /** + * Pause playing + */ function onStop() { - playQueueService.stop(playQueueCallback); + if (CastPlayer.castSession) { + CastPlayer.pauseCast(); + } else if (jwplayer()) { + jwplayer().pause(true); + } else { + playQueueService.stop(playQueueCallback); + } } + + /** + * Toggle play/pause + * + * FIXME: Only works for the Web player for now + */ + function onToggleStartStop() { + var playing = false; + if (CastPlayer.castSession) { + playing = CastPlayer.mediaSession && CastPlayer.mediaSession.playerState == chrome.cast.media.PlayerState.PLAYING; + } else if (jwplayer()) { + playing = jwplayer().getState() == "PLAYING"; + } else { + // FIXME for playQueueService + } + + if (playing) onStop(); + else onStart(); + } + function onGain(gain) { playQueueService.setGain(gain); } @@ -172,6 +230,24 @@ var value = parseInt($("#castVolume").slider("option", "value")); CastPlayer.setCastVolume(value / 100, false); } + + /** + * Increase or decrease volume by a certain amount + * + * @param amount to add or remove from the current volume + */ + function onGainAdd(gain) { + if (CastPlayer.castSession) { + var volume = parseInt($("#castVolume").slider("option", "value")) + gain; + $("#castVolume").slider("option", "value", volume); + } else if (jwplayer()) { + jwplayer().setVolume(jwplayer().getVolume() + gain); + } else { + var value = parseInt($("#jukeboxVolume").slider("option", "value")); + $("#jukeboxVolume").slider("option", "value", volume); + } + } + function onSkip(index) { @@ -188,10 +264,10 @@ if (wrap) { index = index % songs.length; } - skip(index); + onSkip(index); } function onPrevious() { - skip(parseInt(getCurrentSongIndex()) - 1); + onSkip(parseInt(getCurrentSongIndex()) - 1); } function onPlay(id) { playQueueService.play(id, playQueueCallback); @@ -235,6 +311,9 @@ function onStar(index) { playQueueService.toggleStar(index, playQueueCallback); } + function onStarCurrent() { + onStar(getCurrentSongIndex()); + } function onRemove(index) { playQueueService.remove(index, playQueueCallback); } diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/top.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/top.jsp index 7eeb095d..28791bfa 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/top.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/top.jsp @@ -10,6 +10,7 @@ + + diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/personalSettings.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/personalSettings.jsp index 449e18f6..f57974d3 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/personalSettings.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/personalSettings.jsp @@ -179,6 +179,13 @@ + + + + + +
+ @@ -253,4 +260,4 @@ - \ No newline at end of file + From 3fdb07aa27d0e656eb181a3e0fb91a0fb238bf1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Sun, 19 Jun 2016 00:07:03 +0200 Subject: [PATCH 03/10] Add keyboard shortcuts help page in more.jsp --- .../player/i18n/ResourceBundle_en.properties | 21 +++++++ .../player/theme/default_dark.properties | 1 + .../player/theme/default_light.properties | 1 + .../src/main/webapp/WEB-INF/jsp/more.jsp | 53 +++++++++++++++++- .../webapp/icons/default_dark/keyboard.png | Bin 0 -> 347 bytes .../webapp/icons/default_light/keyboard.png | Bin 0 -> 355 bytes 6 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 libresonic-main/src/main/webapp/icons/default_dark/keyboard.png create mode 100644 libresonic-main/src/main/webapp/icons/default_light/keyboard.png diff --git a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties index 510018ff..99fbd01e 100644 --- a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties @@ -248,6 +248,27 @@ more.jamstash.text =

Jamstash is an HTML5 player for Libresonic. Chrome App.

more.status.title = Network Status more.status.text = Monitor the real-time status of all network media streams. +more.keyboard.title = Keyboard Shortcuts +more.keyboard.text = Keyboard shortcuts can be enabled in the user preferences page. Supported shortcuts are below. +more.keyboard.playback = Playback +more.keyboard.navigation = Navigation +more.keyboard.general = General +more.keyboard.playpause = Play or pause music +more.keyboard.previous = Go to the previous song +more.keyboard.next = Go to the next song +more.keyboard.volumedown = Decrease the player volume +more.keyboard.volumeup = Increase the player volume +more.keyboard.home = Go to Home +more.keyboard.playlists = Go to Playlists +more.keyboard.podcasts = Go to Podcasts +more.keyboard.settings = Go to Settings +more.keyboard.starred = Go to Starred +more.keyboard.more = Go to More +more.keyboard.about = Go to About +more.keyboard.search = Search +more.keyboard.sidebar = Toggle left sidebar +more.keyboard.shortcuts = Show keyboard shortcuts +more.keyboard.then = then more.mobile.title = Mobile phone more.mobile.text =

You can control {0} from any WAP-enabled mobile phone or PDA.
\ Simply visit the following URL from your phone: http://yourhostname/wap

\ diff --git a/libresonic-main/src/main/resources/org/libresonic/player/theme/default_dark.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/default_dark.properties index 7c9e67aa..397c8824 100644 --- a/libresonic-main/src/main/resources/org/libresonic/player/theme/default_dark.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/theme/default_dark.properties @@ -21,6 +21,7 @@ helpImage = icons/default_dark/help.png helpPopupImage = icons/default_dark/help_small.png homeImage = icons/default_dark/home.png html5Image = icons/default_dark/html5.png +keyboardImage = icons/default_dark/keyboard.png logImage = icons/default_dark/log.png logoImage = icons/default_dark/logo_light.png moreImage = icons/default_dark/more.png diff --git a/libresonic-main/src/main/resources/org/libresonic/player/theme/default_light.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/default_light.properties index 3c346cd9..92ee2559 100644 --- a/libresonic-main/src/main/resources/org/libresonic/player/theme/default_light.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/theme/default_light.properties @@ -21,6 +21,7 @@ helpImage = icons/default_light/help.png helpPopupImage = icons/default_light/help_small.png homeImage = icons/default_light/home.png html5Image = icons/default_light/html5.png +keyboardImage = icons/default_light/keyboard.png logImage = icons/default_light/log.png logoImage = icons/default_light/logo.png moreImage = icons/default_light/more.png diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp index 1f0e016c..79360847 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp @@ -182,9 +182,58 @@

-
+
- \ No newline at end of file + +

+ " alt=""/> + +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Spaceg h/
g pm
g o?
g s
+g t
g r
g a
+ + diff --git a/libresonic-main/src/main/webapp/icons/default_dark/keyboard.png b/libresonic-main/src/main/webapp/icons/default_dark/keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..2209f8e4eee99ce32f3de016165ca4f1706afe6c GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsO-R&8tNEGwDxlB{PZ!6Kh{JEED+(Pl5ODqf{z?Hy z&Q4~rSQD{}(gCMg0}`}1ya-XYWQj>L)I40WjJH)SI&ITC|4BE~zCT^gm{h?hxboLA z;qxb-ue0oY&h*CAyS`+qJj094*HyUR%PS~JHeB*@-o)p(v*XGAb@Hr-;>&z@cS|+| zC-~{BtQVOm+R(cyxbsAqcKP80zN;BBuScpy@?2n_)bDnCqs)O_*|{3pe8oJ+8w@U= znp^kix$RzamDgeKu6{1-oD!M<1<>&pIsO-NKmtuZ`lEl}u#r;B4q#NoGLhC)pS0x=R&@`ooZ}H|5!3Rc_upHE9oW^(XgOKTtlI-uU$v+ktH_*Jx{( zU2co#cHBKv{M`#-`}~!Am1bVgijUfSteWBUGW(=U2P#YxJ~1AC{>9oZU_N_@`yH|V xTXm*hye(5#9y9&9%4))rc`6eUyY}~szb~k1e>8E=KcL?kJYD@<);T3K0RZplk$3 Date: Sun, 19 Jun 2016 00:16:59 +0200 Subject: [PATCH 04/10] Fix issue with volume up/down shortcut --- libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp index 7e6cb2b9..447ac3dc 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp @@ -241,7 +241,8 @@ var volume = parseInt($("#castVolume").slider("option", "value")) + gain; $("#castVolume").slider("option", "value", volume); } else if (jwplayer()) { - jwplayer().setVolume(jwplayer().getVolume() + gain); + var volume = parseInt(jwplayer().getVolume()); + jwplayer().setVolume(volume + gain); } else { var value = parseInt($("#jukeboxVolume").slider("option", "value")); $("#jukeboxVolume").slider("option", "value", volume); From 349143cff1df6f8df338c4d04cdb18ee716dcc8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Sun, 19 Jun 2016 00:48:31 +0200 Subject: [PATCH 05/10] Make shortcuts work in Jukebox mode --- .../player/ajax/PlayQueueService.java | 16 ++++++++++ .../src/main/webapp/WEB-INF/jsp/playQueue.jsp | 31 ++++++++++++------- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java index 73a91d69..a2496290 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java @@ -119,6 +119,22 @@ public class PlayQueueService { return convert(request, player, true); } + public PlayQueueInfo toggleStartStop() throws Exception { + HttpServletRequest request = WebContextFactory.get().getHttpServletRequest(); + HttpServletResponse response = WebContextFactory.get().getHttpServletResponse(); + return doToggleStartStop(request, response); + } + + public PlayQueueInfo doToggleStartStop(HttpServletRequest request, HttpServletResponse response) throws Exception { + Player player = getCurrentPlayer(request, response); + if (player.getPlayQueue().getStatus() == PlayQueue.Status.STOPPED) { + player.getPlayQueue().setStatus(PlayQueue.Status.PLAYING); + } else if (player.getPlayQueue().getStatus() == PlayQueue.Status.PLAYING) { + player.getPlayQueue().setStatus(PlayQueue.Status.STOPPED); + } + return convert(request, player, true); + } + public PlayQueueInfo skip(int index) throws Exception { HttpServletRequest request = WebContextFactory.get().getHttpServletRequest(); HttpServletResponse response = WebContextFactory.get().getHttpServletResponse(); diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp index 447ac3dc..a60d97e3 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp @@ -206,17 +206,16 @@ * FIXME: Only works for the Web player for now */ function onToggleStartStop() { - var playing = false; if (CastPlayer.castSession) { - playing = CastPlayer.mediaSession && CastPlayer.mediaSession.playerState == chrome.cast.media.PlayerState.PLAYING; + var playing = CastPlayer.mediaSession && CastPlayer.mediaSession.playerState == chrome.cast.media.PlayerState.PLAYING; + if (playing) onStop(); + else onStart(); } else if (jwplayer()) { - playing = jwplayer().getState() == "PLAYING"; + if (jwplayer().getState() == "PLAYING") onStop(); + else onStart(); } else { - // FIXME for playQueueService + playQueueService.toggleStartStop(playQueueCallback); } - - if (playing) onStop(); - else onStart(); } function onGain(gain) { @@ -239,13 +238,21 @@ function onGainAdd(gain) { if (CastPlayer.castSession) { var volume = parseInt($("#castVolume").slider("option", "value")) + gain; - $("#castVolume").slider("option", "value", volume); + if (volume > 100) volume = 100; + if (volume < 0) volume = 0; + CastPlayer.setCastVolume(volume / 100, false); + $("#castVolume").slider("option", "value", volume); // Need to update UI } else if (jwplayer()) { - var volume = parseInt(jwplayer().getVolume()); - jwplayer().setVolume(volume + gain); + var volume = parseInt(jwplayer().getVolume()) + gain; + if (volume > 100) volume = 100; + if (volume < 0) volume = 0; + jwplayer().setVolume(volume); } else { - var value = parseInt($("#jukeboxVolume").slider("option", "value")); - $("#jukeboxVolume").slider("option", "value", volume); + var volume = parseInt($("#jukeboxVolume").slider("option", "value")) + gain; + if (volume > 100) volume = 100; + if (volume < 0) volume = 0; + onGain(volume / 100); + $("#jukeboxVolume").slider("option", "value", volume); // Need to update UI } } From 0fc35dd1b2ba8607b6433173d795f256f05963e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Wed, 22 Jun 2016 23:21:40 +0200 Subject: [PATCH 06/10] Add shortcut help for 'toggle play queue' --- .../org/libresonic/player/i18n/ResourceBundle_en.properties | 1 + libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties index 99fbd01e..e0347e13 100644 --- a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties @@ -267,6 +267,7 @@ more.keyboard.more = Go to More more.keyboard.about = Go to About more.keyboard.search = Search more.keyboard.sidebar = Toggle left sidebar +more.keyboard.playqueue = Toggle play queue more.keyboard.shortcuts = Show keyboard shortcuts more.keyboard.then = then more.mobile.title = Mobile phone diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp index 79360847..9d3cb293 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp @@ -212,12 +212,12 @@ ↑ g o - ? + q g s - + ? + From 04c9308a85e07fe3887977d7ef4c193d227e6f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Sat, 29 Oct 2016 15:18:46 +0200 Subject: [PATCH 07/10] Test: Add missing columns to UserDao test case --- .../java/org/libresonic/player/dao/UserDaoTestCase.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java index 934eb7cc..8a5eb206 100644 --- a/libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java @@ -161,6 +161,8 @@ public class UserDaoTestCase extends DaoTestCaseBase { assertFalse("Error in getUserSettings().", userSettings.isNowPlayingAllowed()); assertSame("Error in getUserSettings().", AvatarScheme.NONE, userSettings.getAvatarScheme()); assertNull("Error in getUserSettings().", userSettings.getSystemAvatarId()); + assertEquals("Error in getUserSettings().", 0, userSettings.getListReloadDelay()); + assertFalse("Error in getUserSettings().", userSettings.isKeyboardShortcutsEnabled()); UserSettings settings = new UserSettings("sindre"); settings.setLocale(Locale.SIMPLIFIED_CHINESE); @@ -181,6 +183,8 @@ public class UserDaoTestCase extends DaoTestCaseBase { settings.setAvatarScheme(AvatarScheme.SYSTEM); settings.setSystemAvatarId(1); settings.setChanged(new Date(9412L)); + settings.setListReloadDelay(60); + settings.setKeyboardShortcutsEnabled(true); userDao.updateUserSettings(settings); userSettings = userDao.getUserSettings("sindre"); @@ -204,6 +208,8 @@ public class UserDaoTestCase extends DaoTestCaseBase { assertSame("Error in getUserSettings().", AvatarScheme.SYSTEM, userSettings.getAvatarScheme()); assertEquals("Error in getUserSettings().", 1, userSettings.getSystemAvatarId().intValue()); assertEquals("Error in getUserSettings().", new Date(9412L), userSettings.getChanged()); + assertEquals("Error in getUserSettings().", 60, userSettings.getListReloadDelay()); + assertTrue("Error in getUserSettings().", userSettings.isKeyboardShortcutsEnabled()); userDao.deleteUser("sindre"); assertNull("Error in cascading delete.", userDao.getUserSettings("sindre")); From 49f6420c44f0f84ce375f4e1a0bf8fc24a2432f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Sun, 6 Nov 2016 17:30:27 +0100 Subject: [PATCH 08/10] Help: Add link to the user preferences page --- .../org/libresonic/player/i18n/ResourceBundle_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties index e0347e13..5fac1bc9 100644 --- a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties @@ -249,7 +249,7 @@ more.jamstash.text =

Jamstash is an HTML5 player for Libresonic. Monitor the real-time status of all network media streams. more.keyboard.title = Keyboard Shortcuts -more.keyboard.text = Keyboard shortcuts can be enabled in the user preferences page. Supported shortcuts are below. +more.keyboard.text = Keyboard shortcuts can be enabled in the user preferences page. Supported shortcuts are below. more.keyboard.playback = Playback more.keyboard.navigation = Navigation more.keyboard.general = General From d2c23dfbcfb8fb5932be327f944e5fa1130919b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Sun, 6 Nov 2016 17:31:23 +0100 Subject: [PATCH 09/10] Help: Add padding to keyboard shortcuts for readability --- libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp index 9d3cb293..4993717f 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/more.jsp @@ -38,6 +38,12 @@ } + + From ef1a41b2a6efbdc99a7159e7a6723cf0dc331ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Thomas?= Date: Thu, 10 Nov 2016 21:05:17 +0100 Subject: [PATCH 10/10] Fix jerky play queue animation right after loading --- libresonic-main/src/main/webapp/WEB-INF/jsp/index.jsp | 2 +- libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/index.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/index.jsp index 21010cf5..8cba809f 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/index.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/index.jsp @@ -11,7 +11,7 @@ - + diff --git a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp index a60d97e3..c8917a44 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/playQueue.jsp @@ -31,13 +31,13 @@ - +