Modify

Opened 3 years ago

Last modified 20 months ago

#8714 new defect

User preferences: custom rules do not seem to work with Internet Explorer 6, 7, or 8

Reported by: David.Byrne@… Owned by: hasienda
Priority: normal Component: AnnouncerPlugin
Severity: major Keywords: user-preferences browser-depended
Cc: rjollos, doki_pen Trac Release: 0.12

Description

I set up the announcer plugin and created a custom watch rule in my user preferences. One of the other users tried to do the same and couldn't get the rule to be created. They were using Internet Explorer and I was using Firefox. I have tried myself with Internet Explorer 8 and cannot get the initial custom rule created.

Attachments (0)

Change History (7)

comment:1 Changed 3 years ago by David.Byrne@…

Here is some additional information regarding this issue. I added some logging to see if I could find what is happening in the subscription panel. Here is the normal output from Firefox:

2011-04-28 13:18:42,618 Trac[pref] DEBUG: POST was called
2011-04-28 13:18:42,618 Trac[pref] DEBUG: method_arg = delete-rule_14
2011-04-28 13:18:42,618 Trac[pref] DEBUG: m = <_sre.SRE_Match object at 0x7fb236911cf0>
2011-04-28 13:18:42,618 Trac[pref] DEBUG: method, arg  = delete-rule,14

and here is the broken output from IE:

2011-04-28 13:17:31,026 Trac[pref] DEBUG: POST was called
2011-04-28 13:17:31,026 Trac[pref] DEBUG: method_arg = Delete
2011-04-28 13:17:31,026 Trac[pref] DEBUG: m = None

As you can see, Firefox is sending back delete-rule_14 whereas IE is sending back the button name Delete.

The problem is that my company and my client's company both use IE as the norm.

comment:2 Changed 3 years ago by David.Byrne@…

After a bit more research, it appears that IE (the non-compliant browser) sends back the button text instead of the button value. Looking for solutions, one possible recommendation was to include the ie7.js (or ie8.js or ie9.js) which is a JavaScript library to make IE more standards compliant. I don't know if it will fix the button issue or not. Another solution was to not use <button but use the <input which is not as standards-compliant, but is not broken with IE.

comment:3 Changed 3 years ago by David.Byrne@…

Hopefully this is the last comment. On a webpage discussing the issue http://www.peterbe.com/plog/button-tag-in-IE, one suggestion was:

Chileno - 25th August 2009  [«« Reply to this]
an easy solution with "Value"

<button name="asd" value="12" onclick="alert(this.value)">one two</button>

on ie show one two
on firefox show 12

but

<button name="asd" value="12" onclick="this.value='12',alert(this.value)">one two</button>

on ie show 12
on firefox show 12

greetings from chile

This seems to fix it in IE7 and IE8 (not IE6 however). I don't know if this could be a possible solution.

comment:4 Changed 3 years ago by David.Byrne@…

This is my last comment. I tried the last one. It seems to work with IE8 with only one issue. When the button is clicked, the label changes temporarily to the value being passed back. I am going to implement this way locally, since I would rather have it work and be slightly ugly than not work at all. Here is the diff for file prefs_announcer_manage_subscriptions.html:

37c37
<                           ${rule['adverb']} ${rule['description']} <button type="submit" name="method" value="delete-rule_${rule['id']}">Delete</button><button type="submit" name="method" value="move-rule_${rule['id']}-${rule['priority']+1}">down</button><button type="submit" name="method" value="move-rule_${rule['id']}-${rule['priority']-1}">up</button></li>
---
>                           ${rule['adverb']} ${rule['description']} <button type="submit" name="method" value="delete-rule_${rule['id']}" onclick="this.value='delete-rule_${rule['id']}'">Delete</button><button type="submit" name="method" value="move-rule_${rule['id']}-${rule['priority']+1}" onclick="this.value='move-rule_${rule['id']}-${rule['priority']+1}'">down</button><button type="submit" name="method" value="move-rule_${rule['id']}-${rule['priority']-1}" onclick="this.value='move-rule_${rule['id']}-${rule['priority']-1}'">up</button></li>
48c48
<                       </select><button type="submit" name="method" value="add-rule_${distributor}">Add</button>
---
>                       </select><button type="submit" name="method" value="add-rule_${distributor}" onclick="this.value='add-rule_${distributor}'">Add</button>

With this change, I was able to add, delete, and re-order rules in IE8. As stated before, I don't believe this works with IE6.

comment:5 Changed 22 months ago by hasienda

  • Cc rjollos doki_pen added
  • Keywords user-preferences browser-depended added
  • Owner changed from doki_pen to hasienda
  • Priority changed from highest to normal
  • Severity changed from critical to major

Thanks for the report and all further work done on it, as documented in comments.

Even supporting modern browsers tends to become a mess, not to speak of older ones. Btw, IE6 is rather ancient in this respect, bear with me. Even if the workaround is ugly, I'm glad that you get it working with a more standards-compliant browser. Again, if it would work only with IEx, it would be worse, because this would be not much choice - we're speaking about freedom of choice here, ok?

As long as I'm fixing basic functionality (some database issues) in the backyard, I won't touch this issue anymore. So I flag this ticket accordingly now. Please respect my priority and bear with me for possibly sounding a bit arrogant here. I assure you, that bad attitude is certainly not intended here, and harsh wording mostly caused by an overdose of work with other plugin issues.

comment:6 Changed 21 months ago by hasienda

I've started a major re-write of the template in question right now.

Good for this ticket, because I found out, that IE<=6 doesn't support the HTML tag <botton> at all. The implementation for this feature is so odd and against all expectations, that especially dedicated submit/reset buttons won't work. This is no real news, because it has been uncovered here long ago.

I tell it, because I'm about to change all botton elements to standard input of type botton. This should work even for all the ancient *) or more recent IE6 installations out there.

*) IE was released on 27-Aug-2001, shortly after the completion of Windows XP. Honestly, many developers would have closed this issue as wont-fix long ago.

comment:7 Changed 20 months ago by David.Byrne@…

  • Summary changed from User preferences: custom rules do not seem to work with Internet Explorer to User preferences: custom rules do not seem to work with Internet Explorer 6, 7, or 8

The issue reported here affects IE 6, 7, and 8. I can't test 9 at this point because I don't have it installed. The fix that I mention in this ticket will only work with 7 and 8 (which for me is enough since my client only uses 7 or greater).

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.