diff --git a/data/interfaces/default/css/style.css b/data/interfaces/default/css/style.css
index e171b4db..635eb14b 100644
--- a/data/interfaces/default/css/style.css
+++ b/data/interfaces/default/css/style.css
@@ -876,6 +876,10 @@ div#artistheader h2 a {
min-width: 300px;
text-align: left;
}
+#artist_table th#albumart{
+ width:50px;
+}
+
#artist_table th#status,
#artist_table th#albumart,
#artist_table th#lastupdated {
diff --git a/data/interfaces/default/index.html b/data/interfaces/default/index.html
index f63a2cad..09e09b00 100644
--- a/data/interfaces/default/index.html
+++ b/data/interfaces/default/index.html
@@ -8,10 +8,10 @@
|
- Artist Name |
- Status |
- Latest Album |
- Have |
+ Artist Name |
+ Status |
+ Latest Album |
+ Have |
@@ -49,15 +49,79 @@
return '';
}
},
- {"aTargets":[1],"mDataProp":"ArtistSortName"},
+ {
+ "aTargets":[1],
+ "mDataProp":"ArtistSortName",
+ "mRender":function (data,type,full) {
+
+ return '' + data + ''
+ }
+ },
{"aTargets":[2],"mDataProp":"Status"},
- {"aTargets":[3],"mDataProp":"LatestAlbum"},
- {"aTargets":[4],"mDataProp":"HaveTracks"},
+ {
+ "aTargets":[3],
+ "mDataProp":"LatestAlbum",
+ "mRender":function(data,type,full){
+ artist = full;
+ if (artist['ReleaseDate'] && artist['LatestAlbum'])
+ {
+ releasedate = artist['ReleaseDate'];
+ albumdisplay = '' + artist['LatestAlbum'] + ' (' + artist['ReleaseDate'] + ')';
+ }
+ else if(artist['LatestAlbum'])
+ {
+ releasedate = '';
+ albumdisplay = '' + artist['LatestAlbum'] + '';
+ }
+ else
+ {
+ releasedate = '';
+ albumdisplay = 'None';
+ }
+ if (artist['ReleaseInFuture'] === 'True')
+ {
+ grade = 'gradeA';
+ }
+ else
+ {
+ grade = 'gradeZ';
+ }
+ artist['Grade'] = grade;
+ return '' + albumdisplay + ''
+ }
+
+
+ },
+ {
+ "aTargets":[4],
+ "mDataProp":"HaveTracks",
+ "mRender":function(data,type,full){
+ if(full['TotalTracks'] > 0)
+ {
+ percent = (full['HaveTracks']*100.0)/full['TotalTracks']
+ if(percent > 100){
+ percent = 100;
+ }
+ }
+ else
+ {
+ full['TotalTracks'] = '?';
+ percent = 0;
+ }
+
+ return '' + full['HaveTracks'] + '/' + full['TotalTracks'] + '
';
+
+ }},
],
"oLanguage": {
- "sSearch": ""},
+ "sSearch": "",
+ "sLengthMenu":"Show _MENU_ artists per page",
+ "sInfo":"Showing _START_ to _END_ of _TOTAL_ artists",
+ "sInfoEmpty":"Showing 0 to 0 of 0 artists",
+ "sInfoFiltered":"(filtered from _MAX_ total artists)"
+ },
"bStateSave": true,
"iDisplayLength": 50,
"sPaginationType": "full_numbers",
@@ -65,6 +129,12 @@
"bServerSide": true,
"sAjaxSource": 'getArtists.json',
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ){
+ $('td', nRow).closest('tr').addClass(aData['Grade'])
+ nRow.children[0].id = 'albumart';
+ nRow.children[1].id = 'name';
+ nRow.children[2].id = 'status'
+ nRow.children[3].id = 'album'
+ nRow.children[4].id = 'have'
return nRow;
},
"fnServerData": function ( sSource, aoData, fnCallback ) {
diff --git a/headphones/webserve.py b/headphones/webserve.py
index 5926dfe9..5899ab4c 100644
--- a/headphones/webserve.py
+++ b/headphones/webserve.py
@@ -26,7 +26,7 @@ import threading
import headphones
from headphones import logger, searcher, db, importer, mb, lastfm, librarysync
-from headphones.helpers import checked, radio
+from headphones.helpers import checked, radio,today
import lib.simplejson as simplejson
import json
@@ -451,8 +451,8 @@ class WebInterface(object):
filtered = myDB.select('SELECT * from artists order by ArtistSortName COLLATE NOCASE')
totalcount = len(filtered)
else:
- filtered = myDB.select('SELECT * from artists order by ArtistSortName WHERE ArtistSortName LIKE %s OR LatestAlbum LIKE %s COLLATE NOCASE' % (sSearch,sSearch))
- totalcount = myDB.select('SELECT COUNT(*) from artists')
+ filtered = myDB.select('SELECT * from artists WHERE ArtistSortName LIKE "%' + sSearch + '%" OR LatestAlbum LIKE "%' + sSearch +'%" order by ArtistSortName COLLATE NOCASE')
+ totalcount = myDB.select('SELECT COUNT(*) from artists')[0][0]
sortcolumn = 0
if iSortCol_0 == '1':
@@ -470,14 +470,20 @@ class WebInterface(object):
"HaveTracks":artist["HaveTracks"] if 'HaveTracks' in artist else 0,
"LatestAlbum":"",
"ReleaseDate":"",
+ "ReleaseInFuture":"False",
+ "AlbumID":"",
}
if artist['ReleaseDate'] and artist['LatestAlbum']:
row['ReleaseDate'] = artist['ReleaseDate']
row['LatestAlbum'] = artist['LatestAlbum']
+ row['AlbumID'] = artist['AlbumID']
+ if artist['ReleaseDate'] > today():
+ row['ReleaseInFuture'] = "True"
elif artist['LatestAlbum']:
row['ReleaseDate'] = ''
row['LatestAlbum'] = artist['LatestAlbum']
+ row['AlbumID'] = artist['AlbumID']
rows.append(row)