ICEfaces
  1. ICEfaces
  2. ICE-10126

mobi:scan ios issue with captureMessageLabel

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 4.0.BETA
    • Fix Version/s: EE-4.0.0.GA, 4.1
    • Component/s: MOBI-Components
    • Labels:
      None
    • Environment:
      Tomcat 7, iphone 4s/5 using ios 7.x. Icefaces 4 trunk r41775
    • Assignee Priority:
      P1

      Description

      Issue found on ios devices.
      The Scan buttonLabel Attribute doesn't change to it's captured message label after scanning a QR code. Test application found at:
      C:\svn\repo\qa\trunk\Regression-Icefaces4\Sparkle\Manual\scan

      To reproduce on ios device:
      Navigate to mobi:scan dynamic attribute test
      Click rendered.
      Click the Scan Code button.
      Use the device to scan a QR or bar code.
      Once the scan is complete the "Scan Code" button should be rendered as a "Scan Captured" button. This does not occur using an ios device. Works fine using android.

        Activity

        Hide
        Ted Goddard added a comment -

        Reproduced using ICEfaces 4 trunk deployed to labs.icesoft.com:8080/showcase/

        Show
        Ted Goddard added a comment - Reproduced using ICEfaces 4 trunk deployed to labs.icesoft.com:8080/showcase/
        Hide
        Ted Goddard added a comment -

        Sample return from iOS application:

        http://localhost:8080/showcase/showcase-mobile.jsf#icemobilesx_c2Nhbk9uZT1QZW5jaWxzJiFjPWFwbnM6YjFkZmI5NmRhY2ZmY2E2Mzg0MWMyYjg1NTQ5YzBlNTgxYmMzNzllNzdmM2U1NGRhOGQwMzNiNDQ2MDAwOTQyMyYhdj0xLjAuNA~~

        This appears to not be decoding because both bridgeit.js and older ICEmobile-SX JavaScript (in coalesced.js.jsf from icefaces/mobi/component/resources/org.icefaces.component.util/component.js)
        are both present in the page and the hashChange listener from component.js is winning.

        This means that the component is relying on an upload to the server from BridgeIt.app, not the BridgeIt callback to the browser.

        Show
        Ted Goddard added a comment - Sample return from iOS application: http://localhost:8080/showcase/showcase-mobile.jsf#icemobilesx_c2Nhbk9uZT1QZW5jaWxzJiFjPWFwbnM6YjFkZmI5NmRhY2ZmY2E2Mzg0MWMyYjg1NTQ5YzBlNTgxYmMzNzllNzdmM2U1NGRhOGQwMzNiNDQ2MDAwOTQyMyYhdj0xLjAuNA~~ This appears to not be decoding because both bridgeit.js and older ICEmobile-SX JavaScript (in coalesced.js.jsf from icefaces/mobi/component/resources/org.icefaces.component.util/component.js) are both present in the page and the hashChange listener from component.js is winning. This means that the component is relying on an upload to the server from BridgeIt.app, not the BridgeIt callback to the browser.
        Hide
        Ted Goddard added a comment -

        The Android implementation is performing a POST to the server when the scan completes, rather than returning the value directly to the browser. The iOS version is likely making use of the hidden field update capability since no callback is registered.

        <button id="scanOne_button" name="scanOne_button" onclick="bridgeit.scan('scanOne', '', {postURL:'http://localhost:8080/showcase/javax.faces.resource/auxupload.txt.jsf', cookies:{'JSESSIONID':'30EF86BB77DA21FC0DDD33FCEC4CF690'}});" style="width:50%" tabindex="0" type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text"><span>Scan Code</span><span></span></span></button>

        Since the current bridgeit.js is used to invoke the scan, BridgeIt App assumes that the page is capable of handling a callback.

        Show
        Ted Goddard added a comment - The Android implementation is performing a POST to the server when the scan completes, rather than returning the value directly to the browser. The iOS version is likely making use of the hidden field update capability since no callback is registered. <button id="scanOne_button" name="scanOne_button" onclick="bridgeit.scan('scanOne', '', {postURL:'http://localhost:8080/showcase/javax.faces.resource/auxupload.txt.jsf', cookies:{'JSESSIONID':'30EF86BB77DA21FC0DDD33FCEC4CF690'}});" style="width:50%" tabindex="0" type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text"><span>Scan Code</span><span></span></span></button> Since the current bridgeit.js is used to invoke the scan, BridgeIt App assumes that the page is capable of handling a callback.
        Hide
        Ted Goddard added a comment -

        The component should be implemented to use the BridgeIt callback mechanism. This will allow partial offline operation and will improve the UI responsiveness.

        Show
        Ted Goddard added a comment - The component should be implemented to use the BridgeIt callback mechanism. This will allow partial offline operation and will improve the UI responsiveness.
        Hide
        Ted Goddard added a comment -

        Assigning to Ken for potential re-assignment – the required fix needs several changes in the component and may not be warranted for the upcoming release since the actual bug symptom is minor. A greater concern is the presences of both component.js and bridgeit.js.

        Show
        Ted Goddard added a comment - Assigning to Ken for potential re-assignment – the required fix needs several changes in the component and may not be warranted for the upcoming release since the actual bug symptom is minor. A greater concern is the presences of both component.js and bridgeit.js.
        Hide
        Judy Guglielmin added a comment -

        r. 44057

        Show
        Judy Guglielmin added a comment - r. 44057
        Hide
        Liana Munroe added a comment - - edited

        showcase-mobile - Tested with ICEfaces 4 trunk r44061 using iphone 4s with ios 7 and ipad with ios 8. Issue is still present. Scan captured label is not rendered after the scan.

        Show
        Liana Munroe added a comment - - edited showcase-mobile - Tested with ICEfaces 4 trunk r44061 using iphone 4s with ios 7 and ipad with ios 8. Issue is still present. Scan captured label is not rendered after the scan.
        Hide
        Judy Guglielmin added a comment -

        modifed showcase to use the captureMessageLabel attribute.
        Also noticed that the decode is working and the button label should be resolving to original message after the value is updated, however, something is triggering bridgeIt to keep the old markup (component is not being updated properly). I attempted use of hashCode to ensure the markup is rendered, but it appears to be written over by bridgeIt. Renderer is encoding and decoding properly, and component js is not interfering.
        rev 44071 for showcase example update

        Show
        Judy Guglielmin added a comment - modifed showcase to use the captureMessageLabel attribute. Also noticed that the decode is working and the button label should be resolving to original message after the value is updated, however, something is triggering bridgeIt to keep the old markup (component is not being updated properly). I attempted use of hashCode to ensure the markup is rendered, but it appears to be written over by bridgeIt. Renderer is encoding and decoding properly, and component js is not interfering. rev 44071 for showcase example update
        Hide
        Carmen Cristurean added a comment -

        Verified mobi:scan in showcase-mobile and the QA mobi:scan application with IF4 trunk r44085 using iPhone4S/iOS7.

        Show
        Carmen Cristurean added a comment - Verified mobi:scan in showcase-mobile and the QA mobi:scan application with IF4 trunk r44085 using iPhone4S/iOS7.

          People

          • Assignee:
            Judy Guglielmin
            Reporter:
            Liana Munroe
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: