Just landed (r12285 on devel) is some refactoring I've been doing on the lazr-js widget wrappers. After hacking on the picker at Dallas, I felt the other editor widgets needed some attention as well. The primary documentation can be found in the source tree at lib/lp/app/doc/lazr-js-widgets.txt, in fact this is probably the best thing to read.
This new changes did several things:
- fixed the multi-line editor so you don't need extra HTML tags surrounding the widget in the page template
- changed the widgets to actually use page templates to render the content instead of fiddling with string substitution
- refactored the class inheritance - the multi-line editor no longer inherits from the single line editor, but instead they both inherit from a common base
- it changed the way the editable attribute is defined - from being the name of the attribute, to being the field from the interface
- the initial text for the multi-line editor is now determined from the object itself, not a parameter passed through to the constructor
- the permission checks were unified, which fixed a problem with the text editors using mutator functions exposed through lazr.restful
- you now have to be explicit about the id used for the HTML tag surrounding the editor - this wasn't much of an ask as all call sites were already doing this
All in all I'm pretty happy with this change.