[TYPO3-dev] Feedback Request: Inline-Relational-Record-Editing

David Bruehlmeier typo3 at bruehlmeier.com
Thu Nov 16 19:06:00 CET 2006


Hi Olly,

>> - The 'Display Change History / Undo' icon doesn't work
> 
> This function was completely remove from the editing view. If we would
> keep on using this, a new window with the history would pop-up. You
> could make your changes, but then, the TCEforms editing view has to be
> reloaded individually, not completely.
> I think in that case it's better to use this functionality on the list-view.
> 

Totally agree. No need to have it here.

>> - The 'Hide Record' icon doesn't work
> 
> Clicking the icon only toggles the "hidden" field of the child record.
> On clicking the save button this is transfered via TCEmain to the storage.
>

OK, understood.


>> - Deleting the record works, but I noticed that the record only gets
>> deleted once the 'master' record is saved. This is IMO againgst user
>> 'intuition'. The systems asks the user if he wants to delete the record,
>> he answers yes; the expectation is that after answering yes, the record
>> is deleted.
> 
> Yes, that's correct. Every action in IRRE is stored on clicking the save
> button. Deleting on never saved child records is a "removing from the
> DOM structure", deleting on saved child records is a "mark to be deleted
> on hit the save button and hide in current view".
> 
> If it would be deleted directly, all other fields and records should be
> stored immediately to the database. So this would also affect the
> fields, that are not handled by Inline-Relational-Record-Editing.
> It would be possible, but needs a generalized concept for autosaving
> data in TYPO3 - what if your browser crashes, where should the system
> set it's reentry point for editing?
> 
> This could be a feature for the future of IRRE/TYPO3.

OK, I know understand the logic behind this. Autosaving would definitely 
have to be a general TYPO3 topic, and I could imagine that there are 
also strong cons against it.


>> - The 'child'-record in my example has a type-field which refreshes the
>> screen. So when I create a new 'child'-record and change the type, the
>> screen reloads and the new record is saved (TYPO3 standard behaviour).
>> After this reload however, it would be nice if the new record was
>> expanded again so I can continue to edit the new record.
> 
> Hum, good point. I'm not happy with reloading the page. Perhaps I can
> find a solution that catches the "requestUpdate" fields and handle it
> via AJAX. But this is also a general TYPO3 issue, and does not only
> depend on IRRE. Well, give it a try... ;)

Yes, you're right; the reloading is not nice but it's again a general 
TYPO3 behaviour. Only changing it for IRRE does not make much sense. But 
it would definitely be a *great* feature for the "regular" TCEforms! :-)


>> - It would be nice if the appearance of the header of a child record
>> could be configured (styling, which buttons are available). Maybe even
>> place a hook after everything is rendered so everything can be
>> individually influenced?
> 
> What do you mean by "styling", setting the HTML attribute "style" on
> your own? Please give me an example, what button you'd like to hide.

Styling: I guess what I'm talking about lies in the function 
getSingleField_typeInline_renderForeignRecordHeader() in 
t3lib_tceforms_inline.php. Towards the end of the function, you are 
building the table for the header, which I would like to be able to 
style (to set the class attribute). Actually, I just saw that this is 
marked with a FIXME... :-) Perhaps for the final version I can do this 
through regular skinning?

Buttons: If I'm not mistaken, the 'buttons' are rendered in 
getSingleField_typeInline_renderForeignRecordHeaderControl(). It would 
be nice if every single one of these 'buttons' could be 'activated' 
explicitly.

E.g. The only buttons I want to be rendered are the 'info' and the 
'hide' buttons:

...
'appearance' => Array (
	'collapseAll' => 1,
	'showHeaderButtons' => Array (
		'info' => 1,
		'hide' => 1,
	),
),
...

If I don't want any buttons, the config might look like this:

...
'appearance' => Array (
	'collapseAll' => 1,
	'showHeaderButtons' => Array (
	),
),
...

If the 'showHeaderButtons' is missing, then all the buttons are 
displayed just like in the list view (perhaps with the exception of the 
history, as mentioned above).



>> Getting the label of the record
>> -------------------------------
> 
> The suggested user function would be great. I think currently your
> creating the "label" fields on tx_partner using a TCEmain hook to get
> the label field update on saving a record. Of course IRRE can't access
> this, because IRRE mostly comes to action, when the records are not
> completely saved. But it would work with a userfunction, that is called
> via AJAX.

Actually, the solution to build and save the label as an actual field in 
the database was only a workaround since I didn't see any other way to 
form a 'complex' label, e.g. by using the proposed hook. If there was 
such a functionality, I would definitely refrain from saving the label, 
since it's really just redundant information.

As for the AJAX-call: IMO this is not even necessary. When I create a 
new child-record, the label is simply blank, which is perfectly ok. 
After saving the whole "page", the screen is reloaded anyway and the 
label could be built w/o using AJAX by the proposed hook.

> Thanks for your help!

Thank for your coding! :-)

Greetings,
Dave.




More information about the TYPO3-dev mailing list