From c8649e18e31d6d035f7633ebdf590cac2cbe0747 Mon Sep 17 00:00:00 2001 From: "justdave%syndicomm.com" Date: Tue, 29 May 2001 03:05:46 +0000 Subject: [PATCH] Fix for bug 77699 and bug 71503: fix javascript errors in quicksearch and improve IE5 compatibility Patch by Stephan Lee and Andreas Franke git-svn-id: svn://10.0.0.236/trunk@95985 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bugzilla/quicksearch.js | 189 +++++++++++++++-------- 1 file changed, 128 insertions(+), 61 deletions(-) diff --git a/mozilla/webtools/bugzilla/quicksearch.js b/mozilla/webtools/bugzilla/quicksearch.js index e4c21868b03..09515dff4a7 100644 --- a/mozilla/webtools/bugzilla/quicksearch.js +++ b/mozilla/webtools/bugzilla/quicksearch.js @@ -12,6 +12,46 @@ // // Created by // Andreas Franke +// +// Contributors: +// Stephen Lee + +// variable below should be initialised according to whether +// browser is IE 5.0 or earlier, but should be false for IE 5.5 + +var is_IE5=(navigator.appVersion.search(/MSIE 5.0/g)>0); + +// Bodge to get round IE5 not understanding "undefined", "shift" and "unshift" + +var no_result=is_IE5?"---":undefined; + +function do_unshift(l, s) { + if(is_IE5) { + l.length = l.length + 1; + for (var i=l.length-1; i>0; i--) { + l[i] = l[i-1]; + } + l[0] = s; + return l.length; + } + else { + return l.unshift(s); + } +} + +function do_shift(l) { + if(is_IE5) { + var l0=l[0]; + for (var i=0; i= 0) return f2[i]; - return undefined; + return no_result; } // `keywords' is defined externally @@ -165,14 +205,14 @@ function is_severity(str) { // `product_exceptions' is defined externally function match_product(str) { - s = str.toLowerCase(); + var s = str.toLowerCase(); return (s.length > 2) && (! member(s,product_exceptions)); } // `component_exceptions are defined externally function match_component(str) { - s = str.toLowerCase(); + var s = str.toLowerCase(); return (s.length > 2) && (! member(s,component_exceptions)); } @@ -222,39 +262,34 @@ function make_query_URL(url, input, searchLong) { status_and_resolution = ""; charts = ""; - var searchURL = url; //bugzilla + "buglist.cgi"; - var abort = false; + // declare all variables used in this function - // escape everything between quotes: "foo bar" --> "foo%20bar" - var parts = input.split('"'); - if ((parts.length % 2) != 1) { - alert('Unterminated quote'); - abort = true; - return undefined; - } - for (var i=1; i "foo%20bar" + parts = input.split('"'); + if ((parts.length % 2) != 1) { + alert('Unterminated quote'); + abort = true; + return no_result; + } + for (i=1; i 0) { resolution = resolution.reverse(); - resolution.unshift("---"); + do_unshift(resolution,"---"); addAll(statusResolved,bug_status); } bug_status = bug_status.reverse(); @@ -336,11 +402,11 @@ function make_query_URL(url, input, searchLong) { // end of bug_status & resolution stuff - var chart = 0; - var and = 0; - var or = 0; + chart = 0; + and = 0; + or = 0; - var negation = false; + negation = false; function negate_comparison_type(type) { switch(type) { @@ -351,6 +417,7 @@ function make_query_URL(url, input, searchLong) { // e.g. "greaterthan" alert("Can't negate comparison type: `" + type + "'"); abort = true; + return "dummy"; } } @@ -379,7 +446,7 @@ function make_query_URL(url, input, searchLong) { } } - for (var i=0; i