1
0
mirror of https://github.com/SuperBFG7/ympd synced 2025-10-23 09:57:42 +00:00

First database browse code

This commit is contained in:
jcorporation
2018-06-03 17:36:06 +01:00
parent e37c678a89
commit 7962a8ff54
5 changed files with 305 additions and 35 deletions

View File

@@ -101,19 +101,23 @@ var app = $.sammy(function() {
$('#cardBrowse').removeClass('hide');
$('#cardBrowsePlaylists').removeClass('hide');
$('#cardBrowseNavPlaylists').addClass('active');
$('#browsePlaylistsList').find("tr:gt(0)").remove();
socket.send('MPD_API_GET_PLAYLISTS,'+pagination);
});
this.get(/\#\/browse\/database\/(\d+)/, function() {
this.get(/\#\/browse\/database\/(\d+)\/(.*)/, function() {
prepare();
browsepath = this.params['splat'][1];
pagination = parseInt(this.params['splat'][0]);
var artist = this.params['splat'][1];
current_app = 'browseDatabase';
$('#navBrowse').addClass('active');
$('#cardBrowse').removeClass('hide');
$('#cardBrowseDatabase').removeClass('hide');
$('#cardBrowseNavDatabase').addClass('active');
if (artist == "") {
socket.send('MPD_API_GET_ARTISTS,'+pagination);
} else {
socket.send('MPD_API_GET_ARTISTALBUMS,'+pagination+',' + decodeURI(artist));
}
});
this.get(/\#\/browse\/filesystem\/(\d+)\/(\w|\!)\/(.*)/, function() {
@@ -382,15 +386,19 @@ function webSocketConnect() {
if(current_app !== 'browsePlaylists')
break;
var nrItems=0;
var tr=document.getElementById(current_app+'List').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for (var item in obj.data) {
nrItems++;
var d = new Date(obj.data[item].last_modified * 1000);
$('#'+current_app+'List > tbody').append(
'<tr uri="' + encodeURI(obj.data[item].plist) + '">' +
'<td><span class="material-icons">list</span></td>' +
'<td><a>' + basename(obj.data[item].plist) + '</a></td>' +
'<td>'+d.toUTCString()+'</td><td></td></tr>'
);
var row='<tr uri="' + encodeURI(obj.data[item].plist) + '">' +
'<td><span class="material-icons">list</span></td>' +
'<td><a>' + basename(obj.data[item].plist) + '</a></td>' +
'<td>'+d.toUTCString()+'</td><td></td></tr>';
if (nrItems <= tr.length) { $(tr[nrItems-1]).replaceWith(row); }
else { $('#'+current_app+'List > tbody').append(row); }
}
for (var i=tr.length;i>nrItems;i--) {
$(tr[tr.length-1]).remove();
}
setPagination(obj.totalEntities);
if ( isTouch ) {
@@ -427,6 +435,70 @@ function webSocketConnect() {
);
}
break;
case 'listDBtags':
if(current_app !== 'browseDatabase')
break;
if (obj.tagtype == 'AlbumArtist') {
$('#browseDatabaseCards').addClass('hide');
$('#browseDatabaseList').removeClass('hide');
var nrItems=0;
var tr=document.getElementById(current_app+'List').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for (var item in obj.data) {
nrItems++;
var row='<tr uri="' + encodeURI(obj.data[item].value) + '">' +
'<td><span class="material-icons">album</span></td>' +
'<td><a>' + obj.data[item].value + '</a></td></tr>';
if (nrItems <= tr.length) { $(tr[nrItems-1]).replaceWith(row); }
else { $('#'+current_app+'List > tbody').append(row); }
}
for (var i=tr.length;i>nrItems;i--) {
$(tr[tr.length-1]).remove();
}
setPagination(obj.totalEntities);
$('#'+current_app+'List > tbody > tr').on({
click: function() {
pagination = 0;
app.setLocation('#/browse/database/'+pagination+'/'+$(this).attr('uri'));
}
});
if (nrItems == 0) {
$('#'+current_app+'List > tbody').append(
'<tr><td><span class="material-icons">error_outline</span></td>' +
'<td colspan="3">No entries found.</td>' +
'<td></td><td></td></tr>'
);
}
} else if (obj.tagtype == 'Album') {
$('#browseDatabaseList').addClass('hide');
$('#browseDatabaseCards').empty();
$('#browseDatabaseCards').removeClass('hide');
var nrItems=0;
for (var item in obj.data) {
var card='<div class="card" style="width: 18rem;" uri="'+encodeURI(obj.data[item].value)+'">'+
' <img class="card-img-top" src="" alt="Coverimage">'+
' <div class="card-body">'+
' <h5 class="card-title">'+obj.searchstr+'</h5>'+
' <h4 class="card-title">'+obj.data[item].value+'</h4>'+
' <ul class="card-text"></ul>'+
' </div>'+
'</div>';
$('#browseDatabaseCards').append(card);
socket.send('MPD_API_GET_ARTISTALBUMTITLES,' + obj.searchstr + ','+obj.data[item].value);
}
setPagination(obj.totalEntities);
}
break;
case 'listTitles':
var album=$('div[uri="'+encodeURI(obj.album)+'"] > div > ul');
$('div[uri="'+encodeURI(obj.album)+'"] > img').attr('src','/library/'+obj.data[0].uri.replace(/\/[^\/]+$/,'\/'+coverImageFile));
var titleList='';
for (var item in obj.data) {
titleList+='<li>'+obj.data[item].title+'</li>';
}
album.append(titleList);
break;
case 'search':
$('#panel-heading-search').text(obj.totalEntities + ' Songs found');
if (obj.totalEntities > 0) {