Edgewall Software
Modify

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#10976 closed defect (fixed)

Compatibility issue between jQuery UI < 1.8.22 and jQuery 1.8

Reported by: Ryan J Ollos <ryan.j.ollos@…> Owned by: Christian Boos
Priority: normal Milestone: 1.1.1
Component: web frontend Version: 1.1.1dev
Severity: normal Keywords: jqueryui
Cc: Peter Suter
Release Notes:

jQuery upgraded to 1.8.3, jQuery UI upgraded to 1.9.2 and jQuery UI Timepicker upgraded to 1.1.1.

API Changes:

jQuery upgraded to 1.8.3, jQuery UI upgraded to 1.9.2 and jQuery UI Timepicker upgraded to 1.1.1.

Description (last modified by Ryan J Ollos <ryan.j.ollos@…>)

The trunk was updated to jQuery 1.8.2 in [11412] and is still using jQuery UI 1.8.21, as in the Trac 1.0 release. I ran into a compatibility issue between jQuery UI < 1.8.22 and jQuery 1.8.x in th:#10688. The issue is described in jquery:#11921. jQuery UI 1.8.21 is still using the curCSS variable (an alias for $.css), which was removed in jQuery 1.8. A workaround was implemented in jQuery UI 1.8.22, so upgrading jQuery UI on the Trac trunk should resolve the issue.

Attachments (0)

Change History (19)

comment:1 Changed 6 years ago by Ryan J Ollos <ryan.j.ollos@…>

Description: modified (diff)

comment:2 Changed 6 years ago by Remy Blank

Milestone: 1.1.1
Owner: set to Remy Blank
Status: newassigned

comment:3 Changed 6 years ago by Remy Blank

Cc: Peter Suter added

I was going to start working on this, but I noticed we had no documented process for updating jQuery UI and related files.

Peter, would you mind creating a short wiki page describing the steps required to update jQuery UI, the custom theme, and the addons that we bundle? Bonus points if this can be scripted and added to contrib.

comment:4 Changed 6 years ago by anonymous

Suggesting to write this in TracDev/JavaScript#jQueryUI.

comment:5 Changed 6 years ago by Christian Boos

Well, it's apparently not easy to re-generate a package for a custom theme for a version not listed on the jQuery Theme Roller download page.

So I suggest going for the latest legacy version, i.e. jQuery UI 1.9.2, bundled with jQuery 1.8.3.

We'll follow-up later with #11019, as upgrading to jQuery 1.9 is likely to bring more disruptive changes.

comment:6 Changed 6 years ago by Christian Boos

Keywords: jqueryui added
Resolution: fixed
Status: assignedclosed

Upgrade done in r11538. No visible issues after a brief testing. Will upgrade t.e.o as well.

comment:7 Changed 6 years ago by Remy Blank

Owner: changed from Remy Blank to Christian Boos

comment:8 Changed 6 years ago by anonymous

Why don't you use the minified jquery UI css? Also, is jquery ui 1.10 incompatible? Because it says it works with jquery 1.6+.

comment:9 Changed 6 years ago by anonymous

In fact you should use the minified JS too.

Another thing, you should also update http://trentrichardson.com/examples/timepicker/.

comment:10 Changed 6 years ago by Christian Boos

People are more likely to customize their CSS than their Javascript.

So while it's OK to ship the latter .js minified, I think it's useful to have all the CSS source around. Those .css files are also much smaller. This will become a non-issue when we'll have minification support (#10672).

And we'll update to jQuery UI 1.10.1 soon (Trac 1.1.2), but I think it's useful to have an intermediate reference point (jQuery UI 1.9.2) instead of making a big jump.

comment:11 Changed 6 years ago by anonymous

Yeah, but until #10672 happens, using at least the minified javascript is an improvement.

comment:12 in reply to:  11 Changed 6 years ago by Christian Boos

Replying to anonymous:

Yeah, but until #10672 happens, using at least the minified javascript is an improvement.

The jQuery and jQuery UI .js files are minified.

As part of #10672, We'll rename them to .min.js so that they won't get minified again.

comment:13 in reply to:  9 Changed 6 years ago by Christian Boos

Replying to anonymous:

Another thing, you should also update http://trentrichardson.com/examples/timepicker/.

Ah right, thanks for the notice! Done in r11562, and documented in TracDev/JavaScript#Timepicker.

I'll upgrade to v1.1.2 (or whichever is the latest version at that time) when doing #11019.

comment:14 Changed 6 years ago by anonymous

No problem. BTW, b1.1.2 should be fine; it's not like jquery 1.9/2.0 so there is no reason to use 1.1.1. Also closure compiler? bah :P

comment:15 in reply to:  14 Changed 6 years ago by Christian Boos

Replying to anonymous:

Also closure compiler? bah :P

Well, this produced a 31051 bytes file.

I tried uglify-js, which produced a file weighting 32193 bytes (using -c -m).

I also tried the yuicompressor, however it didn't seem to mangle the names, resulting in a file of 40701 bytes (there's only a --nomunge option but it's as if it would be active by default and there's no --munge option).

Other suggestions welcome, but better continue this on #10672.

comment:16 Changed 6 years ago by anonymous

Yeah I meant uglify-js 2. Even if it produces worse results in this case, it's generally much better.

comment:17 Changed 6 years ago by Peter Suter

Sorry, I could not get to this earlier. Looks like you got it covered already now, thanks.

One minor related thing is the documentation of the jquery_*_location options. I updated those in [11576].

comment:18 Changed 6 years ago by Ryan J Ollos <ryan.j.ollos@…>

API Changes: modified (diff)
Release Notes: modified (diff)

I wasn't sure if/how the API Changes and Release Notes might differ for this case, so I followed what was done for #10165.

comment:19 Changed 6 years ago by Ryan J Ollos <ryan.j.ollos@…>

API Changes: modified (diff)
Release Notes: modified (diff)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christian Boos.
The resolution will be deleted.
to The owner will be changed from Christian Boos to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.