ChiliProject is not maintained anymore. Please be advised that there will be no more updates.

We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.

Issue list context menu not working in IE9 (Bug #419)


Added by Gregor Schmidt at 2011-05-19 03:20 pm. Updated at 2011-06-10 08:03 pm.


Status:Closed Start date:2011-05-19
Priority:Normal Due date:
Assignee:Eric Davis % Done:

0%

Category:User interface
Target version:2.0.0
Remote issue URL:http://www.redmine.org/issues/7954 Affected version:1.3.0

Description

Microsoft finally implemented W3C's Event model in IE9. Unfortunately this leads to broken event handling prototype.js 1.6 for IE9. Consequently there are currently some JavaScript bugs in IE9 in ChiliProject, e.g. one cannot use the right-click menu in issue list.

The best bet would be to update prototype to the latest version (i.e. 1.7) and probably also the scriptaculous files as well. One caveat may be, that Rails might be shipping an adapted version of these versions. Also Rails' JS helpers might rely on API's that were changed with 1.7. This is just guessing, at the moment.

This error was also reported in Redmine - where you may find more information and a possible fix. The fix was released with Redmine 1.1.3.


Associated revisions

Revision 3a14bff7
Added by Gregor Schmidt at 2011-05-23 09:53 am

[#419] Updating to Prototype 1.7 and script.aculo.us 1.9.0

Revision ae84fff8
Added by Gregor Schmidt at 2011-05-23 05:23 pm

[#419] Fixing broken multi-select serialization in prototype 1.7

See https://prototype.lighthouseapp.com/projects/8886/tickets/1180 for details.

Contributed by Ben Gunter.

History

Updated by Gregor Schmidt at 2011-05-19 04:09 pm

I would like to propose a different approach though. I think updating just one of two tightly coupled libraries (prototype and scriptaculous) seems wrong to me. Also we can assume, that scriptaculous also suffers from bugs with IE9. Rails 2.3 ships with Prototype 1.6.0.3 and script.aculo.us 1.8.2. Although they are rather old - they were added back in November 2009 - updating to their current version (1.7 and 1.9 respectively) will probably work quite well.

We should keep an eye on this particular issue, where mulit-select serialization seems to be broken. There is a patch to fix it, but I do not know, why it was not yet applied to prototype's core.

In general, I think we should care about IE 9 and since 2.0 will be around for some time, I also think, that this should be addressed as soon as possible. Also 2.0 was said to be a dependency update release - updating the JS libraries seems to be a perfect fit.

I would be willing to do the code work and some testing in IE9 and FF 4. I do not know how much testing would be necessary to build enough of confidence.


There would also be an alternative solution which would probably work in the meantime. We could force IE9 to use IE8 compatibility mode by adding a meta tag to the base layout's head.

<meta http-equiv="X-UA-Compatible" content="IE=8"/>

See this Microsoft page for more detailed information.

But I think this approach would be more adequate for a patch level release.

Updated by Eric Davis at 2011-05-20 05:55 pm

Ugh, this doesn't make me comfortable at all. None of the JavaScript is tested at all and with so many browsers now, it's a pain to do manual testing. Doing a major update to Prototype might break other things.

I think I have a rewrite of the context menu using jQuery. I don't know if we could (or should) try to rush that into 2.0 though. Gregor, would you mind trying to test the JS updates and see how much breaks? Worst case we can force IE8 compatibility mode...

(Sidenote: need to look into some JS testing tools)

Updated by Gregor Schmidt at 2011-05-23 07:39 am

I'll update the libs in my fork and will use them in my daily work. Let's see, what this brings.

  • Assignee set to Gregor Schmidt

Updated by Gregor Schmidt at 2011-05-23 03:38 pm

I have updated the files and applied the patch mentioned above. The code may be found at my GitHub fork. There are 3 version - each on based on a different chili branch:

Updated by Gregor Schmidt at 2011-05-27 07:28 pm

I guess, now it's time to decide. I did not run into issues using the code in the branches above. So either we go for the full update for 2.0RC1 or we add the meta thingy to force IE9 into IE 8 mode.

  • Status changed from Open to Ready for review

Updated by Eric Davis at 2011-05-27 09:28 pm

Since 2.0 will be around for 6 months, I +1 the JS upgrade there. We might have to do some bug fixing in minor releases if things break. The alternative is to do a JS upgrade in a minor release which is riskier (e.g. 2.1.0 -> 2.2.0).

After seeing some other issues that are fixed in IE 9+, I think forcing IE9 back to IE8 might be the wrong direction.

Anyone else want to speak up with their opinions on this?

Updated by Eric Davis at 2011-06-10 07:08 pm

Since I don't see anyone disagreeing with this approach, lets go ahead and do the JS library upgrade.

  • Assignee changed from Gregor Schmidt to Eric Davis

Updated by Eric Davis at 2011-06-10 08:03 pm

Merged the upgrades into release-v2.0.0. We will need to watch for any JavaScript bugs that might arise.

Thanks for the patches Gregor.

  • Status changed from Ready for review to Closed

Also available in: Atom PDF