Bug #6 (2013-09-26)
When the python service is restarted the client data is dumped, any SWF instances need to re-identify themselves after reconnection. Actually they do try and reidentify after the connection, but something's wrong - maybe to do with the page re-rendering after due to the sync running at the same time (which it shouldn't).
Bug #5 (2013-09-26)
When opening a page on a specific view, the default view is being loaded, not the specified view - at least that's the case for a group URL ending in /Properties.
Bug #3 (2013-09-07)
An ugly hack is required to ensure that all change events are sent since the last sync request. I'm having to double the time period when collecting the changes to send, but this means that often changes are being sent twice (which is no problem, but is inefficient).
Bug #4 (2013-09-16)
Returning binary files is intermittently failing with "ascii" codec can't decode byte 0xff in position 0: ordinal not in range(128).
- I've got this to a better state now, but keeping the bug listed as it's still not right. Using sendall() instead of send() solves the character decoding problem, but fails intermittently for files over 100KB or so with "resource temporarily unavailable". I made it only use sendall() for images so that if one fails it at least won't break the functionality of the app, since some of the scripts (like jQueryUI) are large and fail a lot with sendall().
Solution (2013-09-25): I've changed the server over to the asynchat module which seems to have resolved this issue. The reason for the move is for more control over the socket for connecting with the SWF, but it's also solved this problem.
Bug #1 (2013-09-05)
Checkboxes and select lists events failing on Firefox 17. When a select list of checklist input changes due to a remote change, the incoming data arrives and the change event fires leading to a change in the "selected" or "checked" attribute (this can be seen with Firebug), but the actual state of the input element sometimes has no visible change.
Solution (2013-09-12): Checkboxes and select list's states should be updated with the selected(bool) and checked(bool) methods on the DOM object, not via updating the element's attributes.
Bug #2 (2013-09-05)
Multiple events are firing on input components, for example a single change comes in and three or four event handlers are responding to it.
Solution (2013-09-10): When the view is re-rendered (by a node change or view change for example), the original input element is removed from the DOM and replaced with a newly rendered one. But because the original element is still referred to by it's event-handler function it does not die and so still receives the change events. The solution is to check if the element is in the DOM by checking that it has valid parent nodes and if not, remove the handler allowing the element to die since nothing then refers to it any longer.