ICEfaces
  1. ICEfaces
  2. ICE-9871

New mobi:dateSpinner component

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.0.BETA, 4.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 4
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial

      Description

      The mobi:dateSpinner is an input component used for choosing a date.

      Supports both native device date selection components, or optionally its' own date selection UI, consistent on all devices.

        Activity

        Hide
        Cruz Miraback added a comment -

        Test Results

        ICEfaces4 trunk revision# 39917

        1) The required / requiredMessage attributes are unusable currently. If the dateSpinner has an empty value and you try to submit it then the default converter gets called and the converterMessage is displayed ("

        {0}

        : Conversion error occurred."). The default converter should let the required attribute handle empty values instead of trying to convert them. When I created my own converter I was able to fix this by returning before conversion on empty/null values.

        2) The dateSpinner seems to be submitting at times when it shouldn't be. When changing the date by using the arrows the dateSpinner is firing a submit each time an arrow is clicked. This can be seen in Firebug (Net tab) as well as the required/converter messages being shown on the page. Secondly, when clicking 'Set' the dateSpinner will actually send the value to the server and the date will be set in the bean. This is without singleSubmit or ace:ajax enabled.

        3) The style attribute gets applied to the wrapping span but the styleClass attribute gets applied to the input component. Is this expected/desired behaviour?

        4) With an ajax tag present and set to disabled=true clicking "Set" on the dateSpinner throws a JS error and the dateSpinner remains open:
        Message: Syntax error
        Line: 118
        Char: 494
        Code: 0
        URI: http://10.18.39.144:8080/dateSpinner/dateSpinnerAjax.jsf

        5) I couldn't find a way to test that the locale and timezone attributes are functioning. I tried various values for each of these but it doesn't seem to change anything. Need further test instructions.

        Show
        Cruz Miraback added a comment - Test Results ICEfaces4 trunk revision# 39917 1) The required / requiredMessage attributes are unusable currently. If the dateSpinner has an empty value and you try to submit it then the default converter gets called and the converterMessage is displayed (" {0} : Conversion error occurred."). The default converter should let the required attribute handle empty values instead of trying to convert them. When I created my own converter I was able to fix this by returning before conversion on empty/null values. 2) The dateSpinner seems to be submitting at times when it shouldn't be. When changing the date by using the arrows the dateSpinner is firing a submit each time an arrow is clicked. This can be seen in Firebug (Net tab) as well as the required/converter messages being shown on the page. Secondly, when clicking 'Set' the dateSpinner will actually send the value to the server and the date will be set in the bean. This is without singleSubmit or ace:ajax enabled. 3) The style attribute gets applied to the wrapping span but the styleClass attribute gets applied to the input component. Is this expected/desired behaviour? 4) With an ajax tag present and set to disabled=true clicking "Set" on the dateSpinner throws a JS error and the dateSpinner remains open: Message: Syntax error Line: 118 Char: 494 Code: 0 URI: http://10.18.39.144:8080/dateSpinner/dateSpinnerAjax.jsf 5) I couldn't find a way to test that the locale and timezone attributes are functioning. I tried various values for each of these but it doesn't seem to change anything. Need further test instructions.
        Hide
        Cruz Miraback added a comment - - edited

        Issues (ICEfaces4/trunk revision# 40047):

        6) When trying to change the value of the dateSpinner inside nested ace:dataTables the date immediately switches back to it's original value and cannot be changed. No issues when inside nested h:dataTables.

        7) When using ace:ajax with execute=@this the results for the execute contain "undefined"

        Show
        Cruz Miraback added a comment - - edited Issues (ICEfaces4/trunk revision# 40047): 6) When trying to change the value of the dateSpinner inside nested ace:dataTables the date immediately switches back to it's original value and cannot be changed. No issues when inside nested h:dataTables. 7) When using ace:ajax with execute=@this the results for the execute contain "undefined"
        Show
        Cruz Miraback added a comment - Test application is located at: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/dateSpinner
        Hide
        Arturo Zambrano added a comment -

        Fixed issue #1 at revision 40073, by avoiding going through the default conversion when submitting blank values, as done in ace:dateTimeEntry.

        Show
        Arturo Zambrano added a comment - Fixed issue #1 at revision 40073, by avoiding going through the default conversion when submitting blank values, as done in ace:dateTimeEntry.
        Hide
        Arturo Zambrano added a comment -

        Fixed issue #2 at revision 40074, by adding "return false;" to each button.

        Show
        Arturo Zambrano added a comment - Fixed issue #2 at revision 40074, by adding "return false;" to each button.
        Hide
        Arturo Zambrano added a comment -

        Fixed issue #3 at revision 40075, by applying styleClass to root element and style to input element.

        Show
        Arturo Zambrano added a comment - Fixed issue #3 at revision 40075, by applying styleClass to root element and style to input element.
        Hide
        Arturo Zambrano added a comment -

        Fixed issue #4 by adding some logic in encodeClientBehaviors() to avoid rendering the behavior label/key in the behaviors object when there are no non-disabled ajax behaviors for that event.

        Show
        Arturo Zambrano added a comment - Fixed issue #4 by adding some logic in encodeClientBehaviors() to avoid rendering the behavior label/key in the behaviors object when there are no non-disabled ajax behaviors for that event.
        Hide
        Arturo Zambrano added a comment -

        Issue #6 is only due to the fact that the Employee and Note classes do not override the equals() and hashCode() methods with their own implementations, which is a requirement to work with ace:dataTable. So, as soon as those classes have their own equals() and hashCode() methods, things should work fine on ace:dataTable.

        Show
        Arturo Zambrano added a comment - Issue #6 is only due to the fact that the Employee and Note classes do not override the equals() and hashCode() methods with their own implementations, which is a requirement to work with ace:dataTable. So, as soon as those classes have their own equals() and hashCode() methods, things should work fine on ace:dataTable.
        Hide
        Cruz Miraback added a comment -

        ICEfaces4 trunk revision# 40082

        Confirmed issue #1 fixed.
        Confirmed issue #2 fixed. However, when clicking 'Set' the selected date still gets submitted to the server when not using ace:ajax. In this scenario I would expect the value to get set in the input of the component but not sent to the server (like when using ajax disabled=true).
        Confirmed issue #3 fixed.
        Confirmed issue #4 fixed.
        For issue #6 I implemented equals() and hashCode() methods but I'm getting the same results.

        Show
        Cruz Miraback added a comment - ICEfaces4 trunk revision# 40082 Confirmed issue #1 fixed. Confirmed issue #2 fixed. However, when clicking 'Set' the selected date still gets submitted to the server when not using ace:ajax. In this scenario I would expect the value to get set in the input of the component but not sent to the server (like when using ajax disabled=true). Confirmed issue #3 fixed. Confirmed issue #4 fixed. For issue #6 I implemented equals() and hashCode() methods but I'm getting the same results.
        Hide
        Ken Fyten added a comment -

        Remaining issue #6 with nested ace:dataTables has been spun off to ICE-9895.

        Resolved.

        Show
        Ken Fyten added a comment - Remaining issue #6 with nested ace:dataTables has been spun off to ICE-9895 . Resolved.

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Ken Fyten
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: