[WebODF] ODF editing

Jos van den Oever jos.van.den.oever at kogmbh.com
Thu Mar 21 11:42:57 CET 2013


On 03/21/2013 12:52 AM, Philip Peitsch wrote:
> Is there a delivery road-map, or a backlog somewhere of the planned
> features? I'm in the middle of sorting out the various requirements I
> have for the editing behaviours and am basically trying to answer where
> to best start.

We are at a point on the roadmap where we deliver features, but have not 
written a follow up roadmap yet. Roughly our roadmap is to add all odf 
features eventually and by priority of customer wishes.

> The complete features I will need to support in the next few months are:
>
> * Paragraph add / delete
> * Page-break add / delete
> * Table add/delete (rows & columns as well)
> * Character range changes (i.e., modifying the character styles of a
> selected range of text)
> * Paragraph style changes (already covered by your work in some fashion)
> * Paragraph alignment changes (create a new style based on an existing,
> modify the alignment)
> * Bulleted & numbered list creation
> * Image insertion & removal
> * Cut/Copy/Paste (both WebODF => WebODF, external => WebODF, and WebODF
> => external)
> * Page view (as opposed to the "continuous" view currently supported.
> vandenoever mentioned he had some ideas on how to fix this)

Yes for pagination there is a solution which will work well for all 
pages without columns. For pages with columns either more complex 
javascript or good support for CSS Regions is required.

> Is the stuff you are doing for the collaborative editing
> straight-forward enough that I (and you) would benefit if I implement
> these editing operations using that framework, or is my life going to be
> much simpler to implement the DOM changing independently?

That is a very sensible question. And I can give you a counter question: 
will you need to support undo and redo?
If you do, then you need a way to serialize the operations that you 
perform on the dom and create a reverse operation. And that is also a 
requirement for collaborative editing. In collaborative editing there is 
the option to allow to swap the order operations, but that is not a 
requirement for the operations.

> Ideally, if you have a roadmap and timeline that aligns partially with
> what I'm going to need to build, I can choose tasks that won't tread on
> your toes or re-do work you are already scheduling and planning for. It
> would hopefully also mean there is the best chance that the code I write
> is useful to the WebODF project in general, rather than a standalone
> hack branch which I'd prefer to avoid if at all possible :). I'm open to
> any suggestions on how I might tackle this in a way that will make it
> possible for you to integrate the work back in if you think it might be
> useful. Is it possibly a good idea for me to start to plan some of this
> on a public wiki somewhere if you have specific design suggestions or
> feedback?

We work quite agilly and all operations have their own file.
  http://gitorious.org/webodf/webodf/trees/master/webodf/lib/ops

In fact, our operations do not currently have the reverse yet, but that 
will come. I think that organizing DOM operations is not a difficult 
overhead though and a nice way of modularizating the code.

> Please don't feel pressured about this either way. If your time is
> better spent doing things other than helping me design/plan/integrate
> this, I'll figure something out on my own. I'm just conscious there is a
> greater risk that the resulting code I produce won't be able to be
> easily contributed back if I just make it up on my own :)

I think it's a worthwhile 'investment' of time to help you. :-)
That's a large part of a community project. Of course there is an effort 
on both sides to coordinate this, but that is fine.

As to a roadmap for your features, I think that simply implementing the 
operations is the best thing you can do. In our current use case they 
will not bite when not used anyway so there is also little need to keep 
multiple branches that are hard to synchronize. Even if there are 
separate branches, since the operations are separate files, that should 
not be a big problem.

Cheers,
Jos



More information about the WebODF mailing list