FLUID-3527: Upgrade to jQuery 1.4.2 and jQuery UI 1.8

Metadata

Source
FLUID-3527
Type
Task
Priority
Blocker
Status
Closed
Resolution
Fixed
Assignee
y z
Reporter
Justin Obara
Created
2010-03-17T10:53:43.000-0400
Updated
2011-01-30T11:58:20.309-0500
Versions
N/A
Fixed Versions
  1. 1.2
Component
  1. Framework

Description

Upgrade to jQuery 1.4.2 and jQuery UI 1.8

Also should update Qunit if a new version is available.

We are currently waiting for jQuery UI 1.8 final to be released before upgrading.

At this time we should also update to the latest A-grade support.

Comments

  • Justin Obara commented 2010-03-17T12:05:50.000-0400

    Bug Parade Engage 0.3

  • Justin Obara commented 2010-03-24T15:23:19.000-0400

    Just running through the unit tests found these issues.

    1) jquery.keyboard-a11y
    ⁃ 8.4 Died on test#4: handler is undefined **FIXED** (bug in the test, was using the old keyboard a11y api)
    2) InlineEdit
    ⁃ lots, about a quarter of them fail mostly with autosubmit
    3) ImageReorderer (lightbox)
    ⁃ lots, has to do with cacheing
    4) LayoutReorderer
    ⁃ half, has to do with cacheing
    5) ReorderList
    ⁃ 2 thirds, has to do with cacheing
    6) TextfieldSlider
    ⁃ all, can't locate and init slider **FIXED** (missing jquery.ui.mouse.js)
    7) UIOptions
    ⁃ all, possibly because of the textfieldSlider **FIXED** (missing jquey.ui.mouse.js)

  • Justin Obara commented 2010-03-24T16:51:44.000-0400

    Manual tests
    ------------------
    1) dynamic-reorderer

    • fluid.dom.computeAbsolutePosition is not a function
  • Justin Obara commented 2010-03-24T17:34:22.000-0400

    Components
    -----------------

    • UI Options
      - base is not a constructor (jquery.ui.widget.js) **FIXED**
      - can't locate slider **FIXED**
    • Inline edit
      - in edit mode the text from view mode isn't displayed
    • reorderer
      - reordering doesn't work
  • y z commented 2010-03-25T14:45:34.000-0400

    Patch for the issue that updates integration demos.

  • Justin Obara commented 2010-03-25T14:58:34.000-0400

    Committed Yura's patch FLUID-3527-ID.txt

  • y z commented 2010-03-26T11:14:44.000-0400

    This is a patch for standalone demos.

  • y z commented 2010-03-26T13:05:32.000-0400

    Turns out slider also needs jquery.ui.mouse. Now All unit tests pass

  • Eli Cochran commented 2010-03-26T15:53:59.000-0400

    the major issue with the inlineEdit component with jQuery 1.4.2 is that the text of the element gets lost when the edit field instantiates.

  • Justin Obara commented 2010-03-29T10:49:25.000-0400

    Inline Edit issues
    =============

    line: 578
    file: InlineEdit.js

    Problem: the call to index returns 0 instead of -1 when the element passed in is null or undefined.
    http://api.jquery.com/index/

    Reorderer issues
    =============

    line: 248
    file: GeometricManager.js

    Problem: .data("") is now .data()

    line: 310
    file: GeometricManager.js

    Problem: $.data(element) no longer returns a unique id

    jQuery ui issues
    =============

    jQuery ui files have all been renamed to have "jquery." in front.

    jQuery has added in a new files and dependencies:

    jquery.ui.accordion.js depends on jquery.ui.core.js, jquery.ui.widget.js
    jquery.ui.dialog.js depends on jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.position.js
    jquery.ui.draggable.js depends on jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js
    jquery.ui.slider.js depends on jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js

    jquery.ui.tabs.js requires new makup. This is only used in a demo though.
    http://jqueryui.com/demos/tabs/

  • Antranig Basman commented 2010-03-29T11:05:35.000-0400

    InlineEdit failures (in tests) are caused by a jQuery APi change for 1.4 - the "index" method, as well as accepting an element, now will also function in a mode with "no argument", interpreting this search as for the index of the wrapped node within its siblings in the DOM. We now need to guard the operation in inlineEdit.js which supplies a sometimes empty "source" argument.

    Review for other uses of jQuery.index within the framework and deliverables:

    GeometricManager.js 456: var index = $(elements).index(element) + folded;
    Looks safe, no apparent route for "element" to be null, and line 460 will blow if it is

    jquery.keyboard-a11y.js 323: var newIndex = selectionContext.selectables.index(elementToSelect);
    Call to selectElement is guarded against null elementToSelect at line 486, the other call is via evt.target at line 337

    jquery-ui-accessible-tabs.js 32 and 50 tablist.tabs('select', tabs.index(tabToSelect));
    This usage doesn't appear correct... the argument to the activatable function, as per implementation and docs, should be a browser event and not an element. How is this sample currently working?

  • Antranig Basman commented 2010-03-29T11:43:42.000-0400

    Previous versions of jQuery.data() would allow us to get access to the private id associated with a DOM node. It appears that this API was considered "undocumented" and this functionality was removed in jQuery 1.4 - there no longer appears to be any way to get access to this information. Accordingly, we will fall back on a strategy based on a physical DOM id, operated by fluid.allocateSimpleId (this API did not exist at the time GeometricManager was designed). We had hoped to avoid disrupting the DOM in this way but over time the use of this new API has proved apparently safe and stable and is used throughout the framework. All Reorderer automated tests now pass again - fix for GeometricManager.js at revision 9743

  • Colin Clark commented 2010-03-30T18:40:56.000-0400

    Last, minor issue to resolve before closing this issue: upgrading to the newest version of QUnit. Yura is in the process of working on this.

  • y z commented 2010-03-31T17:16:35.000-0400

    this patch has an example of a broken unit test due to the updated qunit.

  • Colin Clark commented 2010-04-07T11:14:00.000-0400

    I've reviewed Antranig's change to InlineEdit.js at r9742 related to the jQuery 1.4.2 upgrade and it looks good.

  • Colin Clark commented 2010-04-07T11:15:08.000-0400

    I've reviewed Antranig's changed to GeometricManager.js at r9743 and they look good.

  • Justin Obara commented 2010-04-15T09:17:25.000-0400

    jQuery and jQuery UI have been updated and are part of the 1.2 release

  • Michelle D'Souza commented 2011-01-30T11:56:35.583-0500

    Reopening these issues to add the frameworkcomponent