myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zied Hamdi" <javaha...@gmail.com>
Subject Re: [Tomahawk] [tobago] Schedule throws a js exception on entry selection
Date Thu, 13 Dec 2007 14:52:44 GMT
Hi Volker and Simon,

replacing the method by
function fireEntrySelected(formId, scheduleId, entryId) {
       var form = document.forms[formId];
       if (form == null || form.tagName != "FORM") {
           form = document.forms[formId + "::form"];
       }
       form[scheduleId].value = entryId;
       form.submit();
       return true;
}

seems to work fine (I don't have js erros any more, but I still don't have
the element selected: maybe a misuse or sth) even though it can't be in the
official build, it fulfills my needs to integrate it to a tobago app.

By the way Volker, I want to verify the good selection value has been set. I
remember I saw in the mailing list that activating the TRACE mode on a comp
will show submitted request parameters values. I tried :

log4j.logger.org.apache.myfaces.tobago.component.UIPage=TRACE

log4j.logger.org.apache.myfaces.el.VariableResolverImpl=TRACE
but none shows the values. Can please remind me which one it is


Simon,

Thanks for your intervention. For me, the schedule was the component that
had (the responsibility) to find in which form it is embedded in the tree
structure(that's why I included [tomahawk] in the subject), do you think
tobago renderers a form tag without having the UIForm in the structure(2)?
or (1) tc:page is at the same time a representative of f:view and f:form
(implements both interfaces)?

I don't have any experience on developing JSF taglibs so sorry if what I say
is nonsens.



2007/12/13, Simon Kitching <simon.kitching@chello.at>:
>
> I don't see why t:schedule is not usable in tobago.
>
> Yes, it looks for a parent UIForm. With tobago, is there one in the
> component tree or not? I would certainly presume so..
>
> The schedule code does look for an ancestor form, but what is wrong with
> that? There should always be exactly one..
>
> The only problem that I can see is that when the scheduler renderer finds
> a UIForm, then emits its clientId into the javascript it outputs the right
> value. In a tobago environment, it is emitting the value "root" (which is
> the id property of the tobago component) rather than "root::form".
>
> Where does "root::form" come from?
>
> I don't know much about Tobago, but would guess that either:
> (1) the tc:page component implements UIForm, or
> (2) the tc:page automatically creates a child UIForm
>
> In the case of (1), perhaps the component should implement
> NamingContainer, and override getClientId to return "root::form" or
> somesuch.
>
> In the case of (2), tc:page should implement NamingContainer, and set the
> id of the child UIForm component to "form". Then its getClientId would
> return "root:form".
>
> There is also the possibility that the t:schedule renderer is a little
> buggy, and is outputting into the javascript the raw componentid of the
> UIForm it finds, rather than its clientId. But if so, that is reasonably
> easily fixed.
>
> Regards,
>
> Simon
>
> ---- Zied Hamdi <javahamdi@gmail.com> schrieb:
> > That's exactly what I didn't want to hear :-). Thanks for the patch,
> I'll
> > give it a try and tell you if it works.
> >
> > Regards,
> > Zied
> >
> >
> >
> > 2007/12/13, Volker Weber <v.weber@inexso.de>:
> > >
> > > Hi,
> > >
> > > i think the t:schedule could not be used inside tobago.
> > >
> > > it looks like the schedule component looks for the first parent UIForm
> > > and takes this id as the id for a html form tag to submit. This can't
> > > work in tobago, because there is only one html form tag surrounding
> > > all content.
> > > And nesting form tags is not allowed in html.
> > >
> > > We can't fix this in tobago, to make the schedule work in tobago there
> > > must added a workarround in the schedule's javascript to find the root
> > > form tag.
> > >
> > >
> > > Regards,
> > >    Volker
> > >
> > >
> > >
> > >
> > > 2007/12/13, Zied Hamdi <javahamdi@gmail.com>:
> > > > Hi Volker,
> > > >
> > > > Thank you for your fast reply. I'm sorry the preceding mail was
> against
> > > > another source code (as in my app).
> > > >
> > > > But what I noticed is that, because tc:page creates a form alone,
> the
> > > form
> > > > id is always "pageId::form"
> > > >
> > > > The tomahawk schedule seams to search for a form with the same name
> as
> > > > pageId when no explicit form is specified:
> > > >
> > > >
> > > >
> > > > < tc:page
> > > >
> > > >       xmlns=" http://www.w3.org/1999/xhtml"
> > > >
> > > >       xmlns:t=" http://myfaces.apache.org/tomahawk"
> > > >
> > > >       xmlns:tc="
> > > > http://myfaces.apache.org/tobago/component"
> > > >
> > > >       xmlns:tx="
> > > > http://myfaces.apache.org/tobago/extension"
> > > >
> > > >       xmlns:h=" http://java.sun.com/jsf/html"
> > > >
> > > >       xmlns:f=" http://java.sun.com/jsf/core"
> > > >
> > > >       id= "root">
> > > >
> > > >        <!--  The schedule itself -->
> > > >
> > > >        < div style ="position: absolute; left: 220px; top: 5px;
> right:
> > > 5px;"
> > > > ><t:schedule
> > > >
> > > >              value ="#{contractCtrl.scheduleModel.model}"
> > > >
> > > >              id ="schedule1"
> > > >
> > > >              rendered ="true"
> > > >
> > > >              visibleEndHour ="18"
> > > >
> > > >              visibleStartHour ="8"
> > > >
> > > >              workingEndHour ="17"
> > > >
> > > >              workingStartHour ="9"
> > > >
> > > >              readonly ="false"
> > > >
> > > >              theme ="evolution"
> > > >
> > > >              tooltip= "true" /></div >
> > > >
> > > > </ tc:page>
> > > >
> > > >
> > > >
> > > > Outputs this snippet:
> > > >
> > > >
> > > >
> > > >       <form
> > > >
> > > >              name ="root::form"
> > > >
> > > >              action ="/IntoServicesWeb/test/schedule.jsf"
> > > >
> > > >              id ="root::form"
> > > >
> > > >              method ="post"
> > > >
> > > >              accept-charset ="utf-8" ><input
> > > >
> > > >              type ="hidden"
> > > >
> > > >              name ="root::form-action"
> > > >
> > > >              id ="root::form-action"
> > > >
> > > >              value ="" >
> > > >
> > > >        < div style ="position: absolute; left: 220px; top: 5px;
> right:
> > > 5px;"
> > > > ><input
> > > >
> > > >              type ="hidden"
> > > >
> > > >              name ="root:schedule1" ><input
> > > >
> > > >              type ="hidden"
> > > >
> > > >              name ="root:schedule1_last_clicked_date"
> > > > ><input
> > > >
> > > >              type= "hidden"
> > > >
> > > >             name="root:schedule1_last_clicked_y" >
> > > >
> > > >       <div
> > > >
> > > >             class="schedule-compact-evolution"
> > > >
> > > >             style="border-style: none; overflow: hidden;" >
> > > >
> > > >       <table
> > > >
> > > >              class ="month"
> > > >
> > > >              style ="position: relative; left: 0px; top: 0px; width:
> > > 100%;"
> > > >
> > > >              cellpadding ="0"
> > > >
> > > >              cellspacing ="1"
> > > >
> > > >              border ="0"
> > > >
> > > >              width ="100%" >
> > > >
> > > >              < tbody>
> > > >
> > > >                    < tr>
> > > >
> > > >                          < td
> > > >
> > > >                               rowspan ="2"
> > > >
> > > >                               class ="inactive-day workday"
> > > >
> > > >                               style ="height: 121px; width:
> 16.666666%;"
> > > >
> > > >
> > > >                          < table
> > > >
> > > >                               class ="day"
> > > >
> > > >                               style ="height: 121px; width: 100%;"
> > > >
> > > >                               cellpadding ="0"
> > > >
> > > >                               cellspacing ="0" >
> > > >
> > > >                               < tr>
> > > >
> > > >                                     < td
> > > >
> > > >                                           class ="header"
> > > >
> > > >                                           style ="height:
> > > > 18px; width: 100%; overflow: hidden"
> > > >
> > > >                                           id
> > > > ="root:schedule1_header_20071126" >26 nov. 2007 </td >
> > > >
> > > >                               </ tr>
> > > >
> > > >                               < tr>
> > > >
> > > >                                     < td
> > > >
> > > >                                           class ="content"
> > > >
> > > >                                           style ="height:
> > > > 103px; width: 100%;" >
> > > >
> > > >                                     < div
> > > >
> > > >                                           class
> > > > ="contentview"
> > > >
> > > >                                           style ="width:
> > > > 100%; height: 100%; overflow: auto; vertical-align: top;" >
> > > >
> > > >                                     < div
> > > >
> > > >                                           style ="width:
> > > > 100%; height: 100%; vertical-align: top;"
> > > >
> > > >                                           id
> > > > ="root:schedule1_body_20071126" >
> > > >
> > > >                                     < table style ="width:
> > > > 100%;" >
> > > >
> > > >                                           < tr>
> > > >
> > > >                                                 < td
> > > >
> > > >                                                       style
> > > > ="width: 100%;"
> > > >
> > > >
> > > > onmouseover ="return makeTrue(domTT_activate(this, event, 'caption',
> > > > 'Menage', 'content', '&lt;i&gt;Alice du four (Pour
> Hedia)&lt;/i&gt;',
> > > > 'trail', true));" >< a
> > > >
> > > >                                                       href
> > > > ="#"
> > > >
> > > >
> > > > onmouseup ="fireEntrySelected('root', 'root:schedule1', '688133');"
> >
> > > > 3:28PM-4:28PM: Menage</ a></ td>
> > > >
> > > >
> > > >
> > > >
> > > > So even when I want to enfore rules by specifying my own form with
> my
> > > own
> > > > id, the tobago libs use a tobago js function to retreive it, but
> other
> > > libs
> > > > are lost:
> > > >
> > > > I was trying this page:
> > > >
> > > >
> > > > < tc:page
> > > >
> > > >       xmlns= " http://www.w3.org/1999/xhtml"
> > > >
> > > >       xmlns:t= " http://myfaces.apache.org/tomahawk"
> > > >
> > > >       xmlns:tc= "
> > > > http://myfaces.apache.org/tobago/component"
> > > >
> > > >       xmlns:tx= "
> > > > http://myfaces.apache.org/tobago/extension"
> > > >
> > > >       xmlns:h= " http://java.sun.com/jsf/html"
> > > >
> > > >       xmlns:f= " http://java.sun.com/jsf/core"
> > > >
> > > >       id ="root" >
> > > >
> > > >       < tc:form id = "testS" >
> > > >
> > > >             <!--  The schedule itself -->
> > > >
> > > >             < div style ="position: absolute; left: 220px; top: 5px;
> > > right:
> > > > 5px;" >
> > > >
> > > >                 < t:schedule
> > > >
> > > >                   value
> > > > ="#{contractCtrl.scheduleModel.model}"
> > > >
> > > >                   id ="schedule1"
> > > >
> > > >                   rendered ="true"
> > > >
> > > >                   visibleEndHour ="18"
> > > >
> > > >                   visibleStartHour ="8"
> > > >
> > > >                   workingEndHour ="17"
> > > >
> > > >                   workingStartHour ="9"
> > > >
> > > >                   readonly ="false"
> > > >
> > > >                   theme ="evolution"
> > > >
> > > >                   tooltip ="true" /></ div >
> > > >
> > > >       </ tc:form>
> > > >
> > > > </ tc:page>
> > > >
> > > >
> > > >
> > > > I can't get why we get this html output:
> > > >
> > > > < form
> > > >
> > > >       name ="root::form"
> > > >
> > > >       action ="/IntoServicesWeb/test/schedule.jsf"
> > > >
> > > >       id ="root::form"
> > > >
> > > >       method ="post"
> > > >
> > > >       accept-charset ="utf-8" >< input
> > > >
> > > >       type ="hidden"
> > > >
> > > >       name ="root::form-action"
> > > >
> > > >       id ="root::form-action"
> > > >
> > > >       value ="" >
> > > >
> > > > < div style ="position: absolute; left: 220px; top: 5px; right:
> 5px;"
> > > > ><input
> > > >
> > > >       type ="hidden"
> > > >
> > > >       name ="root:testS:schedule1" >< input
> > > >
> > > >       type ="hidden"
> > > >
> > > >       name ="root:testS:schedule1_last_clicked_date" ><
> > > > input
> > > >
> > > >       type ="hidden"
> > > >
> > > >       name ="root:testS:schedule1_last_clicked_y" >
> > > >
> > > > < div
> > > >
> > > >       class ="schedule-compact-evolution"
> > > >
> > > >       style ="border-style: none; overflow: hidden;" >
> > > >
> > > > < table
> > > >
> > > >       class ="month"
> > > >
> > > >       style ="position: relative; left: 0px; top: 0px; width: 100%;"
> > > >
> > > >       cellpadding ="0"
> > > >
> > > >       cellspacing ="1"
> > > >
> > > >       border ="0"
> > > >
> > > >       width ="100%" >
> > > >
> > > >       < tbody>
> > > >
> > > >             < tr>
> > > >
> > > >                   < td
> > > >
> > > >                         rowspan ="2"
> > > >
> > > >                         class ="inactive-day workday"
> > > >
> > > >     ...
> > > >
> > > > [Nachricht gek├╝rzt]
> > >
> > >
> > > --
> > > inexso - information exchange solutions GmbH
> > > Bismarckstra├če 13      | 26122 Oldenburg
> > > Tel.: +49 441 4082 356 |
> > > FAX:  +49 441 4082 355 | www.inexso.de
> > >
> >
> >
> >
> > --
> > Zied Hamdi
> > zatreex.sourceforge.net
>
>


-- 
Zied Hamdi
zatreex.sourceforge.net

Mime
View raw message