Tweaking / Refactoring OWL / OWLdroid

A bit of tweaking and refactoring OWL and OWLdroid over the last couple of days. If you’re trying them out, thinking of doing any development on OWL, it’s worth updating.
What’s up :

  • the main purpose of this work was to bring the OWL and OWLdroid versions of the code-base back together. They’d drifted apart in my first attempt to figure out how to get this stuff working as an Android app. Now all the directory structures are back in the same place. The variation between versions is largely pulled out into specific local_setup.js files and a certain amount of cruft, debugging messages etc. have been removed.
    This is obviously going to make it easier to do common development moving forward.
  • there’s a new “Quick” menu which has buttons for moving the node up, down, left, right, and deleting it. This is mainly useful in OWLdroid where the menu was the only way to move nodes and there was no way to remove them. Nodes still have to be selected into the white-on-black non edit mode before they can be deleted (a useful precaution). This is awkward on OWLdroid, because there’s still the problem that the font-awesome arrows that show open / closed state of the items aren’t appearing. But it is possible to select this mode and, therefore, now possible to delete nodes on Android. (which previously wasn’t the case.)
  • In OWLdroid I’ve experimentally moved the nav-bar up to the main menu bar. I’m concerned that this will screw up the layout on small screens. (Please tell me if it does.) Though it’s more or less OK on my Nexus 7 and I’d assume any tablet or in landscape mode.
    There is a BIG advantage of doing this. The nav-bar controls no longer scroll off the top of long pages. So you can easily go back / forward or create links however far down the page you are. It’s definitely more usable for me.
    I haven’t made the change in normal OWL because I think the cost / benefit calculation re: scrolling / layout problems probably works out a little differently. But if I get requests, then I’ll do it.
    As a side-effect, it’s also removed something that was a catastrophic trap for the unwary in OWLdroid. The default bootstrap layout has a “brand” at the top left, which is a link back to the main page. When this was left in the Android version, if you clicked on it, it would cause weird behaviour. (On my tablet it would try to open the file system) That was confusing and hard to get back from. The branding link is now gone so this is no longer a danger.
  • I’m still chasing down the Safari bug. It’s basically something to do with the way I handle requests for non-existent pages. The code which picks that up and deals with it on Firefox throws an error in Safari. The bug is appearing in jquery code, but it’s obviously because a null value is getting in somewhere. Just have to figure out what I’m relying on and make it an explicit test.