User login

Weekly Report - 31/01/14




I thought it would be a good idea to start off the week with more refactoring and reorganising the Cuz Javascript folder structure, since it would cause minimal disruption while everyone else is away. After this was done I started going through points from the todo list on the whiteboard:

  • Reimplemented History.js based tab switching - this time using AJAX to send a request for the appropriate view ID before switching to it (had previously not been doing this, which caused problems). Functionally this works well now, but could do with a loading spinner to indicate that the page is doing something while it is waiting to receive the view ID it needs to switch to.

  • Made page titles consistent. Removed redundant strings in titles such as "CUZ - Cuz - subtitle". Titles are now always prepended with "CUZ - " at the lowest level, so higher level titles should omit it.

  • Added a new library for detecting timezone + DST and matching with a string location representation (e.g. "Pacific/Auckland"). This should be a bit nicer than the hacky timezone function that depended largely on each browser's timezone representation.

  • Work on tooltips in modal dialogs. Started using popovers instead of tooltips for displaying descriptions of field headings (but still use tooltips for radio button descriptions etc).

I made some more UI changes, one of the more noticeable being that I have replaced the Source Sans Pro font with the Roboto family (Roboto, Roboto Condensed and Roboto Slab), which I think suit the project a bit more.

I modified the Flotr2 Hit plugin to use Bootstrap tooltips instead of its standard tooltips, and made these appear relative to the mouse cursor or part of the graph being hovered over. This should help to unify our aesthetic and also solves a problem we had with text in Flotr2 tooltips overflowing off the side of the page.

I did some more work on the traceroute map, updating it to work with recent changes to the way graphs load (no loading bars and made visible as soon as data is available). Once I'd figured out the new structure I was actually able to remove a lot of the code I already had in the traceroute map thanks to this, as it had already been doing something similar - attempting to process data as soon as it was available and subsequently displaying the graph if everything had finished loading. I started working on a fix for summary data being too highly aggregated to display anything useful, with the idea that (with some restrictions) the graph should load data for the summary graph at the same resolution as the detail graph. In order to accomplish this we must request data for the summary graph at the same interval as the current detail interval. This gets pretty crazy at super high resolution however, and the code is very rough so I need to refine this.