Added 'Loading...' message to each table. Loading message is turned on at initial page load. It is turned off at the last possible second after completion of page rendering. It is turned on before each API call and back off after the API call completes.
Pause live events by clicking on a task or play. Restart live events by clicking the play button. Fixed issues with event viewer and host viewer dialogs.
Added scope.$apply to each drawing function in hopes of stopping the blockage or pause that seems to occur on page refresh. Seems to be working. Added ability to pause live event processing by clicking a play or task. Now just need a way to restart it.
Switched endless scroll paging to use next URL provided by API. Since the event host_name might be the same for all host events, attempting to use __gt doesn't work reliably anyway, and it turns out there's no need to rebuild the URL on the scroll down event. Now sorting host results by host_name + item to cover cases where host_name is always the same.
Handling play and task parallel arrival seems to be working now. Removed 'search' and 'status' labels from search dialogs. Job events viewer now displays JSON objects as nested tables. Re-ordered host event viewer fields, adding host name, and fixing links so that only the status column is clickable.
Job events are now being processed in parallel on the server side, which means tasks and plays may arrive before events begin arriving. The UI may be receiving events for play 'A' while plays 'B' and 'C' have arrived. The UI now has to know that it the arriving events belong to play 'A', and it should consider play 'A' to be the active play. Plays 'B' and 'C' should not be displayed until events begin arriving for them.
Started adding logic to support parallel processing of plays/tasks. Fixed summary host lit not loading when there is no active play and/or active task.
Now using jobs/N/job_host_summaries.host_name when building host summary list.
For reasons yet to be determined the status field on job_tasks and possibly job_plays may contain 'Token is expired' rather than a numeric return code (i.e. 400, 401, 403, etc.). Changed process_errors to look for this condition and trigger session timeout behavior.
Fixed task hostCount value when data is reloaded in response to a search. Now the 'skipped' or not processed gap shows on task progress bars. Added animation to less/more link
If host_summaries summary_fields.host does not exist, consider host deleted and use <deleted host> for the name. Also, added endless scroll to play list.
Removed malihu POS custom scrollbar widget. Installed new angular directive. Removed the waiting spinner on scroll, replacing it with a subtle, small spinning cog under the scrollbar.
Fixed key sorting. Turns out reverse() doesn't sort keys in reverse, it just reverses them. To sort in reverse: sort().reverse(). Ugh. Fixed JS liting issues for dashboard stuff.
Improved unreachable host count in tasks status bar. Once a host is unreachable it shows as missing in subsequent tasks, which is the expected result as it is skipped but not really marked as skipped.
Job tasks now include an unreachable count and %. Change unreachable color from grey to a different shade of red. While live events are happening host name filter is disabled and status filter is available. Created a custom status filter that accounts for live event processing. While live event processing is active angular filtering on status is disabled for tasks and plays, otherwise no tasks or plays would show up. However, status filtering does apply to host results and host summaries during live event processing.
Changed 'successful' to 'OK' throughout the page. Also fixed status tool tip text on unreachable hosts to be 'Unreachable' rather than 'failed'. Fixed tool tips on Plays and Tasks so that they updated in sync with status changes.
Changed host query from excluding things where host_id not null to including all runner events. This is to accommodate the temporary creation of hosts during a playbook run.
Added dialog for viewing host results and a bunch of formatting. Linked host summary to job_host_summaries page (yes, that still exists). Host results now shows 'skipped' hosts with a blue icon rather than green.
Removed well and index from primary list pages. Job detail page cleanup. Fixed status filter on host summary list. Incresed # rows kept in memory for each list to 100. Showing unreachable host count on the play, mostly to help debugging.
Re-enabling a count of the possible hosts that should report status on each task. As live events happen increment a count stored on the play. Only increment when hosts are reporting for the first task of the play, and only increment if the host status is in: successful, changed, skipped or failed. Added the total to the plays list as 'Reporting Hosts'.
Right justified Account menu. Modified bootstrap menu collapse setting to force collapse at 1075px so that we never show the menu on multiple lines. Started changing styles on job detail page so that we auto-resize behavior can be restored.
Things being added to the DOM were passed by reference and not value. Fixed that using json stringify/parse. Now the DOM does not update in real time. Added in updated of summary list and graph. Performing updates every 5 sec.