diff --git a/data/interfaces/default/libraries.html b/data/interfaces/default/libraries.html index d138a4aa..4ae736a3 100644 --- a/data/interfaces/default/libraries.html +++ b/data/interfaces/default/libraries.html @@ -180,18 +180,19 @@ % if _session['user_group'] == 'admin': $("#refresh-libraries-list").click(function () { + showMsg('Refreshing libraries list...', true, false); $.ajax({ url: 'refresh_libraries_list', cache: false, async: true, - success: function (data) { - showMsg(' Libraries list refresh started...', false, true, 2000, false); - }, - complete: function (data) { - showMsg(' Libraries list refreshed.', false, true, 2000, false); - }, - error: function (jqXHR, textStatus, errorThrown) { - showMsg(' Unable to refresh libraries list.', false, true, 2000, true); + complete: function (xhr, status) { + var result = $.parseJSON(xhr.responseText); + var msg = result.message; + if (result.result == 'success') { + showMsg(' ' + msg, false, true, 2000, false); + } else { + showMsg(' ' + msg, false, true, 2000, true); + } } }); }); diff --git a/data/interfaces/default/users.html b/data/interfaces/default/users.html index b3e9148c..84c52b20 100644 --- a/data/interfaces/default/users.html +++ b/data/interfaces/default/users.html @@ -184,18 +184,19 @@ % if _session['user_group'] == 'admin': $("#refresh-users-list").click(function() { + showMsg('Refreshing users list...', true, false); $.ajax({ url: 'refresh_users_list', cache: false, async: true, - success: function(data) { - showMsg(' Users list refresh started...', false, true, 2000, false); - }, - complete: function (data) { - showMsg(' Users list refreshed.', false, true, 2000, false); - }, - error: function (jqXHR, textStatus, errorThrown) { - showMsg(' Unable to refresh users list.', false, true, 2000, true); + complete: function (xhr, status) { + var result = $.parseJSON(xhr.responseText); + var msg = result.message; + if (result.result == 'success') { + showMsg(' ' + msg, false, true, 2000, false); + } else { + showMsg(' ' + msg, false, true, 2000, true); + } } }); }); diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 3b263fb7..5cbfbeda 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -458,12 +458,17 @@ class WebInterface(object): logger.warn(u"Unable to retrieve data for get_library_sections.") @cherrypy.expose + @cherrypy.tools.json_out() @requireAuth(member_of("admin")) def refresh_libraries_list(self, **kwargs): - """ Refresh the libraries list on it's own thread. """ - threading.Thread(target=libraries.refresh_libraries).start() + """ Manually refresh the libraries list. """ logger.info(u"Manual libraries list refresh requested.") - return True + result = libraries.refresh_libraries() + + if result: + return {'result': 'success', 'message': 'Libraries list refreshed.'} + else: + return {'result': 'error', 'message': 'Unable to refresh libraries list.'} @cherrypy.expose @requireAuth() @@ -1079,12 +1084,17 @@ class WebInterface(object): return user_list @cherrypy.expose + @cherrypy.tools.json_out() @requireAuth(member_of("admin")) def refresh_users_list(self, **kwargs): - """ Refresh the users list on it's own thread. """ - threading.Thread(target=users.refresh_users).start() + """ Manually refresh the users list. """ logger.info(u"Manual users list refresh requested.") - return True + result = users.refresh_users() + + if result: + return {'result': 'success', 'message': 'Users list refreshed.'} + else: + return {'result': 'error', 'message': 'Unable to refresh users list.'} @cherrypy.expose @requireAuth()