3.1.1 additional bug fixes

This commit is contained in:
Trevor Squillario 2013-11-10 18:57:11 -05:00
parent 4b116d0024
commit 223cce0dc4
7 changed files with 45 additions and 35 deletions

View file

@ -3,8 +3,8 @@ Jamstash - HTML5 Music Streamer
Imagine you can stream all your music from home, to any device, where ever you are. That is Subsonic! Now imagine having a Web App to stream your music that is as beautiful and well designed as it is functional, that is Jamstash! Imagine you can stream all your music from home, to any device, where ever you are. That is Subsonic! Now imagine having a Web App to stream your music that is as beautiful and well designed as it is functional, that is Jamstash!
What? What?
* HTML5 Audio Streamer for your Subsonic server. * HTML5 Music Streaming App for your Subsonic server
* Archive.org browsing and streaming * Archive.org Browsing and Streaming of Live Music
Features Features
* HTML5 Audio with Flash fallback (provided by the jPlayer library) * HTML5 Audio with Flash fallback (provided by the jPlayer library)

View file

@ -89,10 +89,10 @@
<a href="" id="action_UnMute" class="unmute first" title="Unmute" style="display: none;"></a> <a href="" id="action_UnMute" class="unmute first" title="Unmute" style="display: none;"></a>
<div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div><a href="" id="action_VolumeMax" class="volume" title="Max Volume"></a> <div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div><a href="" id="action_VolumeMax" class="volume" title="Max Volume"></a>
<a href="" class="loop" title="Repeat" ng-click="toggleSetting('Repeat')" ng-class="{'hoverSelected': !settings.Repeat }"></a> <a href="" class="loop" title="Repeat" ng-click="toggleSetting('Repeat')" ng-class="{'hoverSelected': !settings.Repeat }"></a>
<a href="" id="action_SaveProgress" class="lock" title="Progress Saved" ng-show="settings.SaveTrackPosition"></a> <a href="" id="action_SaveProgress" class="lock" title="Save Track Position: On" ng-show="settings.SaveTrackPosition"></a>
<a title="Favorite" href="" ng-class="{'favorite': playingSong.starred, 'rate': !playingSong.starred}" ng-click="updateFavorite(playingSong)" stop-event="click"></a>
</li> </li>
</ul> </ul>
<div class="rate"><a href="" title="Favorite" data-bind="css: { favorite: starred(), rate: !starred() }, click: $root.updateFavorite, clickBubble: false"></a></div>
<div class="vertshade"></div> <div class="vertshade"></div>
</div> </div>
<div id="playdeck_1"></div> <div id="playdeck_1"></div>

View file

@ -118,7 +118,7 @@ function SubsonicCtrl($scope, $rootScope, $location, $window, $routeParams, util
coverartfull = globals.BaseURL() + '/getCoverArt.view?' + globals.BaseParams() + '&id=' + album.coverArt; coverartfull = globals.BaseURL() + '/getCoverArt.view?' + globals.BaseParams() + '&id=' + album.coverArt;
} }
if (typeof album.starred !== 'undefined') { starred = true; } else { starred = false; } if (typeof album.starred !== 'undefined') { starred = true; } else { starred = false; }
return new model.Album(album.id, album.parent, album.album, album.artist, coverartthumb, coverartfull, $.format.date(new Date(album.created), "yyyy-MM-dd h:mm a"), starred, '', ''); return new model.Album(album.id, album.parent, album.title, album.artist, coverartthumb, coverartfull, $.format.date(new Date(album.created), "yyyy-MM-dd h:mm a"), starred, '', '');
} }
$scope.getAlbums = function (id) { $scope.getAlbums = function (id) {
$scope.selectedAutoAlbum = null; $scope.selectedAutoAlbum = null;
@ -216,6 +216,10 @@ function SubsonicCtrl($scope, $rootScope, $location, $window, $routeParams, util
} else { } else {
items[0] = data["subsonic-response"].directory.child; items[0] = data["subsonic-response"].directory.child;
} }
if (typeof data["subsonic-response"].directory.id != 'undefined') {
//alert(data["subsonic-response"].directory.id);
// Look at bringing back the breadcrumb
}
//alert(JSON.stringify(getMusicDirectory["subsonic-response"].directory.child)); //alert(JSON.stringify(getMusicDirectory["subsonic-response"].directory.child));
if (action == 'add') { if (action == 'add') {
angular.forEach(items, function (item, key) { angular.forEach(items, function (item, key) {
@ -321,27 +325,6 @@ function SubsonicCtrl($scope, $rootScope, $location, $window, $routeParams, util
$scope.selectedSongs.length = 0; $scope.selectedSongs.length = 0;
} }
} }
$scope.updateFavorite = function (item) {
var id = item.id;
var starred = item.starred;
var url;
if (starred) {
url = globals.BaseURL() + '/unstar.view?' + globals.BaseParams() + '&id=' + id;
item.starred = undefined;
} else {
url = globals.BaseURL() + '/star.view?' + globals.BaseParams() + '&id=' + id;
item.starred = true;
}
$.ajax({
url: url,
method: 'GET',
dataType: globals.settings.Protocol,
timeout: globals.settings.Timeout,
success: function () {
notifications.updateMessage('Favorite Updated!', true);
}
});
}
$scope.sortDateFunction = function (a, b) { $scope.sortDateFunction = function (a, b) {
return a.date < b.date ? 1 : -1; return a.date < b.date ? 1 : -1;
}; };

View file

@ -550,6 +550,30 @@ function AppCtrl($scope, $rootScope, $document, $location, utils, globals, model
} }
}); });
} }
$scope.updateFavorite = function (item) {
var id = item.id;
var starred = item.starred;
var url;
if (starred) {
url = globals.BaseURL() + '/unstar.view?' + globals.BaseParams() + '&id=' + id;
item.starred = undefined;
} else {
url = globals.BaseURL() + '/star.view?' + globals.BaseParams() + '&id=' + id;
item.starred = true;
}
$.ajax({
url: url,
method: 'GET',
dataType: globals.settings.Protocol,
timeout: globals.settings.Timeout,
success: function () {
notifications.updateMessage('Favorite Updated!', true);
}
});
}
/* Launch on Startup */ /* Launch on Startup */
$scope.loadSettings(); $scope.loadSettings();

