AnsweredAssumed Answered

In-place editing of child-associations?

Question asked by hbf on Feb 22, 2008
Dear all,

From our customers we frequently get the feedback that the Web Client's current way of handling child-associations is – in some specific places – unintuitive and time-consuming to use. I'd like to work on this and therefore would be interested to hear your views and comments!

Here is an example: Suppose my custom type 'report' can have zero, one, or more assigned contacts. I model this as a child-association 'contacts' from type 'report' to a type 'contact' that has properties 'email', 'phone', etc. On the model side, this looks fine to me.

However, on the GUI side, the Web Client does not show the contacts in-place but merely shows links to the contact instances. So if you need to edit (let alone view) one of the contacts, you have to follow the link and only then can see/edit it. Worse, if you need to create a new contact, you cannot do this here but have to create a new node, go back to the property sheet of the report, search for it and associate it to the report – that's not intuitive at all.

I imagine I am not the only one running into such problems. Therefore, I'd like to work towards a solution of it: be it an AMP or a direct contribution. In order to not waste time and effort, I would be very glad if somebody from Alfresco would steer the work so that it all fits into Alfresco's big picture of the Web Client. Maybe an Alfresco engineer is interested?

I guess we'd have to do something along the following lines:

1. Develop a component generator and association component so that in your web-client-custom.xml you can activate the new behaviour via
<show-child-association name="my:contacts" display-label="Contacts" component-generator="InPlaceChildAssociationsEditor" />

2. The component should have a configuration option depending on which a "Create" button is shown. Another configuration option may show a field where the user can enter the name of the instance to create. – If you hit "Create", a new instance will be created and associated to the current node. (Maybe another configuration option gives the name of the type/subtype to create?) Also, another configuration option should change the "Create" button to an "Upload" button for the case where a file needs to be uploaded (see this post here).

3. In the ideal case, the properties of the child targets are shown in-place (so that the user does not have to traverse a link).

I have an idea how to do 1. and 2., but have no idea how 3. could be done. I remember playing around with PropertySheet and having run into a problem when I tried to use it within an another property sheet (as is necessary here: the properties of the contacts show up within the property sheet of the report).