struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Kelly <patrick.ke...@riverdynamics.com>
Subject Re: datetimepicker used in conjunction with theme=simple form
Date Mon, 07 Apr 2014 21:17:33 GMT
Hi Lukasz, I am currently using version 2.3.15.3 not 2.3.16. So it 
sounds like the bug exists in both versions.

Is there an earlier version I could drop back to just to complete my 
migration process testing where you would expect it to work?

OR should I contemplate swapping over to the jquery plug-in (which is 
new to me). Is that supposed to do everything that dojo does like date 
widget and support for div tags & event publish & subscribe?

Regards - Patrick

Patrick Kelly

PatrickKelly
PrincipalConsultant
*River**Dynamics*

E: patrick.kelly@riverdynamics.com <mailto:patrick.kelly@riverdynamics.com>
W: www.riverdynamics.com <http://www.riverdynamics.com/>

On 8/04/2014 3:56 AM, Lukasz Lenart wrote:
> Right, Dojo plugin is a strange beast ;-) Looks like you found a bug,
> please register an issue in JIRA. It works in Struts 2.3.15.3 but it's
> broken in 2.3.16
>
> 2014-04-07 12:36 GMT+02:00 Patrick Kelly <patrick.kelly@riverdynamics.com>:
>> If I include theme="dojo" on the sx:datetimepicker it throws an error
>> "Attribute theme invalid for tag datetimepicker according to tld"
>>
>> Patrick Kelly
>>
>> PatrickKelly
>> PrincipalConsultant
>> *River**Dynamics*
>>
>> E: patrick.kelly@riverdynamics.com <mailto:patrick.kelly@riverdynamics.com>
>> W: www.riverdynamics.com <http://www.riverdynamics.com/>
>>
>> On 7/04/2014 7:47 PM, Lukasz Lenart wrote:
>>> Define theme in <sx:datetimepicker/> as it now inherits that from <s:form>
>>> tag,
>>>
>>> <sx:datetimepicker theme="dojo" .../>
>>>
>>> 2014-04-07 11:42 GMT+02:00 Patrick Kelly
>>> <patrick.kelly@riverdynamics.com>:
>>>> yes I have the sx:head tag - and no I can't see any javascript errors in
>>>> Firebug.
>>>>
>>>> Patrick Kelly
>>>>
>>>> PatrickKelly
>>>> PrincipalConsultant
>>>> *River**Dynamics*
>>>>
>>>> E: patrick.kelly@riverdynamics.com
>>>> <mailto:patrick.kelly@riverdynamics.com>
>>>> W: www.riverdynamics.com <http://www.riverdynamics.com/>
>>>>
>>>> On 7/04/2014 7:05 PM, Lukasz Lenart wrote:
>>>>> Do you have <sx:head/> tag in your jsp? Do you see any JavaScript
>>>>> errors?
>>>>>
>>>>> 2014-04-07 10:03 GMT+02:00 Patrick Kelly
>>>>> <patrick.kelly@riverdynamics.com>:
>>>>>> Hi, I am head butting a virtual brick wall trying to get the
>>>>>> datetimepicker
>>>>>> dojo widget to work with a theme=simple form.
>>>>>>
>>>>>> I am in the middle of upgrading a webwork app to struts2 2.3.15.3.
The
>>>>>> good
>>>>>> news is that datetimepicker works just like I would expect it in
>>>>>> hundreds
>>>>>> of
>>>>>> places across the migrated application but only if the form is
>>>>>> theme=xhtml.
>>>>>> However if the form is simple (which it is in this case), then what
>>>>>> used
>>>>>> to
>>>>>> work "auto magically" in webwork seems a little more troublesome
in
>>>>>> struts
>>>>>> 2. There is some critical step I am missing but am yet to figure
it
>>>>>> out.
>>>>>>
>>>>>> This is what I am doing. The page uses an iterator to populate a
list
>>>>>> (of
>>>>>> invoice items under an invoice) and then allows the user to edit
any
>>>>>> item
>>>>>> in
>>>>>> the list by clicking an "Edit" link that appears for each item in
the
>>>>>> list.
>>>>>>
>>>>>> The <td> cell for the "Edit" link looks like:
>>>>>>
>>>>>> <td class="evenRow">
>>>>>> <a <%=linkmouseover%> href="javascript:editInvoiceItem('<s:property
>>>>>> value="id"/>', '<s:property escape="false" value="providerHtml"/>',
>>>>>> '<s:property value="createDate"/>', '<s:property
>>>>>> value="serviceCode"/>',
>>>>>> '<s:property escape="false" value="serviceDescriptionHtml"/>',
>>>>>> '<s:property
>>>>>> value="units"/>', '<s:property value="cost"/>', '<s:property
>>>>>> value="gstApplies"/>', '<s:property value="taxInclusive"/>');">Edit</a>
>>>>>> </td>
>>>>>>
>>>>>> And the javascript editInvoiceItem that gets called looks like:
>>>>>>
>>>>>> function editInvoiceItem(id, provider, createDate, serviceCode,
>>>>>> serviceDescription, units, cost, gstApplies, taxInclusive) {
>>>>>>        document.getElementById("invItemId").value = id;
>>>>>>        document.getElementById("provider").value = provider;
>>>>>>        document.getElementById("createDate").value = createDate;
>>>>>>        document.getElementById("code").value = serviceCode;
>>>>>>        document.getElementById("desc").value = serviceDescription;
>>>>>>        document.getElementById("units").value = units;
>>>>>>        document.getElementById("cost").value = cost;
>>>>>>        document.getElementById("gstApplies").value = gstApplies;
>>>>>>        document.getElementById("taxInclusive").value = taxInclusive;
>>>>>>        units=units.replace(/\$|\,/g,'');
>>>>>>        cost=cost.replace(/\$|\,/g,'');
>>>>>>        calculateLineItem();
>>>>>> }
>>>>>>
>>>>>> And the theme=simple form that is auto populated when the user clicks
>>>>>> "Edit"
>>>>>> looks like...
>>>>>>
>>>>>> <s:form theme="simple" id="itemAdd" name="itemAdd" action="invoice"
>>>>>> method="post">
>>>>>>      <s:hidden name="cmd" value="addItem" />
>>>>>>      <s:hidden name="objType" />
>>>>>>      <s:hidden name="objId" />
>>>>>>      <s:hidden name="model" />
>>>>>>      <s:hidden name="invId" value="%{invoice.id}" />
>>>>>>      <s:hidden name="invoice.thirdPartyName" />
>>>>>>      <s:hidden name="invoice.thirdPartyAddress" />
>>>>>>      <s:hidden name="invoiceItem.id" id="invItemId"/>
>>>>>>      <s:hidden name="invoiceItem.provider" id="provider"
>>>>>> value="addItem"/>
>>>>>>      <s:hidden name="role" />
>>>>>> <tr>
>>>>>>      <td class="evenRow"><sx:datetimepicker id="createDate"
>>>>>> displayFormat="%{getText('dateFormat')}" name="invoiceItem.createDate"
>>>>>> /></td>
>>>>>>      <td class="evenRow"><s:select id="code" emptyOption="true"
>>>>>> name="invoiceItem.serviceCode" list="invoiceCodes"/></td>
>>>>>>      <td class="evenRow"><s:textfield id="desc" size="20"
>>>>>> name="invoiceItem.serviceDescription"/></td>
>>>>>>      <td class="evenRow"><s:textfield onchange="calculateLineItem()"
>>>>>> id="units"
>>>>>> size="4" name="invoiceItem.units"/></td>
>>>>>>      <td class="evenRow"><s:textfield onchange="calculateLineItem()"
>>>>>> id="cost"
>>>>>> size="6" name="invoiceItem.cost"/></td>
>>>>>>      <td class="evenRow"><s:textfield id="gst" size="4"
readonly="true"
>>>>>> name="invoiceItem.gst"/></td>
>>>>>>      <td class="evenRow"><s:textfield id="total" size="6"
>>>>>> readonly="true"
>>>>>> name="invoiceItem.total"/></td>
>>>>>>      <td class="evenRow"><s:select onchange="calculateLineItem()"
>>>>>> name="invoiceItem.gstApplies" id="gstApplies"
>>>>>>                    emptyOption="false"
>>>>>>                    list="#{'Yes':'Yes', 'No':'No'}"/></td>
>>>>>>      <td class="evenRow"><s:select onchange="calculateLineItem()"
>>>>>> name="invoiceItem.taxInclusive" id="taxInclusive"
>>>>>>                    emptyOption="false"
>>>>>>                    list="#{'No':'No', 'Yes':'Yes'}"/></td>
>>>>>>      <td class="evenRow">&nbsp;</td>
>>>>>>      <td class="evenRow"><s:submit theme="simple" align="left"
>>>>>> value="Save"
>>>>>> /></td>
>>>>>> </tr>
>>>>>> </s:form>
>>>>>>
>>>>>> There are 2 problems:
>>>>>> - the field "createDate" is not populated when the user clicks the
>>>>>> "Edit"
>>>>>> link (while all the other non-date fields referenced in the javascript
>>>>>> are)
>>>>>> - and if I manually enter a new date via the datetimepicker widget
and
>>>>>> click
>>>>>> a button to save the updated invoice item data, then I get a validation
>>>>>> error saying the "createDate" field is missing
>>>>>>
>>>>>> So it looks like there is some extra getter/setter logic that is
>>>>>> required
>>>>>> for a datetimepicker in theme=simple mode that is needed for any
of the
>>>>>> other non-date fields and wasn't needed in webwork (probably because
it
>>>>>> used
>>>>>> a different date widget).
>>>>>>
>>>>>> Here's hoping someone can point me in the right direction.
>>>>>>
>>>>>> Regards - Patrick
>>>>>>
>>>>>> --
>>>>>> Patrick Kelly
>>>>>>
>>>>>> PatrickKelly
>>>>>> PrincipalConsultant
>>>>>> *River**Dynamics*
>>>>>>
>>>>>> E: patrick.kelly@riverdynamics.com
>>>>>> <mailto:patrick.kelly@riverdynamics.com>
>>>>>> W: www.riverdynamics.com <http://www.riverdynamics.com/>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message