View file

@ -2,7 +2,8 @@
{ "date": "10/31/2013", "version": "3.1.1", { "date": "10/31/2013", "version": "3.1.1",
"changes": [ "changes": [
{ "text": "- Sway.fm Media Keys plugin fixed" }, { "text": "- Sway.fm Media Keys plugin fixed" },
{ "text": "- Fixed issue with multiple sub-folders levels, other bug fixes" } { "text": "- Fixed issue with multiple sub-folders levels, other bug fixes" },
{ "text": "- Ability to star playing song" }
] ]
}, },
{ "date": "9/26/2013", "version": "3.1.0", { "date": "9/26/2013", "version": "3.1.0",

View file

@ -1,5 +1,5 @@
<ul class="simplelist songlist"> <ul class="simplelist songlist">
<li class="row song" ng-repeat="o in song" ng-dblclick="playSong(false, o)" ng-click="selectSong(o)" ng-dblclick="playSong(false, o)" ng-class="{'selected': o.selected, 'playing': o.playing}" data-bind="attr: { id: id, parentid: parentid, title: description }"> <li class="row song" ng-repeat="o in song" ng-click="selectSong(o)" ng-dblclick="playSong(false, o)" ng-class="{'selected': o.selected, 'playing': o.playing}" data-bind="attr: { id: id, parentid: parentid, title: description }">
<div class="itemactions"> <div class="itemactions">
<a class="add" href="" title="Add To Play Queue" ng-click="addSongToQueue(o)" stop-event="click"></a> <a class="add" href="" title="Add To Play Queue" ng-click="addSongToQueue(o)" stop-event="click"></a>
<a class="remove" href="" title="Remove"></a> <a class="remove" href="" title="Remove"></a>

View file

@ -1327,24 +1327,26 @@ ul.songlist li:hover
#songdetails a.rate #songdetails a.rate
{ {
float: left; float: left;
height: 66px; height: 12px;
width: 32px; width: 12px;
margin: 2px;
display: block; display: block;
background: url('../images/star_wo_12x12.png') 10px center no-repeat; background: url('../images/star_wo_12x12.png') 0 center no-repeat;
background-color: #ffffff; background-color: #ffffff;
} }
#songdetails a.rate:hover #songdetails a.rate:hover
{ {
background: url('../images/star_lgo_12x12.png') 10px center no-repeat; background: url('../images/star_lgo_12x12.png') 0 center no-repeat;
background-color: #ffffff; background-color: #ffffff;
} }
#songdetails a.favorite #songdetails a.favorite
{ {
float: left; float: left;
height: 64px; height: 12px;
width: 30px; width: 12px;
margin: 2px;
display: block; display: block;
background: url('../images/star_yo_12x12.png') 10px center no-repeat; background: url('../images/star_yo_12x12.png') 0 center no-repeat;
} }
#songdetails a.mute #songdetails a.mute
{ {