Merge branch 'develop' of github.com:pimusicbox/mopidy-musicbox-webclient into develop
This commit is contained in:
commit
af0ce8503b
@ -73,15 +73,13 @@ v2.1.0 (UNRELEASED)
|
||||
- Now updates the track name when the stream title changes.
|
||||
- Adding a browsed radio station to the tracklist now also starts playback of the station.
|
||||
(Addresses: `#98 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/98>`_).
|
||||
- Remove support for defunct Grooveshark service.
|
||||
(Addresses: `#120 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/120>`_).
|
||||
- Increase volume slider handle by 30% to make it easier to grab on mobile devices.
|
||||
- Add application cache manifest file for quicker loads and to allow client devices to detect when local caches should
|
||||
be invalidated.
|
||||
- Use standard Mopidy mixer methods to mute / un-mute playback.
|
||||
- Added event handling for 'muteChanged' event. (Fixes: `#141 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/141>`_).
|
||||
- Streams are now saved to the '[Radio Streams].m3u' playlist and are accessible from all clients.
|
||||
Users with existing streamUris stored as browser cookies will be prompted to convert them to the new m3u backed scheme.
|
||||
- Mopidy-Musicbox-Webclient now requires at least Mopidy v1.1.0 or greater to be installed.
|
||||
|
||||
**Fixes**
|
||||
|
||||
@ -108,6 +106,9 @@ v2.1.0 (UNRELEASED)
|
||||
- Re-align the menu and search buttons in the title bar.
|
||||
(Fixes: `#148 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/148>`_).
|
||||
- Use explicit Mopidy.js calling convention. (Fixes: `#79 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/79>`_).
|
||||
- Added event handling for 'muteChanged' event. (Fixes: `#141 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/141>`_).
|
||||
- Remove support for defunct Grooveshark service.
|
||||
(Fixes: `#120 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/120>`_).
|
||||
|
||||
|
||||
v2.0.0 (2015-03-26)
|
||||
|
||||
@ -168,6 +168,7 @@
|
||||
margin-right: 35px;
|
||||
}
|
||||
|
||||
/* Increase slider handle by 30%. */
|
||||
.ui-slider-track.ui-mini .ui-slider-handle {
|
||||
height: 22px;
|
||||
width: 22px;
|
||||
@ -204,7 +205,15 @@
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
#searchresults {
|
||||
#searchartists {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#searchalbums {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#searchtracks {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -472,7 +481,12 @@ a {
|
||||
#infocover {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.playicon {
|
||||
width: 10%;
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#btplay {
|
||||
@ -481,17 +495,16 @@ a {
|
||||
|
||||
.songinfo {
|
||||
height: 100%;
|
||||
width: 90%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.songinfo-text {
|
||||
text-align: left;
|
||||
line-height: 22px;
|
||||
display:inline-block;
|
||||
padding: 6px;
|
||||
color: white;
|
||||
position: absolute;
|
||||
padding-left: 55px;
|
||||
padding-right: 55px;
|
||||
overflow: hidden;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#nowPlayingpane{
|
||||
|
||||
@ -357,98 +357,98 @@
|
||||
</div>
|
||||
|
||||
<div data-role="content" class="pane" id="searchpane">
|
||||
<div class="">
|
||||
<form>
|
||||
<select id="selectSearchService"> <!-- data-native-menu="false"> <!-- multiple="multiple" data-native-menu="false">
|
||||
<option data-placeholder="true">Choose services</option> -->
|
||||
</select>
|
||||
<input id="searchinput" class="span2" data-clear-btn="true"
|
||||
onkeypress="return searchPressed(event.keyCode);" id="appendedInputButton" type="text"/>
|
||||
<button class="btn" type="button" onclick="return initSearch(event.value);">
|
||||
Search!
|
||||
</button>
|
||||
</form>
|
||||
<h4>Search</h4>
|
||||
|
||||
<div class="ui-grid pl-breakpoint">
|
||||
<div class="ui-block">
|
||||
<form>
|
||||
<p>Search for artists, albums, or specific tracks.
|
||||
<select id="selectSearchService"> <!-- data-native-menu="false"> <!-- multiple="multiple" data-native-menu="false">
|
||||
<option data-placeholder="true">Choose services</option> -->
|
||||
</select>
|
||||
<input id="searchinput" placeholder="Search term" class="span2" data-clear-btn="true"
|
||||
onkeypress="return searchPressed(event.keyCode);" id="appendedInputButton" type="text"/>
|
||||
<button class="btn" type="button" onclick="return initSearch(event.value);">
|
||||
Search!
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="searchresults">
|
||||
<div class="ui-grid-a srch-breakpoint">
|
||||
<div class="ui-block-a" id="searchartists">
|
||||
<div data-role="listview" data-inset="true">
|
||||
<div data-role="header">
|
||||
<h4>Artists</h4>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<ul data-role="listview" id="artistresulttable"></ul>
|
||||
</div>
|
||||
<div class="ui-grid-a srch-breakpoint">
|
||||
<div class="ui-block-a" id="searchartists">
|
||||
<div data-role="listview" data-inset="true">
|
||||
<div data-role="header">
|
||||
<h4>Artists</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ui-block-b" id="searchalbums">
|
||||
<div data-role="listview" data-inset="true">
|
||||
<div data-role="header">
|
||||
<h4>Albums</h4>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<ul data-role="listview" id="albumresulttable"></ul>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<ul data-role="listview" id="artistresulttable"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="" id="searchtracks">
|
||||
<h4>Tracks</h4>
|
||||
<ul id="trackresulttable" class="table"></ul>
|
||||
<div class="ui-block-b" id="searchalbums">
|
||||
<div data-role="listview" data-inset="true">
|
||||
<div data-role="header">
|
||||
<h4>Albums</h4>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<ul data-role="listview" id="albumresulttable"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="" id="searchtracks">
|
||||
<h4>Tracks</h4>
|
||||
<ul id="trackresulttable" class="table"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- search div -->
|
||||
|
||||
<div data-role="content" class="pane" id="streampane">
|
||||
<h4>Streams</h4>
|
||||
|
||||
<div>
|
||||
<div class="ui-grid-a pl-breakpoint">
|
||||
<div class="ui-grid-a pl-breakpoint">
|
||||
<div class="ui-block-a" style="padding: 5px">
|
||||
<form>
|
||||
<p>Play a specific stream/track and optionally save it to your favourites.
|
||||
<button class="btn" type="button" onclick="return getCurrentlyPlaying();">
|
||||
Get currently playing
|
||||
</button>
|
||||
<input id="streamuriinput" placeholder="URI" class="span2" data-clear-btn="true"
|
||||
onkeypress="return streamPressed(event.keyCode);" id="appendedInputButton" type="text"/>
|
||||
<button class="btn" type="button" onclick="return playStreamUri();">
|
||||
Play
|
||||
</button>
|
||||
<form>
|
||||
<p>Play a specific stream/track and optionally save it to your favourites.
|
||||
<button class="btn" type="button" onclick="return getCurrentlyPlaying();">
|
||||
Get currently playing
|
||||
</button>
|
||||
<input id="streamuriinput" placeholder="URI" class="span2" data-clear-btn="true"
|
||||
onkeypress="return streamPressed(event.keyCode);" id="appendedInputButton" type="text"/>
|
||||
<button class="btn" type="button" onclick="return playStreamUri();">
|
||||
Play
|
||||
</button>
|
||||
|
||||
<input id="streamnameinput" placeholder="Name" class="span2" data-clear-btn="true"
|
||||
onkeypress="return streamPressed(event.keyCode);" id="appendedInputButton" type="text"/>
|
||||
<button class="btn" type="button" onclick="return addFavourite();">
|
||||
Save
|
||||
</button>
|
||||
<br/>
|
||||
</form>
|
||||
<input id="streamnameinput" placeholder="Name" class="span2" data-clear-btn="true"
|
||||
onkeypress="return streamPressed(event.keyCode);" id="appendedInputButton" type="text"/>
|
||||
<button class="btn" type="button" onclick="return addFavourite();">
|
||||
Save
|
||||
</button>
|
||||
<br/>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ui-block-b" style="padding: 5px">
|
||||
<ul id="streamuristable" class="table"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div data-role="footer" data-tap-toggle="false" data-position="fixed" id="normalFooter">
|
||||
<div class="footerControls">
|
||||
<div id="songinfo" style="float: left">
|
||||
<a href="#"><div><img id="infocover" src="images/default_cover.png"/></div></a>
|
||||
<div class="songinfo-text">
|
||||
<div id="infoname"></div>
|
||||
<div id="infoartist"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right;">
|
||||
<a href="#" onclick="doPlay(); return false"><span id="btplay" title="Play"><i class="fa fa-play"></i></span></a>
|
||||
<div class="footerControls">
|
||||
<div class="songinfo" id="songinfo">
|
||||
<a href="#"><div style="float: left"><img id="infocover" src="images/default_cover.png"/></div></a>
|
||||
<div class="songinfo-text">
|
||||
<div id="infoname"></div>
|
||||
<div id="infoartist"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="playicon">
|
||||
<a href="#" onclick="doPlay(); return false"><span id="btplay" title="Play"><i class="fa fa-play"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="footer" data-tap-toggle="false" data-position="fixed" id="nowPlayingFooter">
|
||||
<div class="footerControls" style="padding-left: 10px;">
|
||||
|
||||
@ -24,7 +24,9 @@ function resetSong() {
|
||||
|
||||
function resizeMb() {
|
||||
$("#infoname").html(songdata.track.name);
|
||||
$("#infoname").truncate();
|
||||
$("#infoartist").html(artiststext);
|
||||
$("#infoartist").truncate();
|
||||
|
||||
if ($(window).width() <= 960) {
|
||||
// $('#playlisttracksdiv').hide();
|
||||
|
||||
@ -27,7 +27,9 @@ function initSearch() {
|
||||
delete customTracklists[URI_SCHEME+':artistresultscache'];
|
||||
delete customTracklists[URI_SCHEME+':albumresultscache'];
|
||||
delete customTracklists[URI_SCHEME+':trackresultscache'];
|
||||
$("#searchresults").hide();
|
||||
$("#searchartists").hide();
|
||||
$("#searchalbums").hide();
|
||||
$("#searchtracks").hide();
|
||||
|
||||
if (searchService != 'all') {
|
||||
mopidy.library.search({'query': {any:[value]}, 'uris': [searchService + ':']}).then(processSearchResults, console.error);
|
||||
@ -108,7 +110,17 @@ function processSearchResults(resultArr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#searchresults").show();
|
||||
if (results.artists.length > 0) {
|
||||
$("#searchartists").show();
|
||||
}
|
||||
|
||||
if (results.albums.length > 0) {
|
||||
$("#searchalbums").show();
|
||||
}
|
||||
|
||||
if (results.tracks.length > 0) {
|
||||
$("#searchtracks").show();
|
||||
}
|
||||
|
||||
// Returns a string where {x} in template is replaced by tokens[x].
|
||||
function theme(template, tokens) {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
CACHE MANIFEST
|
||||
|
||||
# 2016-02-04:v1
|
||||
# 2016-02-4:v2
|
||||
|
||||
NETWORK:
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user