[Seaside] embedded component problem

Lukas Renggli renggli at gmail.com
Sun Dec 28 14:37:42 UTC 2008


As far as I see you have multiple forms on your page. When you upload
a file you only submit the form with the file and thus loose the
contents of the other form. This is the standard behavior of HTTP and
HTML.

You could use #triggerForm: with the updater to submit the other form
to the server. Look for senders of this message to see how it is used.

Cheers,
Lukas


On 12/28/08, christian ponti <pontichristian at gmail.com> wrote:
> Hi all,
> i have always the same issue in different projects:
> a component (collectionComponent) render a page divided in two, a box on the
> left with some button and a list of items, a box on the right which is
> basically an id to update with an embedded component (cardComponent).
> With a (new card) button on the left, the application calls cardComponent
> wich appears correctly on the right box. The cardComponent is nothing more
> then a bunch of input text, an upload file form and two buttons (save and
> cancel).
>
> The following two methods are defined in collectionComponent:
>
> renderNewCardButtonOn: html
>
>     (html button)
>         onClick:
>                 ((html updater)
>                         id: 'cards';
>                         callback: [:r | r render: (self cardComponent:
> OLCard new)];
>                         evalScripts: true);
>         text: 'N'
>
> cardComponent: aCard
>
>     cardComponent isNil
>         ifTrue:
>             [cardComponent := OLCardComponent new.
>             cardComponent
>                 card: aCard;
>                 collection: self collection]
>         ifFalse:
>             [cardComponent
>                 card: aCard;
>                 collection: self collection].
>     ^cardComponent
>
>
> This is the part that manages the file uploading inside cardComponent.
>
> renderImageFileUploadOn: html
>
>     html
>         tableRow:
>             [html
>                 tableData: 'Copertina';
>                 tableData:
>                         [(html form)
>                                 multipart;
>                                 with:
>                                         [html fileUpload callback: [:f |
> coverFile := f].
>                                             html break.
>                                             html submitButton text:
> 'Carica']]]
>
> ********************************
>
> When I hit the upload file button the form disappears instead of letting the
> user save the model.
>
>
> My question: it is possible to have such behaviour or when i use an embedded
> component (via a JS update) i should expect only to be able to render it?
>
>
> Christian
>


-- 
Lukas Renggli
http://www.lukas-renggli.ch


More information about the seaside mailing list