On Sep 7, 2006, at 6:01 PM, Chris Miner wrote:
Am Mittwoch, 6. September 2006 17:40 schrieb Chris Miner:
Am Mittwoch, 6. September 2006 11:27 schrieb Philipp Bracher:
Well .. no nice solution for that yet. The thing is, that we need to
refactor the dialogs for that reason (they are only handling
magnolia
like content and quite inflexible).
Current solution
----------------
- write you custom dialog handler where you populate the dialog
using
the info in the workitem
- use a different save handler to write the values back to the
workitem instead to a node
Future solutions
----------------
A) We store the workitems in the magnolia way (same structure as
paragraphs) this allows to use the dialogs to manipulate them
(currently they are stored unfortunately as plain xml)
B) We refactore the dialogs so that they read and store from any
object (discussed here since a long time)
C) Support the solution above (deliver such a dialog and save
handler
implementation)
B is planed for 3.5 and A) would be wise anyway. C) could get
done if
you help to implement it
Well this would be interesting since I need it anyhow, and it
would be
interesting to see how more of this works through experience.
Also I'd
probably end up with a better design/implementation.
Unfortunately I am
not sure that I am currently in a position to contribute the work
back to
the project. So I can't volunteer yet.
I am now sure I can contribute the work back to the project.
Assuming there
is still an interest in the dialog/save handler approach. I got
started on
it and didn't find it pretty.
It mostly involves rewriting code that assumes access to a Content
node. Also
the Inbox related javascript (Inbox.js) has to be altered to
provide the
dialog handler with a key to the workflow item. I used the item id
that is
already delivered in the page, but one could imagine changing that
to be path
oriented, then use the path to get the content node that contains the
workflow item. That would better match the usage of mgnlOpenDialog
used
elsewhere.
There seems to be a lot of work done in the various process....
methods of
SaveHandlerImpl. I think I need to write methods like the
process... ones
for my save handler, but naturally without the reference to a
Content node.
And the dialog handler has to step in during the renderHtml process
to fill
the dialog tree with data. Repetitively doing something like:
DialogControlImpl sub = dialog.getSub(Context.ATTRIBUTE_COMMENT);
sub.setValue(workItem.getAttributes().sget
(Context.ATTRIBUTE_COMMENT));
except using the dialog control names. Something similar has to be
done on
the other end as well. I suppose it would also make sense to make
the dialog
and save handler repository aware.
Anyway, is this still a good idea? I am thinking maybe it is. If
someone can
sketch out what I need to implement for a WorkFlowItemDialog and a
WorkflowItemSaveHandler, so that it would be useful to others, I am
happy to
continue in that direction and contribute the work back to the
project.
Or maybe it would it be better/possible for me to contribute to the
effort to
Contentify the workflow items? Personally I like that solution better
because it would work out of the box with the dialogs already as
they are.
What do others think?
So we go for A). And C) would probably be a waste of time. But we
need to organize the team so that not both are doing the same thing.
The big question is: will solution A) be a part of 3.0 or not.
Perhaps John has some estimations about when he planed to work on this.
The goals are:
- save the workitem using nodes and properties
- do it in a way that the dialogs are useable to change a workitem
(single properties are for free, however the question is how we
handle maps and lists (multivalues).
- on the wokitem we define an attribute which defines the edit dialog
used in the inbox to edit the workitem.
This allows changing the dialog during the workflow process
This will make it very powerful in the end.
Nicolas & John: what do you think about A) should we enforce that? I
think there are other use-cases where we would like to have that
Personally, I like the idea of having A) enforced. Presumably as the
infrastructure around getting node values and to and from the
client is
improved, then the features around workitems would also benefit.
Philipp Bracher
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------