diff --git a/code/hooks.js b/code/hooks.js index fbf5c602..c3e0aa25 100644 --- a/code/hooks.js +++ b/code/hooks.js @@ -46,14 +46,15 @@ // checkRenderLimit: callback is passed the argument of // {reached : false} to indicate that the renderlimit is reached // set reached to true. - +// requestFinished: called after each request finished. Argument is +// {success: boolean} indicated the request success or fail. window._hooks = {} window.VALID_HOOKS = ['portalAdded', 'portalDetailsUpdated', 'publicChatDataAvailable', 'portalDataLoaded', 'beforePortalReRender', - 'checkRenderLimit']; + 'checkRenderLimit', 'requestFinished']; window.runHooks = function(event, data) { if(VALID_HOOKS.indexOf(event) === -1) throw('Unknown event type: ' + event); diff --git a/code/map_data.js b/code/map_data.js index 6dc7f0c9..c8ccf116 100644 --- a/code/map_data.js +++ b/code/map_data.js @@ -59,6 +59,7 @@ window.handleFailedRequest = function() { var leftOverPortals = portalRenderLimit.mergeLowLevelPortals(null); handlePortalsRender(leftOverPortals); } + runHooks('requestFinished', {success: false}); } // works on map data response and ensures entities are drawn/updated. @@ -139,6 +140,7 @@ window.handleDataResponse = function(data, textStatus, jqXHR) { resolvePlayerNames(); renderUpdateStatus(); + runHooks('requestFinished', {success: true}); } window.handlePortalsRender = function(portals) {