diff --git a/data/interfaces/default/artist.html b/data/interfaces/default/artist.html
index 423fa014..863a4717 100644
--- a/data/interfaces/default/artist.html
+++ b/data/interfaces/default/artist.html
@@ -8,7 +8,7 @@
<%def name="headerIncludes()">
@@ -156,9 +150,6 @@
<%def name="headIncludes()">
- %if artist['Status'] == 'Loading':
-
- %endif
%def>
<%def name="javascriptIncludes()">
@@ -171,7 +162,6 @@
getInfo(elem,id,'artist');
}
-
<%
if headphones.SONGKICK_FILTER_ENABLED:
songkick_filter_enabled = "true"
@@ -240,6 +230,40 @@
});
}
+ var loadingMessage = false;
+ var spinner_active = false;
+ var loadingtext_active = false;
+
+ function checkArtistStatus() {
+ $.getJSON("getArtistjson?ArtistID=${artist['ArtistID']}", function(data) {
+ if (data['Status'] == "Loading"){
+ refreshTable();
+ $('#artistnamelink').text(data["ArtistName"]);
+ if (loadingMessage == false){
+ showMsg("Getting artist information",true);
+ loadingMessage = true;
+ }
+ if (spinner_active == false){
+ $('#artistname').prepend('')
+ spinner_active = true;
+ }
+ if (loadingtext_active == false){
+ $('#artistname').append('
(Album information for this artist is currently being loaded)
')
+ loadingtext_active = true;
+ }
+ }
+ else{
+ $('#artistnamespinner').remove()
+ $('#loadingtext').remove()
+ $('#ajaxMsg').empty()
+ $('#ajaxMsg').removeAttr('style')
+ spinner_active = false
+ loadingtext_active = false
+ loadingMessage = false
+ }
+ });
+ }
+
function initThisPage() {
$('#menu_link_getextra').click(function() {
$('#dialog').dialog();
@@ -248,10 +272,6 @@
$('#menu_link_modifyextra').click(function() {
$('#dialog').dialog();
});
-
- %if artist['Status'] == 'Loading':
- showMsg("Getting artist information",true);
- %endif
$('#album_table').dataTable({
"bDestroy": true,
"aoColumns": [
@@ -291,8 +311,12 @@
initThisPage();
getArtistBio();
if( ${songkick_enabled} ){
- getArtistsCalendar();
- }
+ getArtistsCalendar();
+ }
+ checkArtistStatus();
+ setInterval(function(){
+ checkArtistStatus();
+ }, 1500);
});
diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js
index c28faf15..b2e56b52 100644
--- a/data/interfaces/default/js/script.js
+++ b/data/interfaces/default/js/script.js
@@ -334,6 +334,10 @@ function doAjaxCall(url,elem,reload,form) {
});
}
+function doSimpleAjaxCall(url) {
+ $.ajax(url);
+}
+
function resetFilters(text){
if ( $(".dataTables_filter").length > 0 ) {
$(".dataTables_filter input").attr("placeholder","filter " + text + "");
diff --git a/headphones/webserve.py b/headphones/webserve.py
index 39ddb88f..6db4c1f3 100644
--- a/headphones/webserve.py
+++ b/headphones/webserve.py
@@ -854,6 +854,16 @@ class WebInterface(object):
return json_albums
getAlbumsByArtist_json.exposed=True
+ def getArtistjson(self, ArtistID, **kwargs):
+ myDB = db.DBConnection()
+ artist = myDB.action('SELECT * FROM artists WHERE ArtistID=?', [ArtistID]).fetchone()
+ artist_json = json.dumps({
+ 'ArtistName': artist['ArtistName'],
+ 'Status': artist['Status']
+ })
+ return artist_json
+ getArtistjson.exposed=True
+
def clearhistory(self, type=None, date_added=None, title=None):
myDB = db.DBConnection()
if type